three
Version:
JavaScript 3D library
50 lines (30 loc) • 761 B
JavaScript
/**
* Blend two textures
*/
THREE.BlendShader = {
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 );',
'}'
].join( '\n' ),
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 );',
'}'
].join( '\n' )
};