0

http://www.cs.uaf.edu/2007/spring/cs481/lecture/01_23_matrices.html

我刚刚读完这篇文章,但我有两个关于乘法的问题。

gl_Position = gl_ProjectionMatrix*gl_ModelViewMatrix*gl_Vertex

这是我将它们全部相乘时的最终屏幕坐标(x,y)。如果我只乘 gl_ModelViewMatrix*gl_Vertex 或 gl_ProjectionMatrix*gl_Vertex 怎么办?gl_Vertex 是什么意思?

4

2 回答 2

2

gl_Vertex 是世界空间中的顶点坐标。顶点和眼睛可以在世界空间中任意放置和定向。

与 ModelViewMatrix 相乘后,您会在“眼睛空间”中得到一个顶点坐标,这是一个眼睛位于 0,0,0 的坐标系。乘以投影矩阵(并进行同质坐标系划分)为您提供屏幕空间中的坐标。这些还不是像素坐标,而是一些标准化的坐标系,0,0,0 在屏幕/窗口的中心。视口变换是最后一个。它将图像映射到窗口(像素?)坐标。

解释如下:

http://www.srk.fer.hr/~unreal/theredbook/ 第 3 章。

于 2013-02-08T10:40:05.683 回答
1

如果我只乘 gl_ModelViewMatrix*gl_Vertex 或 gl_ProjectionMatrix*gl_Vertex 怎么办?

那么投影矩阵(第一种情况)或模型视图矩阵(第二种情况)将不会生效。如果它们是恒等矩阵,您将看不到效果。如果不是,那么您的视角或位置可能是错误的。

gl_Vertex 是什么意思?

gl_Vertex是传递给管道输入的顶点坐标。

于 2013-02-08T10:24:51.753 回答