Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 仅当在另一个网格后面时渲染网格_C++_Opengl_Glsl_Shader_Stencil Buffer - Fatal编程技术网

C++ 仅当在另一个网格后面时渲染网格

C++ 仅当在另一个网格后面时渲染网格,c++,opengl,glsl,shader,stencil-buffer,C++,Opengl,Glsl,Shader,Stencil Buffer,我试图渲染一个网格(“内容网格”)(带有深度测试),仅当它位于另一个网格(“窗口网格”)后面时 第一种解决方案是使用模具缓冲区仅在“窗口网格”已写入的位置写入 我的问题是“内容网格”可以在“窗口网格”的前面,我想在这种情况下丢弃片段(只有在后面才可见) 我可以简单地将“窗口网格”的深度坐标保存在纹理中,并使用该信息丢弃“内容网格”的片段 但是,这意味着要进行纹理查找,并使用16位浮点数进行自定义deph测试 还有别的办法吗 PS:这个线程几乎让我得到了解决方案,但在我的例子中,当“内容网格”位于

我试图渲染一个网格(“内容网格”)(带有深度测试),仅当它位于另一个网格(“窗口网格”)后面时

第一种解决方案是使用模具缓冲区仅在“窗口网格”已写入的位置写入

我的问题是“内容网格”可以在“窗口网格”的前面,我想在这种情况下丢弃片段(只有在后面才可见)

我可以简单地将“窗口网格”的深度坐标保存在纹理中,并使用该信息丢弃“内容网格”的片段

但是,这意味着要进行纹理查找,并使用16位浮点数进行自定义deph测试

还有别的办法吗


PS:这个线程几乎让我得到了解决方案,但在我的例子中,当“内容网格”位于“窗口网格”前面时,我根本不想渲染它。

我使用一个纹理来存储深度,并使用它来丢弃比这个深度更近的片段。
它很好用。我对此很满意。

当对内容网格进行深度排序时,渲染时是否需要深度缓冲区?您可以使用设置为GL_更大的depthtesting进行渲染,然后仅渲染窗口后面的部分。谢谢您的评论。我的意思是,在渲染内容网格时,我需要使用标准的GL_-LESS深度测试。我仍然会选择模板。。。到底是怎么回事?从你的描述中不清楚,你能给我们看一个屏幕截图和描述吗?有什么问题吗?我没有找到涉及模具缓冲区的解决方案。但我同意这会更容易/更快。。。在我提到的示例中,在墙后绘制角色时没有深度测试(它是一种普通颜色)。我想画一个网格(启用深度测试),但前提是它在墙后面。事实上,这非常接近这个问题:我希望(呃)@Spektre我已经用纹理实现了伪解决方案,效果很好,我还有另一个z战斗问题,但只是在内容网格的三角形之间,这是另外一回事。所以,我可以关闭这个线程,但我发现这个问题很有趣。