【发布时间】:2015-08-12 15:52:54
【问题描述】:
我有一个 OpenGL 问题要解决。我有一个对象/网格 A、一个对象/网格 B 和一个背景纹理 C。
最初,帧缓冲区被背景纹理 C 填充。我们在帧缓冲区中绘制 A 和 B。我们想让对象 A 可见,而对象 B 始终不可见。
一开始A在B前面,在旋转过程中,根据深度测试结果,在一定角度,B在A前面,但是由于B总是不可见的,所以B的部分应该用背景C填充.
有人知道解决这个问题的简单方法吗?
模板测试是个好方法吗?基本上给物体B设置了颜色,将B的颜色与背景C进行比较,测试失败时显示背景C。
谁有我可以阅读的示例代码?
【问题讨论】:
-
只是为了澄清 C 始终是背景 - 如果 B 呈现在 A 上方,您希望显示 C,如果 A 呈现在 B 上方,您想看到 A?
-
是的,你是对的。 C 始终是背景。
-
...所以就像 B 是你在 A 上渲染的一个洞?
-
我认为他只是想让 B+A 成为漏洞——如果只是 B 超过 C,那么你应该看到 B 吗?
-
看不懂要求,如果B不重叠A会怎样?您是否希望仅在 A 前面的 B 部分显示背景而不是 B?
标签: opengl opengl-es depth depth-buffer stencils