NDC(Normalized Device Coordinates)即归一化设备坐标,是计算机图形学中用于表示和处理图形的一个坐标系统。NDC 的坐标范围通常是从 [−1,1][−1,1] 在 x 和 y 轴上,z 轴上则是从 0 到 1。它是在将模型空间中的三维坐标转换为屏幕空间坐标之前的一个中间步骤。
Frustum:模型的可视范围
Canonical Cube:标准正方形
目的:将frustum压缩至以远点为中心,边长为2的立方体(即为Canonical Cube)。
假设初始Frustum:x轴范围[l,r],y轴范围[b,t],z轴范围[f,n]。
正交投影
只进行平移和缩放,并不满足近大远小。需要经过两次变化,
先将Frustum平移至原点(右侧矩阵)
后将Frustum压缩为标准立方体,将边长强制转为2(左边矩阵)
写成矩阵形式为:
M:
透视投影
符合近大远小的视觉效果,主要利用相似三角形的等比变换。
Frustum:前面小,后面大的横向放置的四棱台。
思路:将Frustum压缩为长方体,然后做正交投影。
对于Frustum中任意深度点的x,y的坐标为,(n为Frustum的z轴上的最近端,z为任意深度点的z坐标)
可以认为(x,y,z,1)表示的点经过压缩之后,变为(nx/z,ny/z,unknown,1),
同时×z可得(nx,ny,unknow,z),那么可以推算代表压缩的矩阵:
对于近平面上的点,z坐标不变所以
(x,y,n,1)——>(nx,ny,n方,n)
所以第三行应为(0,0,A,B)型,且An+B = n方
对于远平面的中心点,z坐标也并不会发生改变
(0,0,f,1)——>(0,0,f方,f),所以Af +B = f方
A=n+f,B=-nf
可以得出代表压缩的矩阵:
标签:Frustum,NDC,矩阵,图形学,nx,ny,坐标,归一化,压缩 From: https://blog.csdn.net/2303_76262050/article/details/141959468