1

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

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

4

2 回答 2

4

-1.0 到 +1.0(在应用所有转换之后)。

这些信息以某种迂回的方式隐藏在glViewport文档中。我选择了 MSDN 版本的文档,因为更多其他在线资源在转换为 HTML 期间会破坏公式(这是正确的公式,但无法识别)。

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

于 2011-02-27T21:38:25.393 回答
1

可见的顶点值范围由两个变换矩阵ModelViewProjection控制。ModelView矩阵由glRotate,glTranslate操作类型构成,Projection矩阵由glOrtho,glPerspective或创建gluLookAt

顶点 V 通过以下转换转换为视口坐标,并且在目标空间中剔除不可见部分(所有轴为 [-1,1])。

V'' = Projection * ModelView * V

然而glOrthoanglPerspective获取可见性范围作为模型视图空间中给定的输入。这些范围与转换后的顶点相当:

V' = ModelView * V

如果您将单位矩阵用作ModelView,则可以将您的顶点值与给定的值进行比较glOrthoor glPerspective

于 2011-02-27T21:42:21.857 回答