我在这里阅读回复:
“第四个组件是跟踪透视投影的技巧。进行透视投影时,您希望除以z:x'= x / z,y'= y / z,但这并不是可以通过对x,y,z的向量进行运算的3x3矩阵来实现。为此,标准的技巧是添加第四个坐标w,并声明x,y,z总是除以w在应用了所有转换之后以及在栅格化之前。”
但是我不明白为什么我们不能使用3x3矩阵除以z?
我们不能乘以
1/z 0 0
0 1/z 0
0 0 1/z
要得到 [x/z y/z 1]
?
尝试表达一个包括链中某处的翻译的转换(或转换的组成)。没有aw值,您将无法在单个矩阵中表达它。
—
DMGregory
对于您值得的一切,您完全可以按照您所说的去做。将x和y除以z是一种有效的方法,可以通过投影将3d坐标转换为2d屏幕空间,其中远处的物体会变小。w是一个齐次坐标,可以将其带到第四维以进行平移。
—
艾伦·沃尔夫