如何理解projection window,projectionwindow
<<Introduction to 3d game programming with directx9>>提到了Projection window,Projection window难道不是near plane吗?书上是分开画的,
“Projection window,Direct3D defines to coincide to the plane z = 1”,
这里的z=1是相对于用户定义frustum时指定的值吗?如near=0.1, far=1000.0,projection window=1位于他们之间?
或是投影之后[0, 1]的z=1?
我一直的理解是投影到near plane,然后near plane映射到viewport。
解决方案
就像我们照相一样,照下的物体并不是真正放到哪一个平面上 如果非要找这个平面,那你可以想象投影平面上的点经过投影变换后是不变的.
经过投影变换后点x,y坐标的范围是[-1,1],所以如果x分量-1经过变换后仍然是-1,那么你可以当那个点的z就是投影平面的z
对于fov=90度,可以容易判断当z=1的时候,x=-1经过变换仍然是-1,可以说那个平面是z=1 或者说我们知道透视的原理是近大远小,也就是说与z成反比,简单地说就是x' = x/z.不考虑窗口的拉伸的话。
那么当z=1的时候, x'=x,大小一致。
用户评论