仅在另一个网格后面渲染网格

Rendering a mesh only if behind another mesh

我正在尝试仅在网格 ("content mesh") 位于另一个网格 ("window mesh") 后面时渲染网格 ("content mesh")(使用深度测试)。

第一个解决方案是使用模板缓冲区仅在 "window mesh" 已写入的位置写入。

我的问题是 "content mesh" 可以在 "window mesh" 前面,我想在这种情况下丢弃片段(只有在后面时才可见)。

我可以简单地在纹理中保存 "window mesh" 的深度坐标,并使用该信息丢弃 "content mesh" 的片段。

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

还有其他方法吗?

PS : How to render a mesh behind another mesh, like a mask? 这个线程几乎给了我解决方案,但在我的情况下,我根本不想渲染 "content mesh" 当它在 "window mesh".

我用一个纹理来存储深度,并用它来丢弃比这个深度更近的片段。 它工作正常。这点我已经很满意了。