1 |
- {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { ReflectionProbe } from \"../Probes/reflectionProbe.js\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.js\";\nimport { CustomProceduralTexture } from \"../Materials/Textures/Procedurals/customProceduralTexture.js\";\nimport { DumpData } from \"./dumpTools.js\";\nimport \"../Shaders/equirectangularPanorama.fragment.js\";\n/**\n * @param scene This refers to the scene which would be rendered in the given equirectangular capture\n * @param options This refers to the options for a given equirectangular capture\n * @returns the requested capture's pixel-data or auto downloads the file if options.filename is specified\n */\nexport function captureEquirectangularFromScene(_x, _x2) {\n return _captureEquirectangularFromScene.apply(this, arguments);\n}\nfunction _captureEquirectangularFromScene() {\n _captureEquirectangularFromScene = _asyncToGenerator(function* (scene, options) {\n var _options$probe, _probe$renderList;\n const probe = (_options$probe = options.probe) !== null && _options$probe !== void 0 ? _options$probe : new ReflectionProbe(\"tempProbe\", options.size, scene);\n const wasProbeProvided = !!options.probe;\n if (!wasProbeProvided) {\n if (options.position) {\n probe.position = options.position.clone();\n } else if (scene.activeCamera) {\n probe.position = scene.activeCamera.position.clone();\n }\n }\n const meshesToConsider = options.meshesFilter ? scene.meshes.filter(options.meshesFilter) : scene.meshes;\n (_probe$renderList = probe.renderList) === null || _probe$renderList === void 0 || _probe$renderList.push(...meshesToConsider);\n probe.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;\n probe.cubeTexture.render();\n const dumpTexture = new CustomProceduralTexture(\"tempProceduralTexture\", \"equirectangularPanorama\", {\n width: options.size * 2,\n height: options.size\n }, scene);\n dumpTexture.setTexture(\"cubeMap\", probe.cubeTexture);\n return new Promise((resolve, reject) => {\n dumpTexture.onGeneratedObservable.addOnce(() => {\n const pixelDataPromise = dumpTexture.readPixels();\n if (!pixelDataPromise) {\n reject(new Error(\"No Pixel Data found on procedural texture\"));\n dumpTexture.dispose();\n if (!wasProbeProvided) {\n probe.dispose();\n }\n return;\n }\n pixelDataPromise.then(pixelData => {\n dumpTexture.dispose();\n if (!wasProbeProvided) {\n probe.dispose();\n }\n if (options.filename) {\n DumpData(options.size * 2, options.size, pixelData, undefined, \"image/png\", options.filename);\n resolve(null);\n } else {\n resolve(pixelData);\n }\n });\n });\n });\n });\n return _captureEquirectangularFromScene.apply(this, arguments);\n}","map":{"version":3,"names":["ReflectionProbe","RenderTargetTexture","CustomProceduralTexture","DumpData","captureEquirectangularFromScene","_x","_x2","_captureEquirectangularFromScene","apply","arguments","_asyncToGenerator","scene","options","_options$probe","_probe$renderList","probe","size","wasProbeProvided","position","clone","activeCamera","meshesToConsider","meshesFilter","meshes","filter","renderList","push","refreshRate","REFRESHRATE_RENDER_ONCE","cubeTexture","render","dumpTexture","width","height","setTexture","Promise","resolve","reject","onGeneratedObservable","addOnce","pixelDataPromise","readPixels","Error","dispose","then","pixelData","filename","undefined"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Misc/equirectangularCapture.js"],"sourcesContent":["import { ReflectionProbe } from \"../Probes/reflectionProbe.js\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.js\";\nimport { CustomProceduralTexture } from \"../Materials/Textures/Procedurals/customProceduralTexture.js\";\nimport { DumpData } from \"./dumpTools.js\";\nimport \"../Shaders/equirectangularPanorama.fragment.js\";\n/**\n * @param scene This refers to the scene which would be rendered in the given equirectangular capture\n * @param options This refers to the options for a given equirectangular capture\n * @returns the requested capture's pixel-data or auto downloads the file if options.filename is specified\n */\nexport async function captureEquirectangularFromScene(scene, options) {\n const probe = options.probe ?? new ReflectionProbe(\"tempProbe\", options.size, scene);\n const wasProbeProvided = !!options.probe;\n if (!wasProbeProvided) {\n if (options.position) {\n probe.position = options.position.clone();\n }\n else if (scene.activeCamera) {\n probe.position = scene.activeCamera.position.clone();\n }\n }\n const meshesToConsider = options.meshesFilter ? scene.meshes.filter(options.meshesFilter) : scene.meshes;\n probe.renderList?.push(...meshesToConsider);\n probe.refreshRate = RenderTargetTexture.REFRESHRATE_RENDER_ONCE;\n probe.cubeTexture.render();\n const dumpTexture = new CustomProceduralTexture(\"tempProceduralTexture\", \"equirectangularPanorama\", { width: options.size * 2, height: options.size }, scene);\n dumpTexture.setTexture(\"cubeMap\", probe.cubeTexture);\n return new Promise((resolve, reject) => {\n dumpTexture.onGeneratedObservable.addOnce(() => {\n const pixelDataPromise = dumpTexture.readPixels();\n if (!pixelDataPromise) {\n reject(new Error(\"No Pixel Data found on procedural texture\"));\n dumpTexture.dispose();\n if (!wasProbeProvided) {\n probe.dispose();\n }\n return;\n }\n pixelDataPromise.then((pixelData) => {\n dumpTexture.dispose();\n if (!wasProbeProvided) {\n probe.dispose();\n }\n if (options.filename) {\n DumpData(options.size * 2, options.size, pixelData, undefined, \"image/png\", options.filename);\n resolve(null);\n }\n else {\n resolve(pixelData);\n }\n });\n });\n });\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|