对于我在OpenGL中的一个项目,我想通过地形网格物体渲染一系列隧道。眼前的问题是地形仍然呈现在隧道内部。目前,我通过使用模板缓冲区来解决此问题,以防止在渲染隧道的地方渲染地形;隧道网格是双面的,每侧将模板缓冲区增加一。只有奇数值会阻止地形网格物体出现。
新问题是,此方法不在乎地形是在隧道内部还是在隧道的前面,从而使隧道入口出现在任何地形的前面。解决方案可能在于将隧道的“端盖”渲染到深度缓冲区中,但是在绘制隧道之后执行重要的渲染,并且不能像这样永久修改深度缓冲区。
将地形网格物体修改为实际具有孔也是不可行的,并且会损害我想要的地形/隧道系统的动态特性。有些地形表面是动态的水表面网格,因此每帧都需要重新计算。