2b69ec6cc42b74f328afe8e98d159e48b794c1028229c27d0c97badc14cccb2f.json 13 KB

1
  1. {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { ThinEngine } from \"../../Engines/thinEngine.js\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nimport { SphericalPolynomial } from \"../../Maths/sphericalPolynomial.js\";\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture.js\";\nThinEngine.prototype.createPrefilteredCubeTexture = function (rootUrl, scene, lodScale, lodOffset, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = true) {\n var _this = this;\n const callback = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (loadData) {\n if (!loadData) {\n if (onLoad) {\n onLoad(null);\n }\n return;\n }\n const texture = loadData.texture;\n if (!createPolynomials) {\n texture._sphericalPolynomial = new SphericalPolynomial();\n } else if (loadData.info.sphericalPolynomial) {\n texture._sphericalPolynomial = loadData.info.sphericalPolynomial;\n }\n texture._source = 9 /* InternalTextureSource.CubePrefiltered */;\n if (_this.getCaps().textureLOD) {\n // Do not add extra process if texture lod is supported.\n if (onLoad) {\n onLoad(texture);\n }\n return;\n }\n const mipSlices = 3;\n const gl = _this._gl;\n const width = loadData.width;\n if (!width) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const {\n DDSTools\n } = yield import(\"../../Misc/dds.js\");\n const textures = [];\n for (let i = 0; i < mipSlices; i++) {\n //compute LOD from even spacing in smoothness (matching shader calculation)\n const smoothness = i / (mipSlices - 1);\n const roughness = 1 - smoothness;\n const minLODIndex = lodOffset; // roughness = 0\n const maxLODIndex = Math.log2(width) * lodScale + lodOffset; // roughness = 1\n const lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\n const mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\n const glTextureFromLod = new InternalTexture(_this, 2 /* InternalTextureSource.Temp */);\n glTextureFromLod.type = texture.type;\n glTextureFromLod.format = texture.format;\n glTextureFromLod.width = Math.pow(2, Math.max(Math.log2(width) - mipmapIndex, 0));\n glTextureFromLod.height = glTextureFromLod.width;\n glTextureFromLod.isCube = true;\n glTextureFromLod._cachedWrapU = 0;\n glTextureFromLod._cachedWrapV = 0;\n _this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, glTextureFromLod, true);\n glTextureFromLod.samplingMode = 2;\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n if (loadData.isDDS) {\n const info = loadData.info;\n const data = loadData.data;\n _this._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(_this, glTextureFromLod, data, info, true, 6, mipmapIndex);\n } else {\n Logger.Warn(\"DDS is the only prefiltered cube map supported so far.\");\n }\n _this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n // Wrap in a base texture for easy binding.\n const lodTexture = new BaseTexture(scene);\n lodTexture._isCube = true;\n lodTexture._texture = glTextureFromLod;\n glTextureFromLod.isReady = true;\n textures.push(lodTexture);\n }\n texture._lodTextureHigh = textures[2];\n texture._lodTextureMid = textures[1];\n texture._lodTextureLow = textures[0];\n if (onLoad) {\n onLoad(texture);\n }\n });\n return function callback(_x) {\n return _ref.apply(this, arguments);\n };\n }();\n return this.createCubeTexture(rootUrl, scene, null, false, callback, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset);\n};","map":{"version":3,"names":["ThinEngine","InternalTexture","Logger","SphericalPolynomial","BaseTexture","prototype","createPrefilteredCubeTexture","rootUrl","scene","lodScale","lodOffset","onLoad","onError","format","forcedExtension","createPolynomials","_this","callback","_ref","_asyncToGenerator","loadData","texture","_sphericalPolynomial","info","sphericalPolynomial","_source","getCaps","textureLOD","mipSlices","gl","_gl","width","DDSTools","textures","i","smoothness","roughness","minLODIndex","maxLODIndex","Math","log2","lodIndex","mipmapIndex","round","min","max","glTextureFromLod","type","pow","height","isCube","_cachedWrapU","_cachedWrapV","_bindTextureDirectly","TEXTURE_CUBE_MAP","samplingMode","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","isDDS","data","_unpackFlipY","isCompressed","UploadDDSLevels","Warn","lodTexture","_isCube","_texture","isReady","push","_lodTextureHigh","_lodTextureMid","_lodTextureLow","_x","apply","arguments","createCubeTexture"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Engines/Extensions/engine.prefilteredCubeTexture.js"],"sourcesContent":["import { ThinEngine } from \"../../Engines/thinEngine.js\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n\nimport { SphericalPolynomial } from \"../../Maths/sphericalPolynomial.js\";\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture.js\";\nThinEngine.prototype.createPrefilteredCubeTexture = function (rootUrl, scene, lodScale, lodOffset, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = true) {\n const callback = async (loadData) => {\n if (!loadData) {\n if (onLoad) {\n onLoad(null);\n }\n return;\n }\n const texture = loadData.texture;\n if (!createPolynomials) {\n texture._sphericalPolynomial = new SphericalPolynomial();\n }\n else if (loadData.info.sphericalPolynomial) {\n texture._sphericalPolynomial = loadData.info.sphericalPolynomial;\n }\n texture._source = 9 /* InternalTextureSource.CubePrefiltered */;\n if (this.getCaps().textureLOD) {\n // Do not add extra process if texture lod is supported.\n if (onLoad) {\n onLoad(texture);\n }\n return;\n }\n const mipSlices = 3;\n const gl = this._gl;\n const width = loadData.width;\n if (!width) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { DDSTools } = await import(\"../../Misc/dds.js\");\n const textures = [];\n for (let i = 0; i < mipSlices; i++) {\n //compute LOD from even spacing in smoothness (matching shader calculation)\n const smoothness = i / (mipSlices - 1);\n const roughness = 1 - smoothness;\n const minLODIndex = lodOffset; // roughness = 0\n const maxLODIndex = Math.log2(width) * lodScale + lodOffset; // roughness = 1\n const lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\n const mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\n const glTextureFromLod = new InternalTexture(this, 2 /* InternalTextureSource.Temp */);\n glTextureFromLod.type = texture.type;\n glTextureFromLod.format = texture.format;\n glTextureFromLod.width = Math.pow(2, Math.max(Math.log2(width) - mipmapIndex, 0));\n glTextureFromLod.height = glTextureFromLod.width;\n glTextureFromLod.isCube = true;\n glTextureFromLod._cachedWrapU = 0;\n glTextureFromLod._cachedWrapV = 0;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, glTextureFromLod, true);\n glTextureFromLod.samplingMode = 2;\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n if (loadData.isDDS) {\n const info = loadData.info;\n const data = loadData.data;\n this._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(this, glTextureFromLod, data, info, true, 6, mipmapIndex);\n }\n else {\n Logger.Warn(\"DDS is the only prefiltered cube map supported so far.\");\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n // Wrap in a base texture for easy binding.\n const lodTexture = new BaseTexture(scene);\n lodTexture._isCube = true;\n lodTexture._texture = glTextureFromLod;\n glTextureFromLod.isReady = true;\n textures.push(lodTexture);\n }\n texture._lodTextureHigh = textures[2];\n texture._lodTextureMid = textures[1];\n texture._lodTextureLow = textures[0];\n if (onLoad) {\n onLoad(texture);\n }\n };\n return this.createCubeTexture(rootUrl, scene, null, false, callback, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset);\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}