summit/frontend/node_modules/three-stdlib/postprocessing/SSRPass.cjs.map

1 line
31 KiB
Plaintext
Raw Normal View History

2025-12-08 16:31:30 +00:00
{"version":3,"file":"SSRPass.cjs","sources":["../../src/postprocessing/SSRPass.js"],"sourcesContent":["import {\n AddEquation,\n Color,\n NormalBlending,\n DepthTexture,\n SrcAlphaFactor,\n OneMinusSrcAlphaFactor,\n MeshNormalMaterial,\n MeshBasicMaterial,\n NearestFilter,\n NoBlending,\n ShaderMaterial,\n UniformsUtils,\n UnsignedShortType,\n WebGLRenderTarget,\n HalfFloatType,\n} from 'three'\nimport { Pass, FullScreenQuad } from './Pass'\nimport { SSRShader } from '../shaders/SSRShader'\nimport { SSRBlurShader } from '../shaders/SSRShader'\nimport { SSRDepthShader } from '../shaders/SSRShader'\nimport { CopyShader } from '../shaders/CopyShader'\n\nconst SSRPass = /* @__PURE__ */ (() => {\n class SSRPass extends Pass {\n static OUTPUT = {\n Default: 0,\n SSR: 1,\n Beauty: 3,\n Depth: 4,\n Normal: 5,\n Metalness: 7,\n }\n constructor({ renderer, scene, camera, width, height, selects, bouncing = false, groundReflector }) {\n super()\n\n this.width = width !== undefined ? width : 512\n this.height = height !== undefined ? height : 512\n\n this.clear = true\n\n this.renderer = renderer\n this.scene = scene\n this.camera = camera\n this.groundReflector = groundReflector\n\n this.opacity = SSRShader.uniforms.opacity.value\n this.output = 0\n\n this.maxDistance = SSRShader.uniforms.maxDistance.value\n this.thickness = SSRShader.uniforms.thickness.value\n\n this.tempColor = new Color()\n\n this._selects = selects\n this.selective = Array.isArray(this._selects)\n Object.defineProperty(this, 'selects', {\n get() {\n return this._selects\n },\n set(val) {\n if (this._selects === val) return\n this._selects = val\n if (Array.isArray(val)) {\n this.selective = true\n this.ssrMaterial.defines.SELECTIVE = true\n this.ssrMaterial.needsUpdate = true\n } else {\n this.selective = false\n this.ssrMaterial.defines.SELECTIVE = false\n this.ssrMaterial.needsUpdate = true\n }\n },\n })\n\n this._bouncing = bouncing\n Object.defineProperty(this, 'bouncing', {\n get() {\n return this._bouncing\n },\n set(val) {\n if (this._bouncing === val) return\n this._bouncing = val\n if (val) {\n this.ssrMaterial.uniforms['tDiffuse'].value = this.prevRenderTarget.texture\n } else {\n this.ssrMaterial.uniforms['tDiffuse'].value = this.beautyRenderTarget.texture\n }\n },\n })\n\n this.blur = true\n\n this._distanceAttenuation = SSRShader.defines.DISTANCE_ATTENUATION\n Object.defineProperty(this, 'distanceAttenuation', {\n get() {\n return this._distanceAttenuation\n },\n set(val) {\n if (this._distanceAttenuation === val) return\n this._distanceAttenuation = val\n this.ssrMaterial.defines.DISTANCE_ATTENUATION = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n this._fresnel = SSRShader.defines.FRESNEL\n Object.defineProperty(this, 'fresnel', {\n get() {\n return this._fresnel\n },\n set(val) {\n if (this._fresnel === val) return\n this._fresnel = val\n this.ssrMaterial.defines.FRESNEL = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n this._infiniteThick = SSRShader.defines.INFINITE_THICK\n Object.defineProperty(this, 'infiniteThick', {\n get() {\n return this._infiniteThick\n },\n set(val) {\n if (this._infiniteThick === val) return\n this._infiniteThick = val\n this.ssrMaterial.defines.INFINITE_THICK = val\n this.ssrMaterial.needsUpdate = true\n },\n })\n\n // beauty render target with depth buffer\n\n const depthTexture = new DepthTexture()\n depthTexture.type =