Buckets:
ktongue/docker_container / simsite /frontend /node_modules /three-stdlib /postprocessing /BokehPass.js
| var __defProp = Object.defineProperty; | |
| var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | |
| var __publicField = (obj, key, value) => { | |
| __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); | |
| return value; | |
| }; | |
| import { Pass, FullScreenQuad } from "./Pass.js"; | |
| import { WebGLRenderTarget, NearestFilter, MeshDepthMaterial, RGBADepthPacking, NoBlending, UniformsUtils, ShaderMaterial, Color } from "three"; | |
| import { BokehShader } from "../shaders/BokehShader.js"; | |
| class BokehPass extends Pass { | |
| constructor(scene, camera, params) { | |
| super(); | |
| __publicField(this, "scene"); | |
| __publicField(this, "camera"); | |
| __publicField(this, "renderTargetDepth"); | |
| __publicField(this, "materialDepth"); | |
| __publicField(this, "materialBokeh"); | |
| __publicField(this, "fsQuad"); | |
| __publicField(this, "_oldClearColor"); | |
| __publicField(this, "uniforms"); | |
| this.scene = scene; | |
| this.camera = camera; | |
| const focus = params.focus !== void 0 ? params.focus : 1; | |
| const aspect = params.aspect !== void 0 ? params.aspect : camera.aspect; | |
| const aperture = params.aperture !== void 0 ? params.aperture : 0.025; | |
| const maxblur = params.maxblur !== void 0 ? params.maxblur : 1; | |
| const width = params.width || window.innerWidth || 1; | |
| const height = params.height || window.innerHeight || 1; | |
| this.renderTargetDepth = new WebGLRenderTarget(width, height, { | |
| minFilter: NearestFilter, | |
| magFilter: NearestFilter | |
| }); | |
| this.renderTargetDepth.texture.name = "BokehPass.depth"; | |
| this.materialDepth = new MeshDepthMaterial(); | |
| this.materialDepth.depthPacking = RGBADepthPacking; | |
| this.materialDepth.blending = NoBlending; | |
| if (BokehShader === void 0) { | |
| console.error("BokehPass relies on BokehShader"); | |
| } | |
| const bokehShader = BokehShader; | |
| const bokehUniforms = UniformsUtils.clone(bokehShader.uniforms); | |
| bokehUniforms["tDepth"].value = this.renderTargetDepth.texture; | |
| bokehUniforms["focus"].value = focus; | |
| bokehUniforms["aspect"].value = aspect; | |
| bokehUniforms["aperture"].value = aperture; | |
| bokehUniforms["maxblur"].value = maxblur; | |
| bokehUniforms["nearClip"].value = camera.near; | |
| bokehUniforms["farClip"].value = camera.far; | |
| this.materialBokeh = new ShaderMaterial({ | |
| defines: Object.assign({}, bokehShader.defines), | |
| uniforms: bokehUniforms, | |
| vertexShader: bokehShader.vertexShader, | |
| fragmentShader: bokehShader.fragmentShader | |
| }); | |
| this.uniforms = bokehUniforms; | |
| this.needsSwap = false; | |
| this.fsQuad = new FullScreenQuad(this.materialBokeh); | |
| this._oldClearColor = new Color(); | |
| } | |
| render(renderer, writeBuffer, readBuffer) { | |
| this.scene.overrideMaterial = this.materialDepth; | |
| renderer.getClearColor(this._oldClearColor); | |
| const oldClearAlpha = renderer.getClearAlpha(); | |
| const oldAutoClear = renderer.autoClear; | |
| renderer.autoClear = false; | |
| renderer.setClearColor(16777215); | |
| renderer.setClearAlpha(1); | |
| renderer.setRenderTarget(this.renderTargetDepth); | |
| renderer.clear(); | |
| renderer.render(this.scene, this.camera); | |
| this.uniforms["tColor"].value = readBuffer.texture; | |
| this.uniforms["nearClip"].value = this.camera.near; | |
| this.uniforms["farClip"].value = this.camera.far; | |
| if (this.renderToScreen) { | |
| renderer.setRenderTarget(null); | |
| this.fsQuad.render(renderer); | |
| } else { | |
| renderer.setRenderTarget(writeBuffer); | |
| renderer.clear(); | |
| this.fsQuad.render(renderer); | |
| } | |
| this.scene.overrideMaterial = null; | |
| renderer.setClearColor(this._oldClearColor); | |
| renderer.setClearAlpha(oldClearAlpha); | |
| renderer.autoClear = oldAutoClear; | |
| } | |
| } | |
| export { | |
| BokehPass | |
| }; | |
| //# sourceMappingURL=BokehPass.js.map | |
Xet Storage Details
- Size:
- 3.84 kB
- Xet hash:
- 51cff6766447b91a52fde14b08c54271832ceec45f9bb7e6ffb2dbb54b1b0daa
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.