OpenGL-绘制穿过曲面的隧道?

OpenGL-绘制穿过曲面的隧道?,opengl,rendering,game-engine,stencil-buffer,Opengl,Rendering,Game Engine,Stencil Buffer,对于我在OpenGL中的一个项目,我想通过地形网格渲染一系列隧道。眼前的问题是,地形仍然呈现在隧道内部。目前,我通过使用模具缓冲区来解决这个问题,防止在隧道渲染的地方渲染地形;隧道网格是双面的,每侧增加一个模具缓冲区。只有奇数值才能阻止地形网格出现 新的问题是,这种方法不关心地形是在隧道内部还是在隧道前面,使得隧道入口出现在任何地形的前面。解决方案可能在于将隧道的“端盖”渲染到深度缓冲区中,但我在绘制隧道后执行重要渲染,并且不能像这样永久修改深度缓冲区 修改地形网格使其实际有洞也是不可行的,并且

对于我在OpenGL中的一个项目,我想通过地形网格渲染一系列隧道。眼前的问题是,地形仍然呈现在隧道内部。目前,我通过使用模具缓冲区来解决这个问题,防止在隧道渲染的地方渲染地形;隧道网格是双面的,每侧增加一个模具缓冲区。只有奇数值才能阻止地形网格出现

新的问题是,这种方法不关心地形是在隧道内部还是在隧道前面,使得隧道入口出现在任何地形的前面。解决方案可能在于将隧道的“端盖”渲染到深度缓冲区中,但我在绘制隧道后执行重要渲染,并且不能像这样永久修改深度缓冲区

修改地形网格使其实际有洞也是不可行的,并且会损害我想要的地形/隧道系统的动态特性。某些地形曲面是动态水面网格,需要每帧重新计算


在进行模具传递之前,可以使用地形填充深度缓冲区,也可以将深度缓冲区保留在单独的纹理中,并在需要时使用它。可能会有帮助。。。我在我的输出中没有看到任何像你这样的问题。。。但我渲染的stuf稍有不同,但我在每个stuf上面都有更多类似的光盘,所以它们很相似……你不能使用一些“掩蔽”技巧吗?我的意思是,在单独的渲染目标中渲染CAP,而不写入z缓冲区,然后在网格片段着色器中将该纹理用作遮罩。如果有数据,则丢弃片段,否则绘制片段。像这样的?(只是猜测,我不知道这是否适用于你的情况)