gpt4 book ai didi

OpenGL:任何顶点 Z 坐标是否必须为负数?

转载 作者:行者123 更新时间:2023-12-02 08:10:56 26 4
gpt4 key购买 nike

据我所知,OpenGL 中的相机被定义为朝负 Z 方向看。因此,在一个简单的示例中,我想为了渲染我的顶点,必须将它们定义为类似于以下内容:

rawverts = {
0.0f, 0.0f, -1.0f,
0.0f, 0.5f, -1.0f,
0.5f, 0.0f, -1.0f,
};

但是,绝对没有导游能告诉我答案。无论我看哪里,“Hello 三角形”示例都是 z 坐标保留在 0 的情况下制作的,每当定义更复杂的网格时,甚至不会显示坐标。我仍然不知道将它们绘制到屏幕上的坐标的可能值。以 glm::perspective 为例:

glm::mat4 projectionMatrix = glm::perspective(
FoV, // The horizontal Field of View, in degrees : the amount of "zoom". Think "camera lens". Usually between 90° (extra wide) and 30° (quite zoomed in)
4.0f / 3.0f, // Aspect Ratio. Depends on the size of your window. Notice that 4/3 == 800/600 == 1280/960, sounds familiar ?
0.1f, // Near clipping plane. Keep as big as possible, or you'll get precision issues.
100.0f // Far clipping plane. Keep as little as possible.
);

但是如何用任何值来定义剪裁平面呢?相机面向-Z方向!此外,如果我在 -1 和 -4 处创建近/远剪裁平面,现在是否会使任何大于 -1 或小于 -4 的 Z 坐标无效?或者原始 z 坐标仅在 0 到 -1 之间有效(同样,z 坐标肯定不能为正数?)..?

但我们假设实际发生的情况是 OpenGL(或 glm)获取裁剪平面值并 secret 地否定它们。因此,我的 -1 到 -4 变为 1 到 4。这是否会使任何小于 1 且大于 4 的 Z 坐标无效,这就是 0.0f, 0.0f, -1.0f 的原因不会在屏幕上绘制吗?

在这个阶段,我会将答案视为简单的指向包含此问题信息的书籍或 Material 的指针。

最佳答案

不,点/顶点可以有正 z 坐标,但除非相机向后移动,否则您不会看到它们。

This article大约三分之一的时间里都在谈论这个问题。

关于OpenGL:任何顶点 Z 坐标是否必须为负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36263466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com