OpenGL视口转换

时间:2012-11-11 13:46:20

标签: opengl

我想知道OpenGL如何处理窗口的视口转换。

据我所知,视口转换是通过将视口转换应用于该场景,将场景拉伸到OpenGL窗口。

如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:2)

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

  

窗口坐标(屏幕坐标)

     

通过应用归一化设备坐标(NDC)来产生   视口转换。 NDC按比例缩放和翻译   适合渲染屏幕。窗口坐标最终是   传递到OpenGL管道的raterization过程成为一个   分段。 glViewport()命令用于定义矩形   渲染最终图像映射的区域。并且,glDepthRange()是   用于确定窗口坐标的z值。窗户   坐标是用上面2的给定参数计算的   功能;

点击链接查看数学详情。

答案 1 :(得分:2)

裁剪透视划分之后,所有剩余(可见)顶点坐标x,y,z都介于-1和+1之间 - 这些被称为标准化设备坐标。它们通过适当的比例和移位(即视口转换)映射到设备坐标

例如,如果视口的大小为1024x768,深度缓冲区为16位且原点为(0,0),那么这些点将缩放(512,384,2 ^ 14)并移位(512,384,2) ^ 14)为设备产生适当的像素和深度值。