gpt4 book ai didi

java - OpenGL:创建一个天空盒?

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:03 30 4
gpt4 key购买 nike

我是 OpenGL 的新手。我正在使用 JOGL。

我想为我的世界创造一片天空,我可以用云彩或星星作为纹理。我不确定最好的方法是什么。我的第一直觉是制作一个具有二次方向 GLU_INSIDE 的非常大的球体,并对其进行纹理处理。有没有更好的办法?

最佳答案

天空盒是一个很好的方法。你会想要使用 cube map为了这。基本上,您在相机周围渲染一个立方体并将纹理映射到立方体每个面的内部。我相信 OpenGL 可能会将其包含在其固定功能管道中,但如果您采用着色器方法(无论如何不推荐使用固定功能),您将需要使用立方体贴图采样器(Cg 中的 samplerCUBE,不确定 GLSL)。绘制立方体贴图时,您还希望从模型 View 矩阵中移除平移但保持旋转(这会导致天空盒“跟随”相机但允许您环顾天空的不同部分)。

最好的做法是在绘制所有不透明对象之后绘制立方体贴图。这可能看起来很奇怪,因为默认情况下天空会阻挡其他物体,但您可以使用以下技巧(如果使用着色器)来避免这种情况:在顶点着色器中写入最终输出位置时,不要写出 .xyzw,而是写 .xyww .这将迫使天空向远平面移动,使其位于所有物体的后面。这样做的好处是绝对0 overdraw !

关于java - OpenGL:创建一个天空盒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3790611/

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