【图形渲染】透视投影矩阵推导与深度的非线性

参考链接:

http://www.songho.ca/opengl/gl_projectionmatrix.html

https://www.docin.com/p-1007337368.html

【图形渲染】透视投影矩阵推导与深度的非线性

1. 3D问题2D化(XOZ、YOZ)

【图形渲染】透视投影矩阵推导与深度的非线性

 2. 相似三角形

【图形渲染】透视投影矩阵推导与深度的非线性    【图形渲染】透视投影矩阵推导与深度的非线性

3. 深度Z的非线性(与1/z成正比)

要想有正确的投影性质,需要使用一个非线性的深度方程,它是与 1/z 成正比的。它做的就是在z值很小的时候提供非常高的精度,而在z值很远的时候提供更少的精度。由于非线性方程与 1/z 成正比,在1.0和2.0之间的z值将会变换至1.0到0.5之间的深度值,这就是一个float提供给我们的一半精度了,这在z值很小的情况下提供了非常大的精度。在50.0和100.0之间的z值将会只占2%的float精度,这正是我们所需要的。

【图形渲染】透视投影矩阵推导与深度的非线性

【图形渲染】透视投影矩阵推导与深度的非线性

【图形渲染】透视投影矩阵推导与深度的非线性

4. XY的CVV变换

【图形渲染】透视投影矩阵推导与深度的非线性

【图形渲染】透视投影矩阵推导与深度的非线性

【图形渲染】透视投影矩阵推导与深度的非线性

5. 反推得投影矩阵