UNPKG

threepipe

Version:

A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.

33 lines 1.38 kB
import { Vector4 } from 'three'; import { CopyShader } from 'three/examples/jsm/shaders/CopyShader.js'; import { ExtendedShaderPass } from './ExtendedShaderPass'; import { glsl } from 'ts-browser-helpers'; export class AddBlendTexturePass extends ExtendedShaderPass { constructor(texture, maxIntensity = 120) { super({ vertexShader: CopyShader.vertexShader, fragmentShader: glsl ` uniform vec4 weight; uniform vec4 weight2; varying vec2 vUv; void main() { vec4 texel = clamp(weight * tDiffuseTexelToLinear ( texture2D( tDiffuse, vUv ) ) + weight2 * tDiffuse2TexelToLinear ( texture2D( tDiffuse2, vUv ) ), vec4(0), vec4(MAX_INTENSITY)); gl_FragColor = texel; #include <colorspace_fragment> } `, uniforms: { 'tDiffuse': { value: null }, 'tDiffuse2': { value: texture }, 'weight': { value: new Vector4(1, 1, 1, 1) }, 'weight2': { value: new Vector4(1, 1, 1, 1) }, }, defines: { ['MAX_INTENSITY']: maxIntensity, }, }, 'tDiffuse', 'tDiffuse2'); this.clear = false; this.needsSwap = true; } } //# sourceMappingURL=AddBlendTexturePass.js.map