在GLSL中,针对阴影贴图(Shadow Map)采样有专门的采样器类型。以下是主要的阴影采样器类型:
sampler2DShadow
用于2D阴影贴图采样
与普通的sampler2D不同,它会执行深度比较操作2
samplerCubeShadow
用于立方体阴影贴图采样
适用于全方位的阴影映射
主要特点:
阴影采样器在采样时需要一个额外的比较值(comparison value)2
返回值范围在[0,1]之间,表示阴影强度
必须声明为uniform变量或作为函数参数3
使用示例:
uniform sampler2DShadow shadowMap;
// 在片段着色器中使用
float shadow = texture(shadowMap, vec3(shadowCoord.xy, compareValue));
//阴影采样器会自动进行深度比较,返回经过过滤的0到1之间的值,这使得软阴影的实现变得更加方便1。
需要注意的是,不同版本的GLSL中语法可能略有不同,比如在较老的版本中使用shadow2D()函数,而新版本中使用texture()函数。
3102

被折叠的 条评论
为什么被折叠?



