基本上它就像一个SkyBox,但是一个完全平坦且位于屏幕前方的平面。我的想法是拥有一个很大的纹理,并根据你如何旋转相机,它在平面上渲染纹理的不同部分,就好像你正在相对于飞机上绘制的“天空”移动,当你到达边缘时,它会渲染它+来自另一边的部分(我将使用无缝纹理,因此它看起来不会被缝合)。我想过出来的公式来做,但我不知道使用什么方法。我的意思是我不确定我是否应该在C ++中做它或者它应该在一些.fx文件中的着色器中完成并且直接在GPU?
答案 0 :(得分:0)
您需要做的就是在场景的其余部分后面绘制一个全屏四边形,或使用深度状态将其推出到无限远。
如果你想要一个简单的平面,那么你创建四个必要的顶点,绑定你的纹理,并绘制(禁止写入深度),然后去绘制场景的其余部分。这是通过C ++中的简单绘制调用完成的,尽管您可以使用顶点缓冲区等,如果需要的话。
如果你需要更复杂的东西,比如图层或视差,你需要使用多个平面并移动它们,或者使用着色器来合成多个纹理。