2014-02-12 58 views
0

我想创建天空盒,这只是相机周围的纹理立方体。但实际上我不明白这是如何工作的,因为相机观看音量是平截体而天空盒是立方体。根据该源:OpenGL - 天空盒和截锥体剪辑

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

注意,域剔除(削波)仅通过WC除以之前在剪辑 坐标执行。剪辑坐标xc,yc 和zc通过与wc进行比较来测试。如果任何剪辑坐标比-wc小 或大于wc,那么顶点将被丢弃。

天空盒面的顶点应该被裁剪,如果它们在平截体以外。 因此,我认为立方体实际上应该是一个平截头体,并且应该完全匹配gl平截头体的面孔,所以我的整个场景被包裹在那个天空盒内,但是我确信这是不好的。有什么办法如何填充整个屏幕的东西,包装整个gl视锥细胞?

回答

0

从你的链接公式是相当糟糕的。它实际上并不是顶点,而是被剪切掉的,而是片段。在完全离屏的情况下绘制具有顶点的图元不会阻止与画面相交的片段被绘制。 (链接中的图片实际上也表明了这种情况)。

然而,有人说过,它可能(或者可能不会,取决于您的渲染代码的设计)更简单地绘制一个全屏图像,屏幕四边形,并使用投影矩阵的逆来代替计算纹理坐标。