我想采用分离的三个分量而不是一个组合渐变
来对渐变进行采样我试过了:
out.x = texture2D(inputTexture, vec2(color.x, 0)).x ;
out.y = texture2D(inputTexture, vec2(color.y, 1)).y ;
out.z = texture2D(inputTexture, vec2(color.z, 2)).z ;
但它会输出带有很多噪音的混乱颜色。
这是具有3像素高度的三分量梯度:
这些是我申请后的图片
out.x = texture2D(inputTexture, vec2(color.x, 0.0)).x ;
out.y = texture2D(inputTexture, vec2(color.y, 0.5)).y ;
out.z = texture2D(inputTexture, vec2(color.z, 0.9)).z ;
=>
答案 0 :(得分:2)
纹理坐标存储在0-1的范围内,而不是纹素空间中,所以当你要求一个像素为2的像素时,你要求的是纹理之外的东西,你得到的结果将是取决于你是否夹紧或包裹纹理。
尝试询问0.0,0.5和0.9
的y坐标更好的解决方案可能是使用具有单个渐变的纹理,并从中单独采样通道。以下纹理和代码将给出相同的结果:
out.x = texture2D(inputTexture, vec2(color.x, 0)).x ;
out.y = texture2D(inputTexture, vec2(color.y, 0)).y ;
out.z = texture2D(inputTexture, vec2(color.z, 0)).z ;