a6b9fd8ffc05fcc43cecbd9b040f9751fba04e6cc7058ae0a738ea56fefedea8.json 21 KB

1
  1. {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { Vector4 } from \"../../Maths/math.vector.js\";\nimport { PostProcess } from \"../../PostProcesses/postProcess.js\";\nimport { GeometryBufferRenderer } from \"../../Rendering/geometryBufferRenderer.js\";\nimport { ProceduralTexture } from \"../../Materials/Textures/Procedurals/proceduralTexture.js\";\n/**\n * This should not be instanciated directly, as it is part of a scene component\n * @internal\n */\nexport class _IblShadowsSpatialBlurPass {\n /**\n * Returns the output texture of the pass.\n * @returns The output texture.\n */\n getOutputTexture() {\n return this._outputTexture;\n }\n /**\n * Gets the debug pass post process\n * @returns The post process\n */\n getDebugPassPP() {\n if (!this._debugPassPP) {\n this._createDebugPass();\n }\n return this._debugPassPP;\n }\n /**\n * Sets the name of the debug pass\n */\n get debugPassName() {\n return this._debugPassName;\n }\n /**\n * The scale of the voxel grid in world space. This is used to scale the blur radius in world space.\n * @param scale The scale of the voxel grid in world space.\n */\n setWorldScale(scale) {\n this._worldScale = scale;\n }\n /**\n * Sets params that control the position and scaling of the debug display on the screen.\n * @param x Screen X offset of the debug display (0-1)\n * @param y Screen Y offset of the debug display (0-1)\n * @param widthScale X scale of the debug display (0-1)\n * @param heightScale Y scale of the debug display (0-1)\n */\n setDebugDisplayParams(x, y, widthScale, heightScale) {\n this._debugSizeParams.set(x, y, widthScale, heightScale);\n }\n /**\n * Creates the debug post process effect for this pass\n */\n _createDebugPass() {\n if (!this._debugPassPP) {\n const isWebGPU = this._engine.isWebGPU;\n const debugOptions = {\n width: this._engine.getRenderWidth(),\n height: this._engine.getRenderHeight(),\n textureFormat: 6,\n textureType: 0,\n samplingMode: 1,\n uniforms: [\"sizeParams\"],\n samplers: [\"debugSampler\"],\n engine: this._engine,\n reusable: false,\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializations: (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../ShadersWGSL/iblShadowDebug.fragment.js\"));\n } else {\n list.push(import(\"../../Shaders/iblShadowDebug.fragment.js\"));\n }\n }\n };\n this._debugPassPP = new PostProcess(this.debugPassName, \"iblShadowDebug\", debugOptions);\n this._debugPassPP.autoClear = false;\n this._debugPassPP.onApplyObservable.add(effect => {\n // update the caustic texture with what we just rendered.\n effect.setTexture(\"debugSampler\", this._outputTexture);\n effect.setVector4(\"sizeParams\", this._debugSizeParams);\n });\n }\n }\n /**\n * Instanciates the importance sampling renderer\n * @param scene Scene to attach to\n * @param iblShadowsRenderPipeline The IBL shadows render pipeline\n * @returns The importance sampling renderer\n */\n constructor(scene, iblShadowsRenderPipeline) {\n this._worldScale = 1.0;\n this._blurParameters = new Vector4(0.0, 0.0, 0.0, 0.0);\n /**\n * Is the effect enabled\n */\n this.enabled = true;\n this._debugPassName = \"Spatial Blur Debug Pass\";\n /** Enable the debug view for this pass */\n this.debugEnabled = false;\n this._debugSizeParams = new Vector4(0.0, 0.0, 0.0, 0.0);\n this._scene = scene;\n this._engine = scene.getEngine();\n this._renderPipeline = iblShadowsRenderPipeline;\n this._createTextures();\n }\n _createTextures() {\n const isWebGPU = this._engine.isWebGPU;\n const textureOptions = {\n type: 0,\n format: 5,\n samplingMode: 1,\n generateDepthBuffer: false,\n generateMipMaps: false,\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializationsAsync: function () {\n var _ref = _asyncToGenerator(function* () {\n if (isWebGPU) {\n yield Promise.all([import(\"../../ShadersWGSL/iblShadowSpatialBlur.fragment.js\")]);\n } else {\n yield Promise.all([import(\"../../Shaders/iblShadowSpatialBlur.fragment.js\")]);\n }\n });\n return function extraInitializationsAsync() {\n return _ref.apply(this, arguments);\n };\n }()\n };\n this._outputTexture = new ProceduralTexture(\"spatialBlurPass\", {\n width: this._engine.getRenderWidth(),\n height: this._engine.getRenderHeight()\n }, \"iblShadowSpatialBlur\", this._scene, textureOptions, false, false, 0);\n this._outputTexture.refreshRate = -1;\n this._outputTexture.autoClear = false;\n // Need to set all the textures first so that the effect gets created with the proper uniforms.\n this._setBindings();\n let counter = 0;\n this._scene.onBeforeRenderObservable.add(() => {\n counter = 0;\n });\n this._scene.onAfterRenderTargetsRenderObservable.add(() => {\n if (++counter == 2) {\n if (this.enabled && this._outputTexture.isReady()) {\n this._setBindings();\n this._outputTexture.render();\n }\n }\n });\n }\n _setBindings() {\n this._outputTexture.setTexture(\"voxelTracingSampler\", this._renderPipeline._getVoxelTracingTexture());\n const iterationCount = 1;\n this._blurParameters.set(iterationCount, this._worldScale, 0.0, 0.0);\n this._outputTexture.setVector4(\"blurParameters\", this._blurParameters);\n const geometryBufferRenderer = this._scene.geometryBufferRenderer;\n if (!geometryBufferRenderer) {\n return;\n }\n const depthIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE);\n this._outputTexture.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[depthIndex]);\n const wnormalIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE);\n this._outputTexture.setTexture(\"worldNormalSampler\", geometryBufferRenderer.getGBuffer().textures[wnormalIndex]);\n }\n /**\n * Called by render pipeline when canvas resized.\n * @param scaleFactor The factor by which to scale the canvas size.\n */\n resize(scaleFactor = 1.0) {\n const newSize = {\n width: Math.max(1.0, Math.floor(this._engine.getRenderWidth() * scaleFactor)),\n height: Math.max(1.0, Math.floor(this._engine.getRenderHeight() * scaleFactor))\n };\n this._outputTexture.resize(newSize, false);\n }\n /**\n * Checks if the pass is ready\n * @returns true if the pass is ready\n */\n isReady() {\n return this._outputTexture.isReady() && !(this._debugPassPP && !this._debugPassPP.isReady());\n }\n /**\n * Disposes the associated resources\n */\n dispose() {\n this._outputTexture.dispose();\n if (this._debugPassPP) {\n this._debugPassPP.dispose();\n }\n }\n}","map":{"version":3,"names":["Vector4","PostProcess","GeometryBufferRenderer","ProceduralTexture","_IblShadowsSpatialBlurPass","getOutputTexture","_outputTexture","getDebugPassPP","_debugPassPP","_createDebugPass","debugPassName","_debugPassName","setWorldScale","scale","_worldScale","setDebugDisplayParams","x","y","widthScale","heightScale","_debugSizeParams","set","isWebGPU","_engine","debugOptions","width","getRenderWidth","height","getRenderHeight","textureFormat","textureType","samplingMode","uniforms","samplers","engine","reusable","shaderLanguage","extraInitializations","useWebGPU","list","push","autoClear","onApplyObservable","add","effect","setTexture","setVector4","constructor","scene","iblShadowsRenderPipeline","_blurParameters","enabled","debugEnabled","_scene","getEngine","_renderPipeline","_createTextures","textureOptions","type","format","generateDepthBuffer","generateMipMaps","extraInitializationsAsync","_ref","_asyncToGenerator","Promise","all","apply","arguments","refreshRate","_setBindings","counter","onBeforeRenderObservable","onAfterRenderTargetsRenderObservable","isReady","render","_getVoxelTracingTexture","iterationCount","geometryBufferRenderer","depthIndex","getTextureIndex","SCREENSPACE_DEPTH_TEXTURE_TYPE","getGBuffer","textures","wnormalIndex","NORMAL_TEXTURE_TYPE","resize","scaleFactor","newSize","Math","max","floor","dispose"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js"],"sourcesContent":["\nimport { Vector4 } from \"../../Maths/math.vector.js\";\nimport { PostProcess } from \"../../PostProcesses/postProcess.js\";\nimport { GeometryBufferRenderer } from \"../../Rendering/geometryBufferRenderer.js\";\nimport { ProceduralTexture } from \"../../Materials/Textures/Procedurals/proceduralTexture.js\";\n/**\n * This should not be instanciated directly, as it is part of a scene component\n * @internal\n */\nexport class _IblShadowsSpatialBlurPass {\n /**\n * Returns the output texture of the pass.\n * @returns The output texture.\n */\n getOutputTexture() {\n return this._outputTexture;\n }\n /**\n * Gets the debug pass post process\n * @returns The post process\n */\n getDebugPassPP() {\n if (!this._debugPassPP) {\n this._createDebugPass();\n }\n return this._debugPassPP;\n }\n /**\n * Sets the name of the debug pass\n */\n get debugPassName() {\n return this._debugPassName;\n }\n /**\n * The scale of the voxel grid in world space. This is used to scale the blur radius in world space.\n * @param scale The scale of the voxel grid in world space.\n */\n setWorldScale(scale) {\n this._worldScale = scale;\n }\n /**\n * Sets params that control the position and scaling of the debug display on the screen.\n * @param x Screen X offset of the debug display (0-1)\n * @param y Screen Y offset of the debug display (0-1)\n * @param widthScale X scale of the debug display (0-1)\n * @param heightScale Y scale of the debug display (0-1)\n */\n setDebugDisplayParams(x, y, widthScale, heightScale) {\n this._debugSizeParams.set(x, y, widthScale, heightScale);\n }\n /**\n * Creates the debug post process effect for this pass\n */\n _createDebugPass() {\n if (!this._debugPassPP) {\n const isWebGPU = this._engine.isWebGPU;\n const debugOptions = {\n width: this._engine.getRenderWidth(),\n height: this._engine.getRenderHeight(),\n textureFormat: 6,\n textureType: 0,\n samplingMode: 1,\n uniforms: [\"sizeParams\"],\n samplers: [\"debugSampler\"],\n engine: this._engine,\n reusable: false,\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializations: (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../ShadersWGSL/iblShadowDebug.fragment.js\"));\n }\n else {\n list.push(import(\"../../Shaders/iblShadowDebug.fragment.js\"));\n }\n },\n };\n this._debugPassPP = new PostProcess(this.debugPassName, \"iblShadowDebug\", debugOptions);\n this._debugPassPP.autoClear = false;\n this._debugPassPP.onApplyObservable.add((effect) => {\n // update the caustic texture with what we just rendered.\n effect.setTexture(\"debugSampler\", this._outputTexture);\n effect.setVector4(\"sizeParams\", this._debugSizeParams);\n });\n }\n }\n /**\n * Instanciates the importance sampling renderer\n * @param scene Scene to attach to\n * @param iblShadowsRenderPipeline The IBL shadows render pipeline\n * @returns The importance sampling renderer\n */\n constructor(scene, iblShadowsRenderPipeline) {\n this._worldScale = 1.0;\n this._blurParameters = new Vector4(0.0, 0.0, 0.0, 0.0);\n /**\n * Is the effect enabled\n */\n this.enabled = true;\n this._debugPassName = \"Spatial Blur Debug Pass\";\n /** Enable the debug view for this pass */\n this.debugEnabled = false;\n this._debugSizeParams = new Vector4(0.0, 0.0, 0.0, 0.0);\n this._scene = scene;\n this._engine = scene.getEngine();\n this._renderPipeline = iblShadowsRenderPipeline;\n this._createTextures();\n }\n _createTextures() {\n const isWebGPU = this._engine.isWebGPU;\n const textureOptions = {\n type: 0,\n format: 5,\n samplingMode: 1,\n generateDepthBuffer: false,\n generateMipMaps: false,\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializationsAsync: async () => {\n if (isWebGPU) {\n await Promise.all([import(\"../../ShadersWGSL/iblShadowSpatialBlur.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../Shaders/iblShadowSpatialBlur.fragment.js\")]);\n }\n },\n };\n this._outputTexture = new ProceduralTexture(\"spatialBlurPass\", {\n width: this._engine.getRenderWidth(),\n height: this._engine.getRenderHeight(),\n }, \"iblShadowSpatialBlur\", this._scene, textureOptions, false, false, 0);\n this._outputTexture.refreshRate = -1;\n this._outputTexture.autoClear = false;\n // Need to set all the textures first so that the effect gets created with the proper uniforms.\n this._setBindings();\n let counter = 0;\n this._scene.onBeforeRenderObservable.add(() => {\n counter = 0;\n });\n this._scene.onAfterRenderTargetsRenderObservable.add(() => {\n if (++counter == 2) {\n if (this.enabled && this._outputTexture.isReady()) {\n this._setBindings();\n this._outputTexture.render();\n }\n }\n });\n }\n _setBindings() {\n this._outputTexture.setTexture(\"voxelTracingSampler\", this._renderPipeline._getVoxelTracingTexture());\n const iterationCount = 1;\n this._blurParameters.set(iterationCount, this._worldScale, 0.0, 0.0);\n this._outputTexture.setVector4(\"blurParameters\", this._blurParameters);\n const geometryBufferRenderer = this._scene.geometryBufferRenderer;\n if (!geometryBufferRenderer) {\n return;\n }\n const depthIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.SCREENSPACE_DEPTH_TEXTURE_TYPE);\n this._outputTexture.setTexture(\"depthSampler\", geometryBufferRenderer.getGBuffer().textures[depthIndex]);\n const wnormalIndex = geometryBufferRenderer.getTextureIndex(GeometryBufferRenderer.NORMAL_TEXTURE_TYPE);\n this._outputTexture.setTexture(\"worldNormalSampler\", geometryBufferRenderer.getGBuffer().textures[wnormalIndex]);\n }\n /**\n * Called by render pipeline when canvas resized.\n * @param scaleFactor The factor by which to scale the canvas size.\n */\n resize(scaleFactor = 1.0) {\n const newSize = {\n width: Math.max(1.0, Math.floor(this._engine.getRenderWidth() * scaleFactor)),\n height: Math.max(1.0, Math.floor(this._engine.getRenderHeight() * scaleFactor)),\n };\n this._outputTexture.resize(newSize, false);\n }\n /**\n * Checks if the pass is ready\n * @returns true if the pass is ready\n */\n isReady() {\n return this._outputTexture.isReady() && !(this._debugPassPP && !this._debugPassPP.isReady());\n }\n /**\n * Disposes the associated resources\n */\n dispose() {\n this._outputTexture.dispose();\n if (this._debugPassPP) {\n this._debugPassPP.dispose();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}