我必须将gl_Position
映射到(-1,-1),(1,1)
中才能显示在屏幕上吗?即(-1,-1)
是左上角,(1,1)
是右下角?
以前我只是使用我的库的CreatePerspectiveFieldOfView
,它为我处理了所有的转换,但我现在正在编写自己的转换,我不太确定我需要将坐标映射到什么…
gl_Position
是一个4-向量,因此它不仅仅有这两个元素,通常命名为x、y、z和w。在剪裁时,坐标被剪裁为[-w,w],或者换句话说,在归一化(每个坐标除以w)后,被剪裁为[1,1]。因此,归一化坐标由立方体(-1,-1,-1)-(1,1,1)剪裁(除非定义了更多的剪裁平面)。
有关剪切的更多信息,请阅读
http://www.opengl.org/documentation/specs/version1.1/glspec1.1/node28.html