【发布时间】:2013-11-16 09:34:25
【问题描述】:
对于多重采样深度纹理,片段着色器中哪些操作是理想的?我的意思是,对于 RGBA 纹理,我们可以取来自 texelFetch() 的颜色值的平均值。
多重采样深度纹理的理想着色器代码应该是什么?
【问题讨论】:
对于多重采样深度纹理,片段着色器中哪些操作是理想的?我的意思是,对于 RGBA 纹理,我们可以取来自 texelFetch() 的颜色值的平均值。
多重采样深度纹理的理想着色器代码应该是什么?
【问题讨论】:
多重采样深度纹理首先是 Shader Model 4.1 (DX 10.1) 的功能(多重采样颜色纹理是 DX 10.0)。 OpenGL 没有明确说明这一点,但并非所有 GL3 类硬件都支持它们。也就是说,由于多重采样纹理是 GL 3.2 的特性,所以这个问题在 OpenGL 世界中基本上没有实际意义。 可能千载难逢。
在任何情况下,假设您的硬件支持多采样深度纹理和颜色纹理之间没有区别。即使深度纹理是整数格式,当您在 sampler2DMS 上使用 texelFetch (...) 对其进行采样时,您也会得到以下形式的单精度 4 分量浮点向量:vec4 (depth.r, depth.r, depth.r, 1.0)。
如果您想要多样本深度解析,您可以将纹素平均在一起,但所有样本之间的深度差异对于快速查找渲染场景中的边缘以实现双边过滤等功能也很有用。
【讨论】: