opengl投影透视矩阵的个人总结
来源:互联网 发布:深圳青年旅舍 知乎 编辑:程序博客网 时间:2024/05/16 04:53
预备知识
1.opengl的透视投影矩阵是把一个棱锥视见体转化为规范化视见体的投影矩阵。所谓规范化视见体,就是由x=+-1, y=+-1, z=+-1围成的视见体。
2.透视投影基础:透视投影的数学原理是相似三角形。 视见体中的一个点(x,y,z)沿着向量它和原点的连线,投影到透视平面z = d上,投影所得到的点坐标设为(xp,yp,d)。根据相似三角形原理,有xp/d = x /z,故xp = x/z*d。同理,yp = y/z*d。
3.齐次坐标在透视投影当中的作用:我们知道,一个三维坐标点的齐次坐标形式是(x,y,z,w)。当w为1时,(x,y,z)即为点的三维坐标,否则需要用w去除x,y,z。下面的投影矩阵把点(x,y,z,w)变成(x,y,z,z/d)。用z/d去除x,y,z,得到的结果是:
x = x/z*d
y = y/z*d
z = z/z*d = d
推导
1.推导过程可参见这篇文章,写的很清楚,也很容易理解。他是先推导出新点和原来的点的数学关系,再根据这种关系构造矩阵。
2.我看的书《交互式计算机图形学——基于OpenGL着色器的自顶向下方法》(第六版)则是先考虑投影平面x,y取值范围在[-1,1]的情况,推出投影规范矩阵N,然后再拓展到一般情况(x,y取值范围任意)。先通过一个错切变换把投影平面变换为关于z轴对称(即x,y的取值范围关于0对称),把这个变换所需要的矩阵记作H,再通过一个缩放变换S把投影平面的x,y取值范围缩放到[-1,1]之间,最后把这三个矩阵合并起来,P = HSN即为所求。推导的过程比较啰嗦,不如第一种推导过程来的简单。
最后得出的透视投影矩阵
- opengl投影透视矩阵的个人总结
- opengl es 透视投影矩阵推导
- 透视投影矩阵的构建
- OpenGL透视投影gluPerspective
- OpenGL透视投影gluPerspective
- OpenGL: 透视投影
- OpenGL 正交、透视投影
- OpenGL透视投影
- OpenGL透视投影gluPerspective
- OpenGL ES 透视投影
- OpenGL透视投影gluPerspective
- Android OpenGL透视投影
- OPENGL透视投影
- 透视投影矩阵gluPerspective的使用说明
- 26 WebGL的透视投影矩阵
- OpenGL 正交投影、透视除法、透视投影
- 透视投影矩阵
- 透视投影矩阵
- IDEA (或 Android Studio ) 文件名颜色分别表示的意思
- JAVA使用ZeroMQ优秀的使用(从0到1)
- 51nod 1714 B君的游戏
- 四种第三方登录
- Missing letters
- opengl投影透视矩阵的个人总结
- Spring之防止连接泄露的处理办法
- JS高级技巧学习小结
- 在Win2008下配置iis7绑定域名后出现500错误的解决办法
- 如何自己制作身份证扫描件?
- struts2.0经典标签---级联select--
- 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器
- 彻底理解webservice SOAP WSDL
- 在IDEA里创建Spring Boot项目