OpenGL 顶点值范围 (GLFloat)

发布于 2024-10-19 05:58:29 字数 63 浏览 1 评论 0原文

我正在学习 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淤浪 2024-10-26 05:58:29

-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.

拒绝两难 2024-10-26 05:58:29

可见顶点值的范围由两个变换矩阵控制:ModelViewProjectionModelView 矩阵使用 glRotateglTranslate 类型的操作构建,Projection 矩阵使用 glOrtho< 创建/code>、glPerspectivegluLookAt

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

V'' = Projection * ModelView * V

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

V' = ModelView * V

如果您使用单位矩阵作为 ModelView,则可以将顶点值与给定的值与 glOrthoglPerspective< 进行比较/代码>。

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 with glOrtho, glPerspective or gluLookAt.

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).

V'' = Projection * ModelView * V

However glOrtho an glPerspective gets visibility ranges as input given in modelview space. These ranges are comparable with the transformed vertex:

V' = ModelView * V

If you are using an identity matrix as ModelView, you can compare your vertex values with those given to glOrtho or glPerspective.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文