【发布时间】:2017-07-09 13:46:31
【问题描述】:
在 Open GL 中,是否可以在启用常规深度测试的情况下渲染多边形,但是当深度缓冲区值实际写入深度缓冲区时,我想写入自定义值?
(原因是我正在渲染一个粒子系统,应该针对场景中的几何图形进行深度测试,但我想在粒子系统所在的位置写入一个非常大的深度值,从而利用深度-模糊后处理步骤以进一步模糊粒子系统)
更新 进一步细化问题,是否可以不进行多次渲染?
【问题讨论】:
-
如果问题是“是否可能”,那么答案是肯定的。在 FBO 中渲染场景,使用其深度纹理附件在片段着色器中进行“手动”深度测试(
discarding 片段将无法通过深度测试)并将任意深度值输出到另一个深度缓冲区(可能如果需要,通过 FBO 的 blitting 进行初始化)。不能保证所有这些的性能...... -
感谢更新问题。
-
我从未使用过 ARB_conservative_depth,但它可以解决您的问题。
标签: opengl depth-buffer depth-testing