deb*_*air 5 opengl 3d projection
我想画一个截头音GL_LINE_STRIP
.这些截头体顶点的坐标是什么?我有模型视图和投影矩阵.是否可以使用这些矩阵计算着色器本身的坐标?
如果你想要平截头体角的世界空间坐标,你需要做的就是将 8 个角点从 NDC 空间(每个维度从 -1 到 1,因此角点很容易枚举)投影回世界空间。但不要忘记你必须除以w
:
c_world = inverse(projection * view) * vec4(c_ncd, 1);
c_world = c_world*1.0/c_world.w;
Run Code Online (Sandbox Code Playgroud)
虽然我是用 GLSL 语法编写的,但这只是伪代码。您可以在着色器中执行此操作,但这意味着必须计算多次(取决于您将其放入哪个着色器阶段)。通常至少在 CPU 上预先计算该逆矩阵要快得多。