OpenGL - skybox和视锥剪报

时间:2014-02-12 23:03:52

标签: opengl

我想创建天空盒,它只是相机周围的纹理立方体。但实际上我不明白这是如何工作的,因为相机观看量是平截头体而天空盒是立方体。根据这个消息来源:

http://www.songho.ca/opengl/gl_projectionmatrix.html

  

请注意,截头剔除(裁剪)是在剪辑中执行的   坐标,在除以wc之前。剪辑坐标xc,yc   通过与wc比较来测试和zc。如果任何剪辑坐标较小   比-wc或大于wc,那么顶点将被丢弃。

如果天空盒面的顶点位于平截头体之外,则应该剪切天空盒面的顶点。 因此,我认为立方体实际上应该是一个截头体,并且应该与gl截头面完全匹配,所以我的整个场景都被包裹在天空盒内,但我确信这很糟糕。有什么方法可以用一些东西填满整个屏幕,包裹整个gl frustum?

1 个答案:

答案 0 :(得分:0)

您链接的配方相当糟糕。它实际上不是 vertices 被剪裁,而是片段。完全在屏幕外绘制具有顶点的图元不会阻止与屏幕相交的片段被绘制。 (链接中的图片实际上也表明了这种情况。)

然而,据说,它可能(或可能不是,取决于渲染代码的设计)更容易简单地绘制全屏四边形,并使用投影矩阵的逆来计算纹理坐标代替。