opengl中[z-coordinate]的值是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (12)

我刚开始用lwjgl 3学习现代opengl。我对opengl的坐标系很困惑。

我知道当你指定窗口的宽度和高度时,坐标被映射到那个宽度和高度。例如,如果屏幕宽度是600,坐标[1,0]将被映射到[600,0]。

我想知道的是z坐标的距离值是多少?

提问于
用户回答回答于

z坐标对应于深度。它的值通常是表示片段在近平面和远平面之间的距离的分数,如下所示:相机及其近和远平面。剪切意味着片段不可见。

z / depth值主要用于深度测试,这个过程使得在其他对象后面的对象(特别是它们必须被它们遮挡)剔除。这里最好描述(来自learnopengl.com):

OpenGL将其所有深度信息存储在z缓冲区中,也称为深度缓冲区。GLFW会自动为您创建这样的缓冲区(就像它有一个存储输出图像颜色的颜色缓冲区一样)。深度存储在每个片段中(作为片段的z值),每当片段想要输出其颜色时,OpenGL将其深度值与z缓冲区进行比较,如果当前片段位于另一个片段后面,则将其丢弃,否则将被覆盖。此过程称为深度测试,由OpenGL自动完成。

我强烈建议更换检查出learnopengl.com即使您正在使用LWJGL因为多数可以发现有什么也适用于它。

扫码关注云+社区

领取腾讯云代金券