OpenGL 顶点值范围 (GLFloat)
我正在学习 OpenGL,但很难找到坐标系的明确定义。
您如何知道视口中将显示什么数值范围的值?
I'm learning OpenGL and having a hard time finding a clear definition of the coordinate system.
How can you tell what numeric range of values will show up in the viewport?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
-1.0 到 +1.0(应用所有变换后)。
此信息隐藏在
glViewport
文档中以一种有点迂回的方式。我选择 MSDN 版本的文档是因为更多其他在线资源在转换为 HTML 期间破坏了公式(它是正确的公式,但无法识别)。通过应用适当的缩放和平移因子,您可以获得所需的任何预变换坐标系。
glOrtho
在 GL 1.x - 2.x 中使这变得容易。在 OpenGL 3.x 中,您使用顶点着色器来进行变换。-1.0 to +1.0 (after all transformations are applied).
This information is buried in the
glViewport
documentation in a somewhat roundabout way. I'm choosing the MSDN version of the documentation because more other online sources mangle the formula during conversion to HTML (it's the correct formulat, but not recognizable).You can get any pre-transformation coordinate system you want by applying appropriate scaling and translation factors.
glOrtho
makes this easy in GL 1.x - 2.x. In OpenGL 3.x, you use a vertex shader to do transformations.可见顶点值的范围由两个变换矩阵控制:ModelView 和 Projection。 ModelView 矩阵使用
glRotate
、glTranslate
类型的操作构建,Projection 矩阵使用glOrtho< 创建/code>、
glPerspective
或gluLookAt
。通过以下变换将顶点 V 变换为视口坐标,并且在目标空间中剔除不可见部分(对于所有轴为 [-1,1])。
然而,
glOrtho
和glPerspective
获取可见性范围作为模型视图空间中给定的输入。这些范围与转换后的顶点相当:如果您使用单位矩阵作为 ModelView,则可以将顶点值与给定的值与
glOrtho
或glPerspective< 进行比较/代码>。
Range of vertex values visible are governed by two transformation matrices, ModelView and Projection. ModelView matrix is constructed with
glRotate
,glTranslate
type of operations and Projection matrix is created withglOrtho
,glPerspective
orgluLookAt
.A vertex V is transformed into viewport coordinates with the below transformation and non-visible portions are culled in the target space ([-1,1] for all axes).
However
glOrtho
anglPerspective
gets visibility ranges as input given in modelview space. These ranges are comparable with the transformed vertex:If you are using an identity matrix as
ModelView
, you can compare your vertex values with those given toglOrtho
orglPerspective
.