【发布时间】:2013-07-05 04:03:53
【问题描述】:
我正在尝试通过阅读 OpenGL Superbible 来学习一些 OpenGL 基础知识。
我在第 4 章的开头,我有一个关于转换的问题。
首先,相关链接:http://www.songho.ca/opengl/gl_transform.html
如果我理解这个管道(可以这么说)正确,如果在我的代码中我会有这样的东西
const float vertexPositions[] = {
0.75f, 0.75f, 0.0f, 1.0f,
0.75f, -0.75f, 0.0f, 1.0f,
-0.75f, -0.75f, 0.0f, 1.0f,
};
这些坐标在所谓的对象空间坐标中,我可以将每个值指定为[-1,1] 范围内的某个值。
应用视图模型矩阵后,每个顶点坐标可以是任意数字,这些坐标将在所谓的眼睛坐标中。
在应用投影矩阵(无论是透视投影)后,我们在剪辑空间中,数字仍然可以有任何可能的值。
现在这是我想知道的一点。在此页面中,据说对于每个顶点x,y,z 坐标,我们将其除以第四个值w,这是因为我们使用齐次坐标系,并且在除法之后,x,y,z 在[-1,1] 范围内.
我的问题是,如何确定在所有这些转换之后w 的值就足够了,在将x,y,z 除以它之后,我们会得到[-1,1] 范围内的东西?
【问题讨论】:
标签: opengl transformation