OpenGL顶点值范围(GLFloat)

OpenGL顶点值范围(GLFloat),opengl,graph,coordinates,coordinate-systems,vertex,Opengl,Graph,Coordinates,Coordinate Systems,Vertex,我正在学习OpenGL,很难找到坐标系的清晰定义 如何判断视口中将显示哪些数值范围?-1.0到+1.0在应用所有变换后 这些信息以某种迂回的方式隐藏在数据库中。我之所以选择MSDN版本的文档,是因为在转换为HTML的过程中,更多的其他在线来源会破坏公式。这是正确的公式,但不可识别 通过应用适当的缩放和平移因子,可以获得所需的任何变换前坐标系。glOrtho在GL 1.x-2.x中简化了这一过程。在OpenGL 3.x中,使用顶点着色器进行变换。-1.0到+1.0在应用所有变换后 这些信息以某种迂

我正在学习OpenGL,很难找到坐标系的清晰定义


如何判断视口中将显示哪些数值范围?

-1.0到+1.0在应用所有变换后

这些信息以某种迂回的方式隐藏在数据库中。我之所以选择MSDN版本的文档,是因为在转换为HTML的过程中,更多的其他在线来源会破坏公式。这是正确的公式,但不可识别


通过应用适当的缩放和平移因子,可以获得所需的任何变换前坐标系。glOrtho在GL 1.x-2.x中简化了这一过程。在OpenGL 3.x中,使用顶点着色器进行变换。

-1.0到+1.0在应用所有变换后

这些信息以某种迂回的方式隐藏在数据库中。我之所以选择MSDN版本的文档,是因为在转换为HTML的过程中,更多的其他在线来源会破坏公式。这是正确的公式,但不可识别


通过应用适当的缩放和平移因子,可以获得所需的任何变换前坐标系。glOrtho在GL 1.x-2.x中简化了这一过程。在OpenGL 3.x中,可以使用顶点着色器进行变换。

可见顶点值的范围由两个变换矩阵(ModelView和Projection)控制。模型视图矩阵是使用glRotate、GLTRANSTATE类型的操作构建的,投影矩阵是使用glOrtho、glPerspective或GLLOOKAT创建的

顶点V通过下面的变换转换为视口坐标,在目标空间[-1,1]中为所有轴剔除不可见部分

V'' = Projection * ModelView * V
但是,GLR透视图将可见性范围作为模型视图空间中给定的输入。这些范围与变换的顶点相当:

V' = ModelView * V

如果您使用标识矩阵作为ModelView,则可以将您的顶点值与给定给glOrtho或glPerspective的顶点值进行比较。

可见顶点值的范围由两个变换矩阵控制,即ModelView和Projection。模型视图矩阵是使用glRotate、GLTRANSTATE类型的操作构建的,投影矩阵是使用glOrtho、glPerspective或GLLOOKAT创建的

顶点V通过下面的变换转换为视口坐标,在目标空间[-1,1]中为所有轴剔除不可见部分

V'' = Projection * ModelView * V
但是,GLR透视图将可见性范围作为模型视图空间中给定的输入。这些范围与变换的顶点相当:

V' = ModelView * V

如果使用单位矩阵作为模型视图,则可以将顶点值与给定给glOrtho或glPerspective的值进行比较。

唉,我使用的是Gl 3.0,因此在我自己设置之前,矩阵中的一些内容不会有帮助:无论如何,从我的理解来看。谢谢你的快速回答。然后我给你的-1到+1的范围适用于你的顶点着色器的输出,即它指定的gl_顶点变量。@Ben:啊,谢谢,因为着色器输出,答案突然变得显而易见。Lolala,我使用的是gl 3.0,所以一些矩阵的东西在我自己设置之前不会有帮助:据我所知。谢谢你的快速回答。然后我给你的范围-1到+1适用于顶点着色器的输出,即它指定的gl_顶点变量。@Ben:啊,谢谢,因为着色器输出lol,答案突然变得显而易见了