【发布时间】:2017-02-03 06:23:50
【问题描述】:
继续这个问题:
GLSL : accessing framebuffer to get RGB and change it
是否可以基于GLSL开发如下程序?
- 绘制对象1
- 使用着色器获取深度缓冲区(同时保存 rgb)
- 同时绘制对象 1、对象 2
- 获取深度
- 检查深度是否不同(深度 2 与深度 4)
- 绘制对象 1 : 对于深度不变的范围 -> 绘制为原始 RGB : 对于深度变化的范围 -> 用不同的 RGB 绘制
我确认了这个区分对象 1 的算法被其他使用 glut 函数的对象隐藏了。 我使用了 glReadbuffer、glDrawbuffer 函数。但是那些太慢了,我想使用 GLSL。
【问题讨论】:
-
这看起来像an XY problem。如果您只想找出一个对象是否被隐藏,并在这种情况下绘制不同的东西,那么您不需要专门的着色器或大量的深度缓冲区来做到这一点。