@export clay.compositor.blend #define SHADER_NAME blend // Blend at most 6 textures #ifdef TEXTURE1_ENABLED uniform sampler2D texture1; uniform float weight1 : 1.0; #endif #ifdef TEXTURE2_ENABLED uniform sampler2D texture2; uniform float weight2 : 1.0; #endif #ifdef TEXTURE3_ENABLED uniform sampler2D texture3; uniform float weight3 : 1.0; #endif #ifdef TEXTURE4_ENABLED uniform sampler2D texture4; uniform float weight4 : 1.0; #endif #ifdef TEXTURE5_ENABLED uniform sampler2D texture5; uniform float weight5 : 1.0; #endif #ifdef TEXTURE6_ENABLED uniform sampler2D texture6; uniform float weight6 : 1.0; #endif varying vec2 v_Texcoord; @import clay.util.rgbm void main() { vec4 tex = vec4(0.0); #ifdef TEXTURE1_ENABLED tex += decodeHDR(texture2D(texture1, v_Texcoord)) * weight1; #endif #ifdef TEXTURE2_ENABLED tex += decodeHDR(texture2D(texture2, v_Texcoord)) * weight2; #endif #ifdef TEXTURE3_ENABLED tex += decodeHDR(texture2D(texture3, v_Texcoord)) * weight3; #endif #ifdef TEXTURE4_ENABLED tex += decodeHDR(texture2D(texture4, v_Texcoord)) * weight4; #endif #ifdef TEXTURE5_ENABLED tex += decodeHDR(texture2D(texture5, v_Texcoord)) * weight5; #endif #ifdef TEXTURE6_ENABLED tex += decodeHDR(texture2D(texture6, v_Texcoord)) * weight6; #endif gl_FragColor = encodeHDR(tex); } @end