three-shaders
Version:
three-shaders - a library of shaders included with Three.js library
56 lines (35 loc) • 785 B
JavaScript
/**
* @author alteredq / http://alteredqualia.com/
*
* Blend two textures
*/
function BlendShader() {
return {
uniforms: {
tDiffuse1: { value: null },
tDiffuse2: { value: null },
mixRatio: { value: 0.5 },
opacity: { value: 1.0 }
},
vertexShader: `
varying vec2 vUv;
void main() {
vUv = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
}
`,
fragmentShader: `
uniform float opacity;
uniform float mixRatio;
uniform sampler2D tDiffuse1;
uniform sampler2D tDiffuse2;
varying vec2 vUv;
void main() {
vec4 texel1 = texture2D( tDiffuse1, vUv );
vec4 texel2 = texture2D( tDiffuse2, vUv );
gl_FragColor = opacity * mix( texel1, texel2, mixRatio );
}
`
}
};
module.exports = BlendShader;