UNPKG

mylingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

44 lines 1.69 kB
import { createEffect } from "@lincode/reactivity"; import { ShaderMaterial } from "three"; import { ShaderPass } from "three/examples/jsm/postprocessing/ShaderPass"; import { getSelectiveBloomComposer } from "../../../../states/useSelectiveBloomComposer"; import bloomPass from "../bloomPass"; import renderPass from "../renderPass"; createEffect(() => { const selectiveBloomComposer = getSelectiveBloomComposer(); if (!selectiveBloomComposer) return; selectiveBloomComposer.addPass(renderPass); selectiveBloomComposer.addPass(bloomPass); return () => { selectiveBloomComposer.removePass(renderPass); selectiveBloomComposer.removePass(bloomPass); }; }, [getSelectiveBloomComposer]); const selectiveBloomPass = new ShaderPass(new ShaderMaterial({ uniforms: { baseTexture: { value: null }, bloomTexture: { value: null } }, vertexShader: ` varying vec2 vUv; void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); } `, fragmentShader: ` uniform sampler2D baseTexture; uniform sampler2D bloomTexture; varying vec2 vUv; void main() { gl_FragColor = texture2D(baseTexture, vUv) + texture2D(bloomTexture, vUv); } `, defines: {} }), "baseTexture"); const { uniforms } = selectiveBloomPass; getSelectiveBloomComposer((composer) => composer && (uniforms["bloomTexture"].value = composer.renderTarget2.texture)); export default selectiveBloomPass; //# sourceMappingURL=index.js.map