有没有办法告诉texture2DProj
或在一个模式中设置纹理,如果坐标位于边界之外,将显示默认值?一种方法是将图像的边框设置为默认值并使用夹紧。还有别的吗?
答案 0 :(得分:0)
最简单的方法可能是测试坐标是否在着色器中的范围内,否则分配默认值。
如果您的电话正常:
vec3 texCoord = ...;
vec4 texVal = texture2DProj(tex, texCoord);
您可以将其更改为:
vec4 texVal;
if (any(bvec4(texCoord[0] < 0.0, texCoord[1] < 0.0,
texCoord[0] > texCoord[2], texCoord[1] > texCoord[2]))) {
texVal = defaultVal;
} else {
texVal = texture2DProj(tex, texCoord);
}