1 |
- {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { Texture } from \"../../Materials/Textures/texture.js\";\nimport { ProceduralTexture } from \"../../Materials/Textures/Procedurals/proceduralTexture.js\";\nimport { PostProcess } from \"../../PostProcesses/postProcess.js\";\nimport { Vector4 } from \"../../Maths/math.vector.js\";\nimport { RawTexture } from \"../../Materials/Textures/rawTexture.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n/**\n * Build cdf maps for IBL importance sampling during IBL shadow computation.\n * This should not be instanciated directly, as it is part of a scene component\n * @internal\n */\nexport class _IblShadowsImportanceSamplingRenderer {\n /**\n * Gets the IBL source texture being used by the importance sampling renderer\n */\n get iblSource() {\n return this._iblSource;\n }\n /**\n * Sets the IBL source texture to be used by the importance sampling renderer.\n * This will trigger recreation of the importance sampling assets.\n */\n set iblSource(source) {\n if (this._iblSource === source) {\n return;\n }\n this._disposeTextures();\n this._iblSource = source;\n if (source.isCube) {\n if (source.isReadyOrNotBlocking()) {\n this._recreateAssetsFromNewIbl(source);\n } else {\n source.onLoadObservable.addOnce(this._recreateAssetsFromNewIbl.bind(this, source));\n }\n } else {\n if (source.isReadyOrNotBlocking()) {\n this._recreateAssetsFromNewIbl(source);\n } else {\n source.onLoadObservable.addOnce(this._recreateAssetsFromNewIbl.bind(this, source));\n }\n }\n }\n _recreateAssetsFromNewIbl(source) {\n if (this._debugPass) {\n this._debugPass.dispose();\n }\n this._createTextures();\n if (this._debugPass) {\n // Recreate the debug pass because of the new textures\n this._createDebugPass();\n }\n // Once the textures are generated, notify that they are ready to use.\n this._icdfxPT.onGeneratedObservable.addOnce(() => {\n this.onReadyObservable.notifyObservers();\n });\n }\n /**\n * Return the cumulative distribution function (CDF) Y texture\n * @returns Return the cumulative distribution function (CDF) Y texture\n */\n getIcdfyTexture() {\n return this._icdfyPT;\n }\n /**\n * Return the cumulative distribution function (CDF) X texture\n * @returns Return the cumulative distribution function (CDF) X texture\n */\n getIcdfxTexture() {\n return this._icdfxPT;\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 * The name of the debug pass post process\n */\n get debugPassName() {\n return this._debugPassName;\n }\n /**\n * Gets the debug pass post process\n * @returns The post process\n */\n getDebugPassPP() {\n if (!this._debugPass) {\n this._createDebugPass();\n }\n return this._debugPass;\n }\n /**\n * Instanciates the importance sampling renderer\n * @param scene Scene to attach to\n * @returns The importance sampling renderer\n */\n constructor(scene) {\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._debugPassName = \"Importance Sample Debug\";\n /**\n * Observable that triggers when the importance sampling renderer is ready\n */\n this.onReadyObservable = new Observable();\n this._scene = scene;\n this._engine = scene.getEngine();\n }\n _createTextures() {\n const size = this._iblSource ? this._iblSource.getSize() : {\n width: 1,\n height: 1\n };\n if (!this._iblSource) {\n this._iblSource = RawTexture.CreateRTexture(new Uint8Array([255]), 1, 1, this._scene, false, false, 1, 0);\n this._iblSource.name = \"Placeholder IBL Source\";\n }\n if (this._iblSource.isCube) {\n size.width *= 4;\n size.height *= 2;\n }\n const isWebGPU = this._engine.isWebGPU;\n // Create CDF maps (Cumulative Distribution Function) to assist in importance sampling\n const cdfOptions = {\n generateDepthBuffer: false,\n generateMipMaps: false,\n format: 6,\n type: 1,\n samplingMode: 1,\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/iblShadowsCdfx.fragment.js\"), import(\"../../ShadersWGSL/iblShadowsCdfy.fragment.js\")]);\n } else {\n yield Promise.all([import(\"../../Shaders/iblShadowsCdfx.fragment.js\"), import(\"../../Shaders/iblShadowsCdfy.fragment.js\")]);\n }\n });\n return function extraInitializationsAsync() {\n return _ref.apply(this, arguments);\n };\n }()\n };\n const icdfOptions = {\n generateDepthBuffer: false,\n generateMipMaps: false,\n format: 6,\n type: 2,\n samplingMode: 1,\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializationsAsync: function () {\n var _ref2 = _asyncToGenerator(function* () {\n if (isWebGPU) {\n yield Promise.all([import(\"../../ShadersWGSL/iblShadowsIcdfx.fragment.js\"), import(\"../../ShadersWGSL/iblShadowsIcdfy.fragment.js\")]);\n } else {\n yield Promise.all([import(\"../../Shaders/iblShadowsIcdfx.fragment.js\"), import(\"../../Shaders/iblShadowsIcdfy.fragment.js\")]);\n }\n });\n return function extraInitializationsAsync() {\n return _ref2.apply(this, arguments);\n };\n }()\n };\n this._cdfyPT = new ProceduralTexture(\"cdfyTexture\", {\n width: size.width,\n height: size.height + 1\n }, \"iblShadowsCdfy\", this._scene, cdfOptions, false, false);\n this._cdfyPT.autoClear = false;\n this._cdfyPT.setTexture(\"iblSource\", this._iblSource);\n this._cdfyPT.setInt(\"iblHeight\", size.height);\n if (this._iblSource.isCube) {\n this._cdfyPT.defines = \"#define IBL_USE_CUBE_MAP\\n\";\n }\n this._cdfyPT.refreshRate = 0;\n this._icdfyPT = new ProceduralTexture(\"icdfyTexture\", {\n width: size.width,\n height: size.height\n }, \"iblShadowsIcdfy\", this._scene, icdfOptions, false, false);\n this._icdfyPT.autoClear = false;\n this._icdfyPT.setTexture(\"cdfy\", this._cdfyPT);\n this._icdfyPT.refreshRate = 0;\n this._cdfxPT = new ProceduralTexture(\"cdfxTexture\", {\n width: size.width + 1,\n height: 1\n }, \"iblShadowsCdfx\", this._scene, cdfOptions, false, false);\n this._cdfxPT.autoClear = false;\n this._cdfxPT.setTexture(\"cdfy\", this._cdfyPT);\n this._cdfxPT.refreshRate = 0;\n this._icdfxPT = new ProceduralTexture(\"icdfxTexture\", {\n width: size.width,\n height: 1\n }, \"iblShadowsIcdfx\", this._scene, icdfOptions, false, false);\n this._icdfxPT.autoClear = false;\n this._icdfxPT.setTexture(\"cdfx\", this._cdfxPT);\n this._icdfxPT.refreshRate = 0;\n }\n _disposeTextures() {\n var _this$_cdfyPT, _this$_icdfyPT, _this$_cdfxPT, _this$_icdfxPT;\n (_this$_cdfyPT = this._cdfyPT) === null || _this$_cdfyPT === void 0 || _this$_cdfyPT.dispose();\n (_this$_icdfyPT = this._icdfyPT) === null || _this$_icdfyPT === void 0 || _this$_icdfyPT.dispose();\n (_this$_cdfxPT = this._cdfxPT) === null || _this$_cdfxPT === void 0 || _this$_cdfxPT.dispose();\n (_this$_icdfxPT = this._icdfxPT) === null || _this$_icdfxPT === void 0 || _this$_icdfxPT.dispose();\n }\n _createDebugPass() {\n var _this$_iblSource, _this$_iblSource3;\n if (this._debugPass) {\n this._debugPass.dispose();\n }\n const isWebGPU = this._engine.isWebGPU;\n const debugOptions = {\n width: this._scene.getEngine().getRenderWidth(),\n height: this._scene.getEngine().getRenderHeight(),\n samplingMode: Texture.BILINEAR_SAMPLINGMODE,\n engine: this._engine,\n textureType: 0,\n uniforms: [\"sizeParams\"],\n samplers: [\"cdfy\", \"icdfy\", \"cdfx\", \"icdfx\", \"iblSource\"],\n defines: (_this$_iblSource = this._iblSource) !== null && _this$_iblSource !== void 0 && _this$_iblSource.isCube ? \"#define IBL_USE_CUBE_MAP\\n\" : \"\",\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializations: (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../ShadersWGSL/iblShadowsImportanceSamplingDebug.fragment.js\"));\n } else {\n list.push(import(\"../../Shaders/iblShadowsImportanceSamplingDebug.fragment.js\"));\n }\n }\n };\n this._debugPass = new PostProcess(this._debugPassName, \"iblShadowsImportanceSamplingDebug\", debugOptions);\n const debugEffect = this._debugPass.getEffect();\n if (debugEffect) {\n var _this$_iblSource2;\n debugEffect.defines = (_this$_iblSource2 = this._iblSource) !== null && _this$_iblSource2 !== void 0 && _this$_iblSource2.isCube ? \"#define IBL_USE_CUBE_MAP\\n\" : \"\";\n }\n if ((_this$_iblSource3 = this._iblSource) !== null && _this$_iblSource3 !== void 0 && _this$_iblSource3.isCube) {\n this._debugPass.updateEffect(\"#define IBL_USE_CUBE_MAP\\n\");\n }\n this._debugPass.onApplyObservable.add(effect => {\n effect.setTexture(\"cdfy\", this._cdfyPT);\n effect.setTexture(\"icdfy\", this._icdfyPT);\n effect.setTexture(\"cdfx\", this._cdfxPT);\n effect.setTexture(\"icdfx\", this._icdfxPT);\n effect.setTexture(\"iblSource\", this._iblSource);\n effect.setFloat4(\"sizeParams\", this._debugSizeParams.x, this._debugSizeParams.y, this._debugSizeParams.z, this._debugSizeParams.w);\n });\n }\n /**\n * Checks if the importance sampling renderer is ready\n * @returns true if the importance sampling renderer is ready\n */\n isReady() {\n return this._iblSource && this._iblSource.name !== \"Placeholder IBL Source\" && this._iblSource.isReady() && this._cdfyPT && this._cdfyPT.isReady() && this._icdfyPT && this._icdfyPT.isReady() && this._cdfxPT && this._cdfxPT.isReady() && this._icdfxPT && this._icdfxPT.isReady();\n }\n /**\n * Disposes the importance sampling renderer and associated resources\n */\n dispose() {\n this._disposeTextures();\n if (this._debugPass) {\n this._debugPass.dispose();\n }\n this.onReadyObservable.clear();\n }\n}","map":{"version":3,"names":["Texture","ProceduralTexture","PostProcess","Vector4","RawTexture","Observable","_IblShadowsImportanceSamplingRenderer","iblSource","_iblSource","source","_disposeTextures","isCube","isReadyOrNotBlocking","_recreateAssetsFromNewIbl","onLoadObservable","addOnce","bind","_debugPass","dispose","_createTextures","_createDebugPass","_icdfxPT","onGeneratedObservable","onReadyObservable","notifyObservers","getIcdfyTexture","_icdfyPT","getIcdfxTexture","setDebugDisplayParams","x","y","widthScale","heightScale","_debugSizeParams","set","debugPassName","_debugPassName","getDebugPassPP","constructor","scene","debugEnabled","_scene","_engine","getEngine","size","getSize","width","height","CreateRTexture","Uint8Array","name","isWebGPU","cdfOptions","generateDepthBuffer","generateMipMaps","format","type","samplingMode","shaderLanguage","extraInitializationsAsync","_ref","_asyncToGenerator","Promise","all","apply","arguments","icdfOptions","_ref2","_cdfyPT","autoClear","setTexture","setInt","defines","refreshRate","_cdfxPT","_this$_cdfyPT","_this$_icdfyPT","_this$_cdfxPT","_this$_icdfxPT","_this$_iblSource","_this$_iblSource3","debugOptions","getRenderWidth","getRenderHeight","BILINEAR_SAMPLINGMODE","engine","textureType","uniforms","samplers","extraInitializations","useWebGPU","list","push","debugEffect","getEffect","_this$_iblSource2","updateEffect","onApplyObservable","add","effect","setFloat4","z","w","isReady","clear"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Rendering/IBLShadows/iblShadowsImportanceSamplingRenderer.js"],"sourcesContent":["\nimport { Texture } from \"../../Materials/Textures/texture.js\";\nimport { ProceduralTexture } from \"../../Materials/Textures/Procedurals/proceduralTexture.js\";\nimport { PostProcess } from \"../../PostProcesses/postProcess.js\";\nimport { Vector4 } from \"../../Maths/math.vector.js\";\nimport { RawTexture } from \"../../Materials/Textures/rawTexture.js\";\nimport { Observable } from \"../../Misc/observable.js\";\n/**\n * Build cdf maps for IBL importance sampling during IBL shadow computation.\n * This should not be instanciated directly, as it is part of a scene component\n * @internal\n */\nexport class _IblShadowsImportanceSamplingRenderer {\n /**\n * Gets the IBL source texture being used by the importance sampling renderer\n */\n get iblSource() {\n return this._iblSource;\n }\n /**\n * Sets the IBL source texture to be used by the importance sampling renderer.\n * This will trigger recreation of the importance sampling assets.\n */\n set iblSource(source) {\n if (this._iblSource === source) {\n return;\n }\n this._disposeTextures();\n this._iblSource = source;\n if (source.isCube) {\n if (source.isReadyOrNotBlocking()) {\n this._recreateAssetsFromNewIbl(source);\n }\n else {\n source.onLoadObservable.addOnce(this._recreateAssetsFromNewIbl.bind(this, source));\n }\n }\n else {\n if (source.isReadyOrNotBlocking()) {\n this._recreateAssetsFromNewIbl(source);\n }\n else {\n source.onLoadObservable.addOnce(this._recreateAssetsFromNewIbl.bind(this, source));\n }\n }\n }\n _recreateAssetsFromNewIbl(source) {\n if (this._debugPass) {\n this._debugPass.dispose();\n }\n this._createTextures();\n if (this._debugPass) {\n // Recreate the debug pass because of the new textures\n this._createDebugPass();\n }\n // Once the textures are generated, notify that they are ready to use.\n this._icdfxPT.onGeneratedObservable.addOnce(() => {\n this.onReadyObservable.notifyObservers();\n });\n }\n /**\n * Return the cumulative distribution function (CDF) Y texture\n * @returns Return the cumulative distribution function (CDF) Y texture\n */\n getIcdfyTexture() {\n return this._icdfyPT;\n }\n /**\n * Return the cumulative distribution function (CDF) X texture\n * @returns Return the cumulative distribution function (CDF) X texture\n */\n getIcdfxTexture() {\n return this._icdfxPT;\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 * The name of the debug pass post process\n */\n get debugPassName() {\n return this._debugPassName;\n }\n /**\n * Gets the debug pass post process\n * @returns The post process\n */\n getDebugPassPP() {\n if (!this._debugPass) {\n this._createDebugPass();\n }\n return this._debugPass;\n }\n /**\n * Instanciates the importance sampling renderer\n * @param scene Scene to attach to\n * @returns The importance sampling renderer\n */\n constructor(scene) {\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._debugPassName = \"Importance Sample Debug\";\n /**\n * Observable that triggers when the importance sampling renderer is ready\n */\n this.onReadyObservable = new Observable();\n this._scene = scene;\n this._engine = scene.getEngine();\n }\n _createTextures() {\n const size = this._iblSource ? this._iblSource.getSize() : { width: 1, height: 1 };\n if (!this._iblSource) {\n this._iblSource = RawTexture.CreateRTexture(new Uint8Array([255]), 1, 1, this._scene, false, false, 1, 0);\n this._iblSource.name = \"Placeholder IBL Source\";\n }\n if (this._iblSource.isCube) {\n size.width *= 4;\n size.height *= 2;\n }\n const isWebGPU = this._engine.isWebGPU;\n // Create CDF maps (Cumulative Distribution Function) to assist in importance sampling\n const cdfOptions = {\n generateDepthBuffer: false,\n generateMipMaps: false,\n format: 6,\n type: 1,\n samplingMode: 1,\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializationsAsync: async () => {\n if (isWebGPU) {\n await Promise.all([import(\"../../ShadersWGSL/iblShadowsCdfx.fragment.js\"), import(\"../../ShadersWGSL/iblShadowsCdfy.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../Shaders/iblShadowsCdfx.fragment.js\"), import(\"../../Shaders/iblShadowsCdfy.fragment.js\")]);\n }\n },\n };\n const icdfOptions = {\n generateDepthBuffer: false,\n generateMipMaps: false,\n format: 6,\n type: 2,\n samplingMode: 1,\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializationsAsync: async () => {\n if (isWebGPU) {\n await Promise.all([import(\"../../ShadersWGSL/iblShadowsIcdfx.fragment.js\"), import(\"../../ShadersWGSL/iblShadowsIcdfy.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../../Shaders/iblShadowsIcdfx.fragment.js\"), import(\"../../Shaders/iblShadowsIcdfy.fragment.js\")]);\n }\n },\n };\n this._cdfyPT = new ProceduralTexture(\"cdfyTexture\", { width: size.width, height: size.height + 1 }, \"iblShadowsCdfy\", this._scene, cdfOptions, false, false);\n this._cdfyPT.autoClear = false;\n this._cdfyPT.setTexture(\"iblSource\", this._iblSource);\n this._cdfyPT.setInt(\"iblHeight\", size.height);\n if (this._iblSource.isCube) {\n this._cdfyPT.defines = \"#define IBL_USE_CUBE_MAP\\n\";\n }\n this._cdfyPT.refreshRate = 0;\n this._icdfyPT = new ProceduralTexture(\"icdfyTexture\", { width: size.width, height: size.height }, \"iblShadowsIcdfy\", this._scene, icdfOptions, false, false);\n this._icdfyPT.autoClear = false;\n this._icdfyPT.setTexture(\"cdfy\", this._cdfyPT);\n this._icdfyPT.refreshRate = 0;\n this._cdfxPT = new ProceduralTexture(\"cdfxTexture\", { width: size.width + 1, height: 1 }, \"iblShadowsCdfx\", this._scene, cdfOptions, false, false);\n this._cdfxPT.autoClear = false;\n this._cdfxPT.setTexture(\"cdfy\", this._cdfyPT);\n this._cdfxPT.refreshRate = 0;\n this._icdfxPT = new ProceduralTexture(\"icdfxTexture\", { width: size.width, height: 1 }, \"iblShadowsIcdfx\", this._scene, icdfOptions, false, false);\n this._icdfxPT.autoClear = false;\n this._icdfxPT.setTexture(\"cdfx\", this._cdfxPT);\n this._icdfxPT.refreshRate = 0;\n }\n _disposeTextures() {\n this._cdfyPT?.dispose();\n this._icdfyPT?.dispose();\n this._cdfxPT?.dispose();\n this._icdfxPT?.dispose();\n }\n _createDebugPass() {\n if (this._debugPass) {\n this._debugPass.dispose();\n }\n const isWebGPU = this._engine.isWebGPU;\n const debugOptions = {\n width: this._scene.getEngine().getRenderWidth(),\n height: this._scene.getEngine().getRenderHeight(),\n samplingMode: Texture.BILINEAR_SAMPLINGMODE,\n engine: this._engine,\n textureType: 0,\n uniforms: [\"sizeParams\"],\n samplers: [\"cdfy\", \"icdfy\", \"cdfx\", \"icdfx\", \"iblSource\"],\n defines: this._iblSource?.isCube ? \"#define IBL_USE_CUBE_MAP\\n\" : \"\",\n shaderLanguage: isWebGPU ? 1 /* ShaderLanguage.WGSL */ : 0 /* ShaderLanguage.GLSL */,\n extraInitializations: (useWebGPU, list) => {\n if (useWebGPU) {\n list.push(import(\"../../ShadersWGSL/iblShadowsImportanceSamplingDebug.fragment.js\"));\n }\n else {\n list.push(import(\"../../Shaders/iblShadowsImportanceSamplingDebug.fragment.js\"));\n }\n },\n };\n this._debugPass = new PostProcess(this._debugPassName, \"iblShadowsImportanceSamplingDebug\", debugOptions);\n const debugEffect = this._debugPass.getEffect();\n if (debugEffect) {\n debugEffect.defines = this._iblSource?.isCube ? \"#define IBL_USE_CUBE_MAP\\n\" : \"\";\n }\n if (this._iblSource?.isCube) {\n this._debugPass.updateEffect(\"#define IBL_USE_CUBE_MAP\\n\");\n }\n this._debugPass.onApplyObservable.add((effect) => {\n effect.setTexture(\"cdfy\", this._cdfyPT);\n effect.setTexture(\"icdfy\", this._icdfyPT);\n effect.setTexture(\"cdfx\", this._cdfxPT);\n effect.setTexture(\"icdfx\", this._icdfxPT);\n effect.setTexture(\"iblSource\", this._iblSource);\n effect.setFloat4(\"sizeParams\", this._debugSizeParams.x, this._debugSizeParams.y, this._debugSizeParams.z, this._debugSizeParams.w);\n });\n }\n /**\n * Checks if the importance sampling renderer is ready\n * @returns true if the importance sampling renderer is ready\n */\n isReady() {\n return (this._iblSource &&\n this._iblSource.name !== \"Placeholder IBL Source\" &&\n this._iblSource.isReady() &&\n this._cdfyPT &&\n this._cdfyPT.isReady() &&\n this._icdfyPT &&\n this._icdfyPT.isReady() &&\n this._cdfxPT &&\n this._cdfxPT.isReady() &&\n this._icdfxPT &&\n this._icdfxPT.isReady());\n }\n /**\n * Disposes the importance sampling renderer and associated resources\n */\n dispose() {\n this._disposeTextures();\n if (this._debugPass) {\n this._debugPass.dispose();\n }\n this.onReadyObservable.clear();\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|