babylonjs-materials 5.16.0 → 5.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/babylon.cellMaterial.min.js.map +1 -1
- package/babylon.customMaterial.min.js.map +1 -1
- package/babylon.fireMaterial.min.js.map +1 -1
- package/babylon.furMaterial.min.js.map +1 -1
- package/babylon.gradientMaterial.min.js.map +1 -1
- package/babylon.gridMaterial.min.js.map +1 -1
- package/babylon.lavaMaterial.min.js.map +1 -1
- package/babylon.mixMaterial.min.js.map +1 -1
- package/babylon.normalMaterial.min.js.map +1 -1
- package/babylon.shadowOnlyMaterial.min.js.map +1 -1
- package/babylon.simpleMaterial.min.js.map +1 -1
- package/babylon.skyMaterial.min.js.map +1 -1
- package/babylon.terrainMaterial.min.js.map +1 -1
- package/babylon.triPlanarMaterial.min.js.map +1 -1
- package/babylon.waterMaterial.min.js.map +1 -1
- package/babylonjs.materials.min.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babylon.cellMaterial.min.js","mappings":"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","sources":["webpack://MATERIALS/webpack/universalModuleDefinition","webpack://MATERIALS/external umd {\"root\":\"BABYLON\",\"commonjs\":\"babylonjs\",\"commonjs2\":\"babylonjs\",\"amd\":\"babylonjs\"}","webpack://MATERIALS/webpack/bootstrap","webpack://MATERIALS/webpack/runtime/define property getters","webpack://MATERIALS/webpack/runtime/global","webpack://MATERIALS/webpack/runtime/hasOwnProperty shorthand","webpack://MATERIALS/webpack/runtime/make namespace object","webpack://MATERIALS/../../../../node_modules/tslib/tslib.es6.js","webpack://MATERIALS/../../../lts/materials/generated/cell/cell.fragment.ts","webpack://MATERIALS/../../../lts/materials/generated/cell/cell.vertex.ts","webpack://MATERIALS/../../../lts/materials/generated/cell/cellMaterial.ts","webpack://MATERIALS/../../../lts/materials/generated/legacy/legacy-cell.ts","webpack://MATERIALS/./src/cell.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"babylonjs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"babylonjs-materials\", [\"babylonjs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"babylonjs-materials\"] = factory(require(\"babylonjs\"));\n\telse\n\t\troot[\"MATERIALS\"] = factory(root[\"BABYLON\"]);\n})((typeof self !== \"undefined\" ? self : typeof global !== \"undefined\" ? global : this), (__WEBPACK_EXTERNAL_MODULE__520__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__520__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/helperFunctions\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/shadowsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragment\";\nimport \"core/Shaders/ShadersInclude/depthPrePass\";\nimport \"core/Shaders/ShadersInclude/lightFragment\";\nimport \"core/Shaders/ShadersInclude/fogFragment\";\nimport \"core/Shaders/ShadersInclude/imageProcessingCompatibility\";\n\nconst name = \"cellPixelShader\";\nconst shader = `precision highp float;\runiform vec4 vEyePosition;\runiform vec4 vDiffuseColor;\rvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\r#endif\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\runiform sampler2D diffuseSampler;\runiform vec2 vDiffuseInfos;\r#endif\n#include<clipPlaneFragmentDeclaration>\n#include<fogFragmentDeclaration>\nvec3 computeCustomDiffuseLighting(lightingInfo info,vec3 diffuseBase,float shadow)\r{\rdiffuseBase=info.diffuse*shadow;\r#ifdef CELLBASIC\nfloat level=1.0;\rif (info.ndl<0.5)\rlevel=0.5;\rdiffuseBase.rgb*vec3(level,level,level);\r#else\nfloat ToonThresholds[4];\rToonThresholds[0]=0.95;\rToonThresholds[1]=0.5;\rToonThresholds[2]=0.2;\rToonThresholds[3]=0.03;\rfloat ToonBrightnessLevels[5];\rToonBrightnessLevels[0]=1.0;\rToonBrightnessLevels[1]=0.8;\rToonBrightnessLevels[2]=0.6;\rToonBrightnessLevels[3]=0.35;\rToonBrightnessLevels[4]=0.2;\rif (info.ndl>ToonThresholds[0])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[0];\r}\relse if (info.ndl>ToonThresholds[1])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[1];\r}\relse if (info.ndl>ToonThresholds[2])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[2];\r}\relse if (info.ndl>ToonThresholds[3])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[3];\r}\relse\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[4];\r}\r#endif\nreturn max(diffuseBase,vec3(0.2));\r}\r#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\r{\r#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\rvec4 baseColor=vec4(1.,1.,1.,1.);\rvec3 diffuseColor=vDiffuseColor.rgb;\rfloat alpha=vDiffuseColor.a;\r#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV);\r#ifdef ALPHATEST\nif (baseColor.a<0.4)\rdiscard;\r#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\r#endif\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\r#endif\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\r#else\nvec3 normalW=vec3(1.0,1.0,1.0);\r#endif\nlightingInfo info;\rvec3 diffuseBase=vec3(0.,0.,0.);\rfloat shadow=1.;\rfloat glossiness=0.;\r#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\r#endif \n#include<lightFragment>[0..maxSimultaneousLights]\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR)\nalpha*=vColor.a;\r#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\rvec4 color=vec4(finalDiffuse,alpha);\r#include<fogFragment>\ngl_FragColor=color;\r#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const cellPixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesVertex\";\nimport \"core/Shaders/ShadersInclude/bonesVertex\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"core/Shaders/ShadersInclude/fogVertex\";\nimport \"core/Shaders/ShadersInclude/shadowsVertex\";\nimport \"core/Shaders/ShadersInclude/vertexColorMixing\";\n\nconst name = \"cellVertexShader\";\nconst shader = `precision highp float;\rattribute vec3 position;\r#ifdef NORMAL\nattribute vec3 normal;\r#endif\n#ifdef UV1\nattribute vec2 uv;\r#endif\n#ifdef UV2\nattribute vec2 uv2;\r#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\r#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;\runiform mat4 viewProjection;\r#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\runiform mat4 diffuseMatrix;\runiform vec2 vDiffuseInfos;\r#endif\n#ifdef POINTSIZE\nuniform float pointSize;\r#endif\nvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\r#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\rgl_Position=viewProjection*worldPos;\rvPositionW=vec3(worldPos);\r#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\r#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\r#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\r#endif\n#ifdef DIFFUSE\nif (vDiffuseInfos.x==0.)\r{\rvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\r}\relse\r{\rvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\r}\r#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\r#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const cellVertexShader = { name, shader };\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from \"core/Misc/decorators\";\r\nimport type { Matrix } from \"core/Maths/math.vector\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { MaterialHelper } from \"core/Materials/materialHelper\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { MaterialFlags } from \"core/Materials/materialFlags\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\n\r\nimport \"./cell.fragment\";\r\nimport \"./cell.vertex\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\n\r\nclass CellMaterialDefines extends MaterialDefines {\r\n public DIFFUSE = false;\r\n public CLIPPLANE = false;\r\n public CLIPPLANE2 = false;\r\n public CLIPPLANE3 = false;\r\n public CLIPPLANE4 = false;\r\n public CLIPPLANE5 = false;\r\n public CLIPPLANE6 = false;\r\n public ALPHATEST = false;\r\n public POINTSIZE = false;\r\n public FOG = false;\r\n public NORMAL = false;\r\n public UV1 = false;\r\n public UV2 = false;\r\n public VERTEXCOLOR = false;\r\n public VERTEXALPHA = false;\r\n public NUM_BONE_INFLUENCERS = 0;\r\n public BonesPerMesh = 0;\r\n public INSTANCES = false;\r\n public INSTANCESCOLOR = false;\r\n public NDOTL = true;\r\n public CUSTOMUSERLIGHTING = true;\r\n public CELLBASIC = true;\r\n public DEPTHPREPASS = false;\r\n public IMAGEPROCESSINGPOSTPROCESS = false;\r\n public SKIPFINALCOLORCLAMP = false;\r\n\r\n constructor() {\r\n super();\r\n this.rebuild();\r\n }\r\n}\r\n\r\nexport class CellMaterial extends PushMaterial {\r\n @serializeAsTexture(\"diffuseTexture\")\r\n private _diffuseTexture: BaseTexture;\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public diffuseTexture: BaseTexture;\r\n\r\n @serializeAsColor3(\"diffuse\")\r\n public diffuseColor = new Color3(1, 1, 1);\r\n\r\n @serialize(\"computeHighLevel\")\r\n public _computeHighLevel: boolean = false;\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public computeHighLevel: boolean;\r\n\r\n @serialize(\"disableLighting\")\r\n private _disableLighting = false;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public disableLighting: boolean;\r\n\r\n @serialize(\"maxSimultaneousLights\")\r\n private _maxSimultaneousLights = 4;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public maxSimultaneousLights: number;\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n }\r\n\r\n public needAlphaBlending(): boolean {\r\n return this.alpha < 1.0;\r\n }\r\n\r\n public needAlphaTesting(): boolean {\r\n return false;\r\n }\r\n\r\n public getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n // Methods\r\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\r\n if (this.isFrozen) {\r\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady && subMesh.effect._wasPreviouslyUsingInstances === useInstances) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new CellMaterialDefines();\r\n }\r\n\r\n const defines = <CellMaterialDefines>subMesh.materialDefines;\r\n const scene = this.getScene();\r\n\r\n if (this._isReadyForSubMesh(subMesh)) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n // Textures\r\n if (defines._areTexturesDirty) {\r\n defines._needUVs = false;\r\n if (scene.texturesEnabled) {\r\n if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\r\n if (!this._diffuseTexture.isReady()) {\r\n return false;\r\n } else {\r\n defines._needUVs = true;\r\n defines.DIFFUSE = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // High level\r\n defines.CELLBASIC = !this.computeHighLevel;\r\n\r\n // Misc.\r\n MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);\r\n\r\n // Lights\r\n defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);\r\n\r\n // Values that need to be evaluated on every frame\r\n MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);\r\n\r\n // Attribs\r\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, true, true);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n scene.resetCachedMaterial();\r\n\r\n // Fallbacks\r\n const fallbacks = new EffectFallbacks();\r\n if (defines.FOG) {\r\n fallbacks.addFallback(1, \"FOG\");\r\n }\r\n\r\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks, this.maxSimultaneousLights);\r\n\r\n if (defines.NUM_BONE_INFLUENCERS > 0) {\r\n fallbacks.addCPUSkinningFallback(0, mesh);\r\n }\r\n\r\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n\r\n if (defines.NORMAL) {\r\n attribs.push(VertexBuffer.NormalKind);\r\n }\r\n\r\n if (defines.UV1) {\r\n attribs.push(VertexBuffer.UVKind);\r\n }\r\n\r\n if (defines.UV2) {\r\n attribs.push(VertexBuffer.UV2Kind);\r\n }\r\n\r\n if (defines.VERTEXCOLOR) {\r\n attribs.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\r\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\r\n\r\n const shaderName = \"cell\";\r\n const join = defines.toString();\r\n const uniforms = [\r\n \"world\",\r\n \"view\",\r\n \"viewProjection\",\r\n \"vEyePosition\",\r\n \"vLightsType\",\r\n \"vDiffuseColor\",\r\n \"vFogInfos\",\r\n \"vFogColor\",\r\n \"pointSize\",\r\n \"vDiffuseInfos\",\r\n \"mBones\",\r\n \"vClipPlane\",\r\n \"vClipPlane2\",\r\n \"vClipPlane3\",\r\n \"vClipPlane4\",\r\n \"vClipPlane5\",\r\n \"vClipPlane6\",\r\n \"diffuseMatrix\",\r\n ];\r\n const samplers = [\"diffuseSampler\"];\r\n const uniformBuffers = new Array<string>();\r\n\r\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: this.maxSimultaneousLights,\r\n });\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n <IEffectCreationOptions>{\r\n attributes: attribs,\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: join,\r\n fallbacks: fallbacks,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights - 1 },\r\n },\r\n engine\r\n ),\r\n defines,\r\n this._materialContext\r\n );\r\n }\r\n if (!subMesh.effect || !subMesh.effect.isReady()) {\r\n return false;\r\n }\r\n\r\n defines._renderId = scene.getRenderId();\r\n subMesh.effect._wasPreviouslyReady = true;\r\n subMesh.effect._wasPreviouslyUsingInstances = !!useInstances;\r\n\r\n return true;\r\n }\r\n\r\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const scene = this.getScene();\r\n\r\n const defines = <CellMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n const effect = subMesh.effect;\r\n if (!effect) {\r\n return;\r\n }\r\n this._activeEffect = effect;\r\n\r\n // Matrices\r\n this.bindOnlyWorldMatrix(world);\r\n this._activeEffect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\r\n\r\n // Bones\r\n MaterialHelper.BindBonesParameters(mesh, this._activeEffect);\r\n\r\n if (this._mustRebind(scene, effect)) {\r\n // Textures\r\n if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\r\n this._activeEffect.setTexture(\"diffuseSampler\", this._diffuseTexture);\r\n\r\n this._activeEffect.setFloat2(\"vDiffuseInfos\", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level);\r\n this._activeEffect.setMatrix(\"diffuseMatrix\", this._diffuseTexture.getTextureMatrix());\r\n }\r\n\r\n // Clip plane\r\n MaterialHelper.BindClipPlane(this._activeEffect, scene);\r\n\r\n // Point size\r\n if (this.pointsCloud) {\r\n this._activeEffect.setFloat(\"pointSize\", this.pointSize);\r\n }\r\n\r\n scene.bindEyePosition(effect);\r\n }\r\n\r\n this._activeEffect.setColor4(\"vDiffuseColor\", this.diffuseColor, this.alpha * mesh.visibility);\r\n\r\n // Lights\r\n if (scene.lightsEnabled && !this.disableLighting) {\r\n MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines, this._maxSimultaneousLights);\r\n }\r\n\r\n // View\r\n if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) {\r\n this._activeEffect.setMatrix(\"view\", scene.getViewMatrix());\r\n }\r\n\r\n // Fog\r\n MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);\r\n\r\n this._afterBind(mesh, this._activeEffect);\r\n }\r\n\r\n public getAnimatables(): IAnimatable[] {\r\n const results = [];\r\n\r\n if (this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0) {\r\n results.push(this._diffuseTexture);\r\n }\r\n\r\n return results;\r\n }\r\n\r\n public getActiveTextures(): BaseTexture[] {\r\n const activeTextures = super.getActiveTextures();\r\n\r\n if (this._diffuseTexture) {\r\n activeTextures.push(this._diffuseTexture);\r\n }\r\n\r\n return activeTextures;\r\n }\r\n\r\n public hasTexture(texture: BaseTexture): boolean {\r\n if (super.hasTexture(texture)) {\r\n return true;\r\n }\r\n\r\n return this._diffuseTexture === texture;\r\n }\r\n\r\n public dispose(forceDisposeEffect?: boolean): void {\r\n if (this._diffuseTexture) {\r\n this._diffuseTexture.dispose();\r\n }\r\n\r\n super.dispose(forceDisposeEffect);\r\n }\r\n\r\n public getClassName(): string {\r\n return \"CellMaterial\";\r\n }\r\n\r\n public clone(name: string): CellMaterial {\r\n return SerializationHelper.Clone<CellMaterial>(() => new CellMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.CellMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n // Statics\r\n public static Parse(source: any, scene: Scene, rootUrl: string): CellMaterial {\r\n return SerializationHelper.Parse(() => new CellMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CellMaterial\", CellMaterial);\r\n","/* eslint-disable import/no-internal-modules */\nimport * as MatLib from \"../cell/index\";\n/**\n * This is the entry point for the UMD module.\n * The entry point for a future ESM package should be index.ts\n */\nconst globalObject = typeof global !== \"undefined\" ? global : typeof window !== \"undefined\" ? window : undefined;\nif (typeof globalObject !== \"undefined\") {\n for (const key in MatLib) {\n (<any>globalObject).BABYLON[key] = (<any>MatLib)[key];\n }\n}\nexport * from \"../cell/index\";\n","import * as materials from \"materials/legacy/legacy-cell\";\r\nexport { materials };\r\nexport default materials;\r\n"],"names":["root","factory","exports","module","require","define","amd","self","global","this","__WEBPACK_EXTERNAL_MODULE__520__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","TypeError","String","__","constructor","create","__decorate","decorators","target","desc","c","arguments","length","getOwnPropertyDescriptor","Reflect","decorate","i","DIFFUSE","CLIPPLANE","CLIPPLANE2","CLIPPLANE3","CLIPPLANE4","CLIPPLANE5","CLIPPLANE6","ALPHATEST","POINTSIZE","FOG","NORMAL","UV1","UV2","VERTEXCOLOR","VERTEXALPHA","NUM_BONE_INFLUENCERS","BonesPerMesh","INSTANCES","INSTANCESCOLOR","NDOTL","CUSTOMUSERLIGHTING","CELLBASIC","DEPTHPREPASS","IMAGEPROCESSINGPOSTPROCESS","SKIPFINALCOLORCLAMP","rebuild","MaterialDefines","name","scene","diffuseColor","Color3","_computeHighLevel","_disableLighting","_maxSimultaneousLights","needAlphaBlending","alpha","needAlphaTesting","getAlphaTestTexture","isReadyForSubMesh","mesh","subMesh","useInstances","isFrozen","effect","_wasPreviouslyReady","_wasPreviouslyUsingInstances","materialDefines","CellMaterialDefines","defines","getScene","_isReadyForSubMesh","engine","getEngine","_areTexturesDirty","_needUVs","texturesEnabled","_diffuseTexture","MaterialFlags","isReady","computeHighLevel","MaterialHelper","pointsCloud","fogEnabled","_shouldTurnAlphaTestOn","_needNormals","isDirty","markAsProcessed","resetCachedMaterial","fallbacks","EffectFallbacks","addFallback","maxSimultaneousLights","addCPUSkinningFallback","imageProcessingConfiguration","applyByPostProcess","attribs","VertexBuffer","push","join","toString","uniforms","samplers","uniformBuffers","uniformsNames","uniformBuffersNames","setEffect","createEffect","attributes","onCompiled","onError","indexParameters","_materialContext","_renderId","getRenderId","bindForSubMesh","world","_activeEffect","bindOnlyWorldMatrix","setMatrix","getTransformMatrix","_mustRebind","setTexture","setFloat2","coordinatesIndex","level","getTextureMatrix","setFloat","pointSize","bindEyePosition","setColor4","visibility","lightsEnabled","disableLighting","applyFog","fogMode","Scene","getViewMatrix","_afterBind","getAnimatables","results","animations","getActiveTextures","activeTextures","hasTexture","texture","dispose","forceDisposeEffect","getClassName","clone","SerializationHelper","CellMaterial","serialize","serializationObject","customType","Parse","source","rootUrl","serializeAsTexture","expandToProperty","serializeAsColor3","PushMaterial","RegisterClass","globalObject","BABYLON"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"babylon.cellMaterial.min.js","mappings":"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","sources":["webpack://MATERIALS/webpack/universalModuleDefinition","webpack://MATERIALS/external umd {\"root\":\"BABYLON\",\"commonjs\":\"babylonjs\",\"commonjs2\":\"babylonjs\",\"amd\":\"babylonjs\"}","webpack://MATERIALS/webpack/bootstrap","webpack://MATERIALS/webpack/runtime/define property getters","webpack://MATERIALS/webpack/runtime/global","webpack://MATERIALS/webpack/runtime/hasOwnProperty shorthand","webpack://MATERIALS/webpack/runtime/make namespace object","webpack://MATERIALS/../../../../node_modules/tslib/tslib.es6.js","webpack://MATERIALS/../../../lts/materials/generated/cell/cell.fragment.ts","webpack://MATERIALS/../../../lts/materials/generated/cell/cell.vertex.ts","webpack://MATERIALS/../../../lts/materials/generated/cell/cellMaterial.ts","webpack://MATERIALS/../../../lts/materials/generated/legacy/legacy-cell.ts","webpack://MATERIALS/./src/cell.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"babylonjs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"babylonjs-materials\", [\"babylonjs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"babylonjs-materials\"] = factory(require(\"babylonjs\"));\n\telse\n\t\troot[\"MATERIALS\"] = factory(root[\"BABYLON\"]);\n})((typeof self !== \"undefined\" ? self : typeof global !== \"undefined\" ? global : this), (__WEBPACK_EXTERNAL_MODULE__520__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__520__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/helperFunctions\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/shadowsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragment\";\nimport \"core/Shaders/ShadersInclude/depthPrePass\";\nimport \"core/Shaders/ShadersInclude/lightFragment\";\nimport \"core/Shaders/ShadersInclude/fogFragment\";\nimport \"core/Shaders/ShadersInclude/imageProcessingCompatibility\";\n\nconst name = \"cellPixelShader\";\nconst shader = `precision highp float;\runiform vec4 vEyePosition;\runiform vec4 vDiffuseColor;\rvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\r#endif\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\runiform sampler2D diffuseSampler;\runiform vec2 vDiffuseInfos;\r#endif\n#include<clipPlaneFragmentDeclaration>\n#include<fogFragmentDeclaration>\nvec3 computeCustomDiffuseLighting(lightingInfo info,vec3 diffuseBase,float shadow)\r{\rdiffuseBase=info.diffuse*shadow;\r#ifdef CELLBASIC\nfloat level=1.0;\rif (info.ndl<0.5)\rlevel=0.5;\rdiffuseBase.rgb*vec3(level,level,level);\r#else\nfloat ToonThresholds[4];\rToonThresholds[0]=0.95;\rToonThresholds[1]=0.5;\rToonThresholds[2]=0.2;\rToonThresholds[3]=0.03;\rfloat ToonBrightnessLevels[5];\rToonBrightnessLevels[0]=1.0;\rToonBrightnessLevels[1]=0.8;\rToonBrightnessLevels[2]=0.6;\rToonBrightnessLevels[3]=0.35;\rToonBrightnessLevels[4]=0.2;\rif (info.ndl>ToonThresholds[0])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[0];\r}\relse if (info.ndl>ToonThresholds[1])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[1];\r}\relse if (info.ndl>ToonThresholds[2])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[2];\r}\relse if (info.ndl>ToonThresholds[3])\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[3];\r}\relse\r{\rdiffuseBase.rgb*=ToonBrightnessLevels[4];\r}\r#endif\nreturn max(diffuseBase,vec3(0.2));\r}\r#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void)\r{\r#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\rvec4 baseColor=vec4(1.,1.,1.,1.);\rvec3 diffuseColor=vDiffuseColor.rgb;\rfloat alpha=vDiffuseColor.a;\r#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV);\r#ifdef ALPHATEST\nif (baseColor.a<0.4)\rdiscard;\r#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\r#endif\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\r#endif\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\r#else\nvec3 normalW=vec3(1.0,1.0,1.0);\r#endif\nlightingInfo info;\rvec3 diffuseBase=vec3(0.,0.,0.);\rfloat shadow=1.;\rfloat glossiness=0.;\r#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\r#endif \n#include<lightFragment>[0..maxSimultaneousLights]\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR)\nalpha*=vColor.a;\r#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\rvec4 color=vec4(finalDiffuse,alpha);\r#include<fogFragment>\ngl_FragColor=color;\r#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const cellPixelShader = { name, shader };\n","// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesVertex\";\nimport \"core/Shaders/ShadersInclude/bonesVertex\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"core/Shaders/ShadersInclude/fogVertex\";\nimport \"core/Shaders/ShadersInclude/shadowsVertex\";\nimport \"core/Shaders/ShadersInclude/vertexColorMixing\";\n\nconst name = \"cellVertexShader\";\nconst shader = `precision highp float;\rattribute vec3 position;\r#ifdef NORMAL\nattribute vec3 normal;\r#endif\n#ifdef UV1\nattribute vec2 uv;\r#endif\n#ifdef UV2\nattribute vec2 uv2;\r#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\r#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;\runiform mat4 viewProjection;\r#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;\runiform mat4 diffuseMatrix;\runiform vec2 vDiffuseInfos;\r#endif\n#ifdef POINTSIZE\nuniform float pointSize;\r#endif\nvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\r#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\rgl_Position=viewProjection*worldPos;\rvPositionW=vec3(worldPos);\r#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\r#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\r#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\r#endif\n#ifdef DIFFUSE\nif (vDiffuseInfos.x==0.)\r{\rvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\r}\relse\r{\rvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\r}\r#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\r#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const cellVertexShader = { name, shader };\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { serializeAsTexture, serialize, expandToProperty, serializeAsColor3, SerializationHelper } from \"core/Misc/decorators\";\r\nimport type { Matrix } from \"core/Maths/math.vector\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { MaterialHelper } from \"core/Materials/materialHelper\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\r\nimport { MaterialFlags } from \"core/Materials/materialFlags\";\r\nimport { VertexBuffer } from \"core/Buffers/buffer\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { SubMesh } from \"core/Meshes/subMesh\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\n\r\nimport \"./cell.fragment\";\r\nimport \"./cell.vertex\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\n\r\nclass CellMaterialDefines extends MaterialDefines {\r\n public DIFFUSE = false;\r\n public CLIPPLANE = false;\r\n public CLIPPLANE2 = false;\r\n public CLIPPLANE3 = false;\r\n public CLIPPLANE4 = false;\r\n public CLIPPLANE5 = false;\r\n public CLIPPLANE6 = false;\r\n public ALPHATEST = false;\r\n public POINTSIZE = false;\r\n public FOG = false;\r\n public NORMAL = false;\r\n public UV1 = false;\r\n public UV2 = false;\r\n public VERTEXCOLOR = false;\r\n public VERTEXALPHA = false;\r\n public NUM_BONE_INFLUENCERS = 0;\r\n public BonesPerMesh = 0;\r\n public INSTANCES = false;\r\n public INSTANCESCOLOR = false;\r\n public NDOTL = true;\r\n public CUSTOMUSERLIGHTING = true;\r\n public CELLBASIC = true;\r\n public DEPTHPREPASS = false;\r\n public IMAGEPROCESSINGPOSTPROCESS = false;\r\n public SKIPFINALCOLORCLAMP = false;\r\n\r\n constructor() {\r\n super();\r\n this.rebuild();\r\n }\r\n}\r\n\r\nexport class CellMaterial extends PushMaterial {\r\n @serializeAsTexture(\"diffuseTexture\")\r\n private _diffuseTexture: BaseTexture;\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public diffuseTexture: BaseTexture;\r\n\r\n @serializeAsColor3(\"diffuse\")\r\n public diffuseColor = new Color3(1, 1, 1);\r\n\r\n @serialize(\"computeHighLevel\")\r\n public _computeHighLevel: boolean = false;\r\n @expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\r\n public computeHighLevel: boolean;\r\n\r\n @serialize(\"disableLighting\")\r\n private _disableLighting = false;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public disableLighting: boolean;\r\n\r\n @serialize(\"maxSimultaneousLights\")\r\n private _maxSimultaneousLights = 4;\r\n @expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\r\n public maxSimultaneousLights: number;\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n }\r\n\r\n public needAlphaBlending(): boolean {\r\n return this.alpha < 1.0;\r\n }\r\n\r\n public needAlphaTesting(): boolean {\r\n return false;\r\n }\r\n\r\n public getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n // Methods\r\n public isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\r\n if (this.isFrozen) {\r\n if (subMesh.effect && subMesh.effect._wasPreviouslyReady && subMesh.effect._wasPreviouslyUsingInstances === useInstances) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new CellMaterialDefines();\r\n }\r\n\r\n const defines = <CellMaterialDefines>subMesh.materialDefines;\r\n const scene = this.getScene();\r\n\r\n if (this._isReadyForSubMesh(subMesh)) {\r\n return true;\r\n }\r\n\r\n const engine = scene.getEngine();\r\n\r\n // Textures\r\n if (defines._areTexturesDirty) {\r\n defines._needUVs = false;\r\n if (scene.texturesEnabled) {\r\n if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\r\n if (!this._diffuseTexture.isReady()) {\r\n return false;\r\n } else {\r\n defines._needUVs = true;\r\n defines.DIFFUSE = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // High level\r\n defines.CELLBASIC = !this.computeHighLevel;\r\n\r\n // Misc.\r\n MaterialHelper.PrepareDefinesForMisc(mesh, scene, false, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh), defines);\r\n\r\n // Lights\r\n defines._needNormals = MaterialHelper.PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);\r\n\r\n // Values that need to be evaluated on every frame\r\n MaterialHelper.PrepareDefinesForFrameBoundValues(scene, engine, defines, useInstances ? true : false);\r\n\r\n // Attribs\r\n MaterialHelper.PrepareDefinesForAttributes(mesh, defines, true, true);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n scene.resetCachedMaterial();\r\n\r\n // Fallbacks\r\n const fallbacks = new EffectFallbacks();\r\n if (defines.FOG) {\r\n fallbacks.addFallback(1, \"FOG\");\r\n }\r\n\r\n MaterialHelper.HandleFallbacksForShadows(defines, fallbacks, this.maxSimultaneousLights);\r\n\r\n if (defines.NUM_BONE_INFLUENCERS > 0) {\r\n fallbacks.addCPUSkinningFallback(0, mesh);\r\n }\r\n\r\n defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;\r\n\r\n //Attributes\r\n const attribs = [VertexBuffer.PositionKind];\r\n\r\n if (defines.NORMAL) {\r\n attribs.push(VertexBuffer.NormalKind);\r\n }\r\n\r\n if (defines.UV1) {\r\n attribs.push(VertexBuffer.UVKind);\r\n }\r\n\r\n if (defines.UV2) {\r\n attribs.push(VertexBuffer.UV2Kind);\r\n }\r\n\r\n if (defines.VERTEXCOLOR) {\r\n attribs.push(VertexBuffer.ColorKind);\r\n }\r\n\r\n MaterialHelper.PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\r\n MaterialHelper.PrepareAttributesForInstances(attribs, defines);\r\n\r\n const shaderName = \"cell\";\r\n const join = defines.toString();\r\n const uniforms = [\r\n \"world\",\r\n \"view\",\r\n \"viewProjection\",\r\n \"vEyePosition\",\r\n \"vLightsType\",\r\n \"vDiffuseColor\",\r\n \"vFogInfos\",\r\n \"vFogColor\",\r\n \"pointSize\",\r\n \"vDiffuseInfos\",\r\n \"mBones\",\r\n \"vClipPlane\",\r\n \"vClipPlane2\",\r\n \"vClipPlane3\",\r\n \"vClipPlane4\",\r\n \"vClipPlane5\",\r\n \"vClipPlane6\",\r\n \"diffuseMatrix\",\r\n ];\r\n const samplers = [\"diffuseSampler\"];\r\n const uniformBuffers = new Array<string>();\r\n\r\n MaterialHelper.PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: this.maxSimultaneousLights,\r\n });\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n <IEffectCreationOptions>{\r\n attributes: attribs,\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: join,\r\n fallbacks: fallbacks,\r\n onCompiled: this.onCompiled,\r\n onError: this.onError,\r\n indexParameters: { maxSimultaneousLights: this.maxSimultaneousLights - 1 },\r\n },\r\n engine\r\n ),\r\n defines,\r\n this._materialContext\r\n );\r\n }\r\n if (!subMesh.effect || !subMesh.effect.isReady()) {\r\n return false;\r\n }\r\n\r\n defines._renderId = scene.getRenderId();\r\n subMesh.effect._wasPreviouslyReady = true;\r\n subMesh.effect._wasPreviouslyUsingInstances = !!useInstances;\r\n\r\n return true;\r\n }\r\n\r\n public bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const scene = this.getScene();\r\n\r\n const defines = <CellMaterialDefines>subMesh.materialDefines;\r\n if (!defines) {\r\n return;\r\n }\r\n\r\n const effect = subMesh.effect;\r\n if (!effect) {\r\n return;\r\n }\r\n this._activeEffect = effect;\r\n\r\n // Matrices\r\n this.bindOnlyWorldMatrix(world);\r\n this._activeEffect.setMatrix(\"viewProjection\", scene.getTransformMatrix());\r\n\r\n // Bones\r\n MaterialHelper.BindBonesParameters(mesh, this._activeEffect);\r\n\r\n if (this._mustRebind(scene, effect)) {\r\n // Textures\r\n if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {\r\n this._activeEffect.setTexture(\"diffuseSampler\", this._diffuseTexture);\r\n\r\n this._activeEffect.setFloat2(\"vDiffuseInfos\", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level);\r\n this._activeEffect.setMatrix(\"diffuseMatrix\", this._diffuseTexture.getTextureMatrix());\r\n }\r\n\r\n // Clip plane\r\n MaterialHelper.BindClipPlane(this._activeEffect, scene);\r\n\r\n // Point size\r\n if (this.pointsCloud) {\r\n this._activeEffect.setFloat(\"pointSize\", this.pointSize);\r\n }\r\n\r\n scene.bindEyePosition(effect);\r\n }\r\n\r\n this._activeEffect.setColor4(\"vDiffuseColor\", this.diffuseColor, this.alpha * mesh.visibility);\r\n\r\n // Lights\r\n if (scene.lightsEnabled && !this.disableLighting) {\r\n MaterialHelper.BindLights(scene, mesh, this._activeEffect, defines, this._maxSimultaneousLights);\r\n }\r\n\r\n // View\r\n if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) {\r\n this._activeEffect.setMatrix(\"view\", scene.getViewMatrix());\r\n }\r\n\r\n // Fog\r\n MaterialHelper.BindFogParameters(scene, mesh, this._activeEffect);\r\n\r\n this._afterBind(mesh, this._activeEffect);\r\n }\r\n\r\n public getAnimatables(): IAnimatable[] {\r\n const results = [];\r\n\r\n if (this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0) {\r\n results.push(this._diffuseTexture);\r\n }\r\n\r\n return results;\r\n }\r\n\r\n public getActiveTextures(): BaseTexture[] {\r\n const activeTextures = super.getActiveTextures();\r\n\r\n if (this._diffuseTexture) {\r\n activeTextures.push(this._diffuseTexture);\r\n }\r\n\r\n return activeTextures;\r\n }\r\n\r\n public hasTexture(texture: BaseTexture): boolean {\r\n if (super.hasTexture(texture)) {\r\n return true;\r\n }\r\n\r\n return this._diffuseTexture === texture;\r\n }\r\n\r\n public dispose(forceDisposeEffect?: boolean): void {\r\n if (this._diffuseTexture) {\r\n this._diffuseTexture.dispose();\r\n }\r\n\r\n super.dispose(forceDisposeEffect);\r\n }\r\n\r\n public getClassName(): string {\r\n return \"CellMaterial\";\r\n }\r\n\r\n public clone(name: string): CellMaterial {\r\n return SerializationHelper.Clone<CellMaterial>(() => new CellMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.CellMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n // Statics\r\n public static Parse(source: any, scene: Scene, rootUrl: string): CellMaterial {\r\n return SerializationHelper.Parse(() => new CellMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CellMaterial\", CellMaterial);\r\n","/* eslint-disable import/no-internal-modules */\nimport * as MatLib from \"../cell/index\";\n/**\n * This is the entry point for the UMD module.\n * The entry point for a future ESM package should be index.ts\n */\nconst globalObject = typeof global !== \"undefined\" ? global : typeof window !== \"undefined\" ? window : undefined;\nif (typeof globalObject !== \"undefined\") {\n for (const key in MatLib) {\n (<any>globalObject).BABYLON[key] = (<any>MatLib)[key];\n }\n}\nexport * from \"../cell/index\";\n","import * as materials from \"materials/legacy/legacy-cell\";\r\nexport { materials };\r\nexport default materials;\r\n"],"names":["root","factory","exports","module","require","define","amd","self","global","this","__WEBPACK_EXTERNAL_MODULE__520__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","TypeError","String","__","constructor","create","__decorate","decorators","target","desc","c","arguments","length","getOwnPropertyDescriptor","Reflect","decorate","i","DIFFUSE","CLIPPLANE","CLIPPLANE2","CLIPPLANE3","CLIPPLANE4","CLIPPLANE5","CLIPPLANE6","ALPHATEST","POINTSIZE","FOG","NORMAL","UV1","UV2","VERTEXCOLOR","VERTEXALPHA","NUM_BONE_INFLUENCERS","BonesPerMesh","INSTANCES","INSTANCESCOLOR","NDOTL","CUSTOMUSERLIGHTING","CELLBASIC","DEPTHPREPASS","IMAGEPROCESSINGPOSTPROCESS","SKIPFINALCOLORCLAMP","rebuild","MaterialDefines","name","scene","diffuseColor","Color3","_computeHighLevel","_disableLighting","_maxSimultaneousLights","needAlphaBlending","alpha","needAlphaTesting","getAlphaTestTexture","isReadyForSubMesh","mesh","subMesh","useInstances","isFrozen","effect","_wasPreviouslyReady","_wasPreviouslyUsingInstances","materialDefines","CellMaterialDefines","defines","getScene","_isReadyForSubMesh","engine","getEngine","_areTexturesDirty","_needUVs","texturesEnabled","_diffuseTexture","MaterialFlags","isReady","computeHighLevel","MaterialHelper","pointsCloud","fogEnabled","_shouldTurnAlphaTestOn","_needNormals","isDirty","markAsProcessed","resetCachedMaterial","fallbacks","EffectFallbacks","addFallback","maxSimultaneousLights","addCPUSkinningFallback","imageProcessingConfiguration","applyByPostProcess","attribs","VertexBuffer","push","join","toString","uniforms","samplers","uniformBuffers","uniformsNames","uniformBuffersNames","setEffect","createEffect","attributes","onCompiled","onError","indexParameters","_materialContext","_renderId","getRenderId","bindForSubMesh","world","_activeEffect","bindOnlyWorldMatrix","setMatrix","getTransformMatrix","_mustRebind","setTexture","setFloat2","coordinatesIndex","level","getTextureMatrix","setFloat","pointSize","bindEyePosition","setColor4","visibility","lightsEnabled","disableLighting","applyFog","fogMode","Scene","getViewMatrix","_afterBind","getAnimatables","results","animations","getActiveTextures","activeTextures","hasTexture","texture","dispose","forceDisposeEffect","getClassName","clone","SerializationHelper","CellMaterial","serialize","serializationObject","customType","Parse","source","rootUrl","serializeAsTexture","expandToProperty","serializeAsColor3","PushMaterial","RegisterClass","globalObject","BABYLON"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babylon.customMaterial.min.js","mappings":"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","sources":["webpack://MATERIALS/webpack/universalModuleDefinition","webpack://MATERIALS/external umd {\"root\":\"BABYLON\",\"commonjs\":\"babylonjs\",\"commonjs2\":\"babylonjs\",\"amd\":\"babylonjs\"}","webpack://MATERIALS/webpack/bootstrap","webpack://MATERIALS/webpack/runtime/define property getters","webpack://MATERIALS/webpack/runtime/global","webpack://MATERIALS/webpack/runtime/hasOwnProperty shorthand","webpack://MATERIALS/webpack/runtime/make namespace object","webpack://MATERIALS/../../../../node_modules/tslib/tslib.es6.js","webpack://MATERIALS/../../../lts/materials/generated/custom/customMaterial.ts","webpack://MATERIALS/../../../lts/materials/generated/custom/pbrCustomMaterial.ts","webpack://MATERIALS/../../../lts/materials/generated/legacy/legacy-custom.ts","webpack://MATERIALS/./src/custom.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"babylonjs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"babylonjs-materials\", [\"babylonjs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"babylonjs-materials\"] = factory(require(\"babylonjs\"));\n\telse\n\t\troot[\"MATERIALS\"] = factory(root[\"BABYLON\"]);\n})((typeof self !== \"undefined\" ? self : typeof global !== \"undefined\" ? global : this), (__WEBPACK_EXTERNAL_MODULE__520__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__520__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport type { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\nexport class CustomShaderStructure {\r\n public FragmentStore: string;\r\n public VertexStore: string;\r\n\r\n constructor() {}\r\n}\r\n\r\nexport class ShaderSpecialParts {\r\n constructor() {}\r\n\r\n public Fragment_Begin: string;\r\n public Fragment_Definitions: string;\r\n public Fragment_MainBegin: string;\r\n public Fragment_MainEnd: string;\r\n\r\n // diffuseColor\r\n public Fragment_Custom_Diffuse: string;\r\n // lights\r\n public Fragment_Before_Lights: string;\r\n // fog\r\n public Fragment_Before_Fog: string;\r\n // alpha\r\n public Fragment_Custom_Alpha: string;\r\n\r\n public Fragment_Before_FragColor: string;\r\n\r\n public Vertex_Begin: string;\r\n public Vertex_Definitions: string;\r\n public Vertex_MainBegin: string;\r\n\r\n // positionUpdated\r\n public Vertex_Before_PositionUpdated: string;\r\n\r\n // normalUpdated\r\n public Vertex_Before_NormalUpdated: string;\r\n\r\n // worldPosComputed\r\n public Vertex_After_WorldPosComputed: string;\r\n\r\n // mainEnd\r\n public Vertex_MainEnd: string;\r\n}\r\n\r\nexport class CustomMaterial extends StandardMaterial {\r\n public static ShaderIndexer = 1;\r\n public CustomParts: ShaderSpecialParts;\r\n _isCreatedShader: boolean;\r\n _createdShaderName: string;\r\n _customUniform: string[];\r\n _newUniforms: string[];\r\n _newUniformInstances: { [name: string]: any };\r\n _newSamplerInstances: { [name: string]: Texture };\r\n _customAttributes: string[];\r\n\r\n public FragmentShader: string;\r\n public VertexShader: string;\r\n\r\n public AttachAfterBind(mesh: Mesh | undefined, effect: Effect) {\r\n if (this._newUniformInstances) {\r\n for (const el in this._newUniformInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"vec2\") {\r\n effect.setVector2(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec3\") {\r\n effect.setVector3(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec4\") {\r\n effect.setVector4(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"mat4\") {\r\n effect.setMatrix(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"float\") {\r\n effect.setFloat(ea[1], this._newUniformInstances[el]);\r\n }\r\n }\r\n }\r\n if (this._newSamplerInstances) {\r\n for (const el in this._newSamplerInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"sampler2D\" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {\r\n effect.setTexture(ea[1], this._newSamplerInstances[el]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public ReviewUniform(name: string, arr: string[]): string[] {\r\n if (name == \"uniform\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") == -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n if (name == \"sampler\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") != -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n public Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: MaterialDefines | string[], attributes?: string[]): string {\r\n if (attributes && this._customAttributes && this._customAttributes.length > 0) {\r\n attributes.push(...this._customAttributes);\r\n }\r\n\r\n this.ReviewUniform(\"uniform\", uniforms);\r\n this.ReviewUniform(\"sampler\", samplers);\r\n\r\n if (this._isCreatedShader) {\r\n return this._createdShaderName;\r\n }\r\n this._isCreatedShader = false;\r\n\r\n CustomMaterial.ShaderIndexer++;\r\n const name: string = \"custom_\" + CustomMaterial.ShaderIndexer;\r\n\r\n const fn_afterBind = this._afterBind.bind(this);\r\n this._afterBind = (m, e) => {\r\n if (!e) {\r\n return;\r\n }\r\n this.AttachAfterBind(m, e);\r\n try {\r\n fn_afterBind(m, e);\r\n } catch (e) {}\r\n };\r\n\r\n Effect.ShadersStore[name + \"VertexShader\"] = this.VertexShader.replace(\"#define CUSTOM_VERTEX_BEGIN\", this.CustomParts.Vertex_Begin ? this.CustomParts.Vertex_Begin : \"\")\r\n .replace(\r\n \"#define CUSTOM_VERTEX_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Vertex_Definitions ? this.CustomParts.Vertex_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_BEGIN\", this.CustomParts.Vertex_MainBegin ? this.CustomParts.Vertex_MainBegin : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_POSITION\", this.CustomParts.Vertex_Before_PositionUpdated ? this.CustomParts.Vertex_Before_PositionUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_NORMAL\", this.CustomParts.Vertex_Before_NormalUpdated ? this.CustomParts.Vertex_Before_NormalUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_END\", this.CustomParts.Vertex_MainEnd ? this.CustomParts.Vertex_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Vertex_After_WorldPosComputed) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = Effect.ShadersStore[name + \"VertexShader\"].replace(\r\n \"#define CUSTOM_VERTEX_UPDATE_WORLDPOS\",\r\n this.CustomParts.Vertex_After_WorldPosComputed\r\n );\r\n }\r\n\r\n Effect.ShadersStore[name + \"PixelShader\"] = this.FragmentShader.replace(\r\n \"#define CUSTOM_FRAGMENT_BEGIN\",\r\n this.CustomParts.Fragment_Begin ? this.CustomParts.Fragment_Begin : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_BEGIN\", this.CustomParts.Fragment_MainBegin ? this.CustomParts.Fragment_MainBegin : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Fragment_Definitions ? this.CustomParts.Fragment_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\", this.CustomParts.Fragment_Custom_Diffuse ? this.CustomParts.Fragment_Custom_Diffuse : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALPHA\", this.CustomParts.Fragment_Custom_Alpha ? this.CustomParts.Fragment_Custom_Alpha : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\", this.CustomParts.Fragment_Before_Lights ? this.CustomParts.Fragment_Before_Lights : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\", this.CustomParts.Fragment_Before_FragColor ? this.CustomParts.Fragment_Before_FragColor : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_END\", this.CustomParts.Fragment_MainEnd ? this.CustomParts.Fragment_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Fragment_Before_Fog) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = Effect.ShadersStore[name + \"PixelShader\"].replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FOG\",\r\n this.CustomParts.Fragment_Before_Fog\r\n );\r\n }\r\n\r\n this._isCreatedShader = true;\r\n this._createdShaderName = name;\r\n\r\n return name;\r\n }\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.CustomParts = new ShaderSpecialParts();\r\n this.customShaderNameResolve = this.Builder;\r\n\r\n this.FragmentShader = Effect.ShadersStore[\"defaultPixelShader\"];\r\n this.VertexShader = Effect.ShadersStore[\"defaultVertexShader\"];\r\n }\r\n\r\n public AddUniform(name: string, kind: string, param: any): CustomMaterial {\r\n if (!this._customUniform) {\r\n this._customUniform = new Array();\r\n this._newUniforms = new Array();\r\n this._newSamplerInstances = {};\r\n this._newUniformInstances = {};\r\n }\r\n if (param) {\r\n if (kind.indexOf(\"sampler\") != -1) {\r\n (<any>this._newSamplerInstances)[kind + \"-\" + name] = param;\r\n } else {\r\n (<any>this._newUniformInstances)[kind + \"-\" + name] = param;\r\n }\r\n }\r\n this._customUniform.push(\"uniform \" + kind + \" \" + name + \";\");\r\n this._newUniforms.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public AddAttribute(name: string): CustomMaterial {\r\n if (!this._customAttributes) {\r\n this._customAttributes = [];\r\n }\r\n\r\n this._customAttributes.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public Fragment_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainEnd = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Diffuse(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Diffuse = shaderPart.replace(\"result\", \"diffuseColor\");\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Alpha(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace(\"result\", \"alpha\");\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Lights(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Lights = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Fog(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Fog = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FragColor(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_FragColor = shaderPart.replace(\"result\", \"color\");\r\n return this;\r\n }\r\n\r\n public Vertex_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Before_PositionUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace(\"result\", \"positionUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_Before_NormalUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace(\"result\", \"normalUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_After_WorldPosComputed(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainEnd = shaderPart;\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CustomMaterial\", CustomMaterial);\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport type { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { ShaderCodeInliner } from \"core/Engines/Processors/shaderCodeInliner\";\r\nimport type { ICustomShaderNameResolveOptions } from \"core/Materials/material\";\r\n\r\nexport class ShaderAlebdoParts {\r\n constructor() {}\r\n\r\n public Fragment_Begin: string;\r\n public Fragment_Definitions: string;\r\n public Fragment_MainBegin: string;\r\n public Fragment_MainEnd: string;\r\n\r\n // albedoColor\r\n public Fragment_Custom_Albedo: string;\r\n // lights\r\n public Fragment_Before_Lights: string;\r\n // roughness\r\n public Fragment_Custom_MetallicRoughness: string;\r\n // microsurface\r\n public Fragment_Custom_MicroSurface: string;\r\n // fog\r\n public Fragment_Before_Fog: string;\r\n // alpha\r\n public Fragment_Custom_Alpha: string;\r\n // color composition\r\n public Fragment_Before_FinalColorComposition: string;\r\n // frag color\r\n public Fragment_Before_FragColor: string;\r\n\r\n public Vertex_Begin: string;\r\n public Vertex_Definitions: string;\r\n public Vertex_MainBegin: string;\r\n\r\n // positionUpdated\r\n public Vertex_Before_PositionUpdated: string;\r\n\r\n // normalUpdated\r\n public Vertex_Before_NormalUpdated: string;\r\n\r\n // worldPosComputed\r\n public Vertex_After_WorldPosComputed: string;\r\n\r\n // mainEnd\r\n public Vertex_MainEnd: string;\r\n}\r\n\r\nexport class PBRCustomMaterial extends PBRMaterial {\r\n public static ShaderIndexer = 1;\r\n public CustomParts: ShaderAlebdoParts;\r\n _isCreatedShader: boolean;\r\n _createdShaderName: string;\r\n _customUniform: string[];\r\n _newUniforms: string[];\r\n _newUniformInstances: { [name: string]: any };\r\n _newSamplerInstances: { [name: string]: Texture };\r\n _customAttributes: string[];\r\n\r\n public FragmentShader: string;\r\n public VertexShader: string;\r\n\r\n public AttachAfterBind(mesh: Mesh | undefined, effect: Effect) {\r\n if (this._newUniformInstances) {\r\n for (const el in this._newUniformInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"vec2\") {\r\n effect.setVector2(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec3\") {\r\n effect.setVector3(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec4\") {\r\n effect.setVector4(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"mat4\") {\r\n effect.setMatrix(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"float\") {\r\n effect.setFloat(ea[1], this._newUniformInstances[el]);\r\n }\r\n }\r\n }\r\n if (this._newSamplerInstances) {\r\n for (const el in this._newSamplerInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"sampler2D\" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {\r\n effect.setTexture(ea[1], this._newSamplerInstances[el]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public ReviewUniform(name: string, arr: string[]): string[] {\r\n if (name == \"uniform\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") == -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n if (name == \"sampler\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") != -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n public Builder(\r\n shaderName: string,\r\n uniforms: string[],\r\n uniformBuffers: string[],\r\n samplers: string[],\r\n defines: MaterialDefines | string[],\r\n attributes?: string[],\r\n options?: ICustomShaderNameResolveOptions\r\n ): string {\r\n if (options) {\r\n const currentProcessing = options.processFinalCode;\r\n options.processFinalCode = (type: string, code: string) => {\r\n if (type === \"vertex\") {\r\n return currentProcessing ? currentProcessing(type, code) : code;\r\n }\r\n const sci = new ShaderCodeInliner(code);\r\n sci.inlineToken = \"#define pbr_inline\";\r\n sci.processCode();\r\n return currentProcessing ? currentProcessing(type, sci.code) : sci.code;\r\n };\r\n }\r\n\r\n if (attributes && this._customAttributes && this._customAttributes.length > 0) {\r\n attributes.push(...this._customAttributes);\r\n }\r\n\r\n this.ReviewUniform(\"uniform\", uniforms);\r\n this.ReviewUniform(\"sampler\", samplers);\r\n\r\n if (this._isCreatedShader) {\r\n return this._createdShaderName;\r\n }\r\n this._isCreatedShader = false;\r\n\r\n PBRCustomMaterial.ShaderIndexer++;\r\n const name: string = \"custom_\" + PBRCustomMaterial.ShaderIndexer;\r\n\r\n const fn_afterBind = this._afterBind.bind(this);\r\n this._afterBind = (m, e) => {\r\n if (!e) {\r\n return;\r\n }\r\n this.AttachAfterBind(m, e);\r\n try {\r\n fn_afterBind(m, e);\r\n } catch (e) {}\r\n };\r\n\r\n Effect.ShadersStore[name + \"VertexShader\"] = this.VertexShader.replace(\"#define CUSTOM_VERTEX_BEGIN\", this.CustomParts.Vertex_Begin ? this.CustomParts.Vertex_Begin : \"\")\r\n .replace(\r\n \"#define CUSTOM_VERTEX_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Vertex_Definitions ? this.CustomParts.Vertex_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_BEGIN\", this.CustomParts.Vertex_MainBegin ? this.CustomParts.Vertex_MainBegin : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_POSITION\", this.CustomParts.Vertex_Before_PositionUpdated ? this.CustomParts.Vertex_Before_PositionUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_NORMAL\", this.CustomParts.Vertex_Before_NormalUpdated ? this.CustomParts.Vertex_Before_NormalUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_END\", this.CustomParts.Vertex_MainEnd ? this.CustomParts.Vertex_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Vertex_After_WorldPosComputed) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = Effect.ShadersStore[name + \"VertexShader\"].replace(\r\n \"#define CUSTOM_VERTEX_UPDATE_WORLDPOS\",\r\n this.CustomParts.Vertex_After_WorldPosComputed\r\n );\r\n }\r\n\r\n Effect.ShadersStore[name + \"PixelShader\"] = this.FragmentShader.replace(\r\n \"#define CUSTOM_FRAGMENT_BEGIN\",\r\n this.CustomParts.Fragment_Begin ? this.CustomParts.Fragment_Begin : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_BEGIN\", this.CustomParts.Fragment_MainBegin ? this.CustomParts.Fragment_MainBegin : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Fragment_Definitions ? this.CustomParts.Fragment_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALBEDO\", this.CustomParts.Fragment_Custom_Albedo ? this.CustomParts.Fragment_Custom_Albedo : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALPHA\", this.CustomParts.Fragment_Custom_Alpha ? this.CustomParts.Fragment_Custom_Alpha : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\", this.CustomParts.Fragment_Before_Lights ? this.CustomParts.Fragment_Before_Lights : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS\",\r\n this.CustomParts.Fragment_Custom_MetallicRoughness ? this.CustomParts.Fragment_Custom_MetallicRoughness : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_MICROSURFACE\", this.CustomParts.Fragment_Custom_MicroSurface ? this.CustomParts.Fragment_Custom_MicroSurface : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\",\r\n this.CustomParts.Fragment_Before_FinalColorComposition ? this.CustomParts.Fragment_Before_FinalColorComposition : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\", this.CustomParts.Fragment_Before_FragColor ? this.CustomParts.Fragment_Before_FragColor : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_END\", this.CustomParts.Fragment_MainEnd ? this.CustomParts.Fragment_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Fragment_Before_Fog) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = Effect.ShadersStore[name + \"PixelShader\"].replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FOG\",\r\n this.CustomParts.Fragment_Before_Fog\r\n );\r\n }\r\n\r\n this._isCreatedShader = true;\r\n this._createdShaderName = name;\r\n\r\n return name;\r\n }\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.CustomParts = new ShaderAlebdoParts();\r\n this.customShaderNameResolve = this.Builder;\r\n\r\n this.FragmentShader = Effect.ShadersStore[\"pbrPixelShader\"];\r\n this.VertexShader = Effect.ShadersStore[\"pbrVertexShader\"];\r\n\r\n this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockAlbedoOpacity>/g, Effect.IncludesShadersStore[\"pbrBlockAlbedoOpacity\"]);\r\n this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockReflectivity>/g, Effect.IncludesShadersStore[\"pbrBlockReflectivity\"]);\r\n this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockFinalColorComposition>/g, Effect.IncludesShadersStore[\"pbrBlockFinalColorComposition\"]);\r\n }\r\n\r\n public AddUniform(name: string, kind: string, param: any): PBRCustomMaterial {\r\n if (!this._customUniform) {\r\n this._customUniform = new Array();\r\n this._newUniforms = new Array();\r\n this._newSamplerInstances = {};\r\n this._newUniformInstances = {};\r\n }\r\n if (param) {\r\n if (kind.indexOf(\"sampler\") != -1) {\r\n (<any>this._newSamplerInstances)[kind + \"-\" + name] = param;\r\n } else {\r\n (<any>this._newUniformInstances)[kind + \"-\" + name] = param;\r\n }\r\n }\r\n this._customUniform.push(\"uniform \" + kind + \" \" + name + \";\");\r\n this._newUniforms.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public AddAttribute(name: string): PBRCustomMaterial {\r\n if (!this._customAttributes) {\r\n this._customAttributes = [];\r\n }\r\n\r\n this._customAttributes.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public Fragment_Begin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Definitions(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainBegin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Albedo(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_Albedo = shaderPart.replace(\"result\", \"surfaceAlbedo\");\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Alpha(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace(\"result\", \"alpha\");\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Lights(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_Lights = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_MetallicRoughness(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_MetallicRoughness = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_MicroSurface(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_MicroSurface = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Fog(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_Fog = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FinalColorComposition(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_FinalColorComposition = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FragColor(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_FragColor = shaderPart.replace(\"result\", \"color\");\r\n return this;\r\n }\r\n\r\n public Fragment_MainEnd(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_MainEnd = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Begin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Definitions(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainBegin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Before_PositionUpdated(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace(\"result\", \"positionUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_Before_NormalUpdated(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace(\"result\", \"normalUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_After_WorldPosComputed(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainEnd(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_MainEnd = shaderPart;\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.PBRCustomMaterial\", PBRCustomMaterial);\r\n","/* eslint-disable import/no-internal-modules */\nimport * as MatLib from \"../custom/index\";\n/**\n * This is the entry point for the UMD module.\n * The entry point for a future ESM package should be index.ts\n */\nconst globalObject = typeof global !== \"undefined\" ? global : typeof window !== \"undefined\" ? window : undefined;\nif (typeof globalObject !== \"undefined\") {\n for (const key in MatLib) {\n (<any>globalObject).BABYLON[key] = (<any>MatLib)[key];\n }\n}\nexport * from \"../custom/index\";\n","import * as materials from \"materials/legacy/legacy-custom\";\r\nexport { materials };\r\nexport default materials;\r\n"],"names":["root","factory","exports","module","require","define","amd","self","global","this","__WEBPACK_EXTERNAL_MODULE__520__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","TypeError","String","__","constructor","create","name","scene","CustomParts","ShaderSpecialParts","customShaderNameResolve","Builder","FragmentShader","Effect","VertexShader","AttachAfterBind","mesh","effect","_newUniformInstances","el","ea","toString","split","setVector2","setVector3","setVector4","setMatrix","setFloat","_newSamplerInstances","isReady","setTexture","ReviewUniform","arr","_newUniforms","ind","length","_customUniform","indexOf","push","shaderName","uniforms","uniformBuffers","samplers","defines","attributes","_customAttributes","_isCreatedShader","_createdShaderName","CustomMaterial","ShaderIndexer","fn_afterBind","_afterBind","bind","m","replace","Vertex_Begin","join","Vertex_Definitions","Vertex_MainBegin","Vertex_Before_PositionUpdated","Vertex_Before_NormalUpdated","Vertex_MainEnd","Vertex_After_WorldPosComputed","Fragment_Begin","Fragment_MainBegin","Fragment_Definitions","Fragment_Custom_Diffuse","Fragment_Custom_Alpha","Fragment_Before_Lights","Fragment_Before_FragColor","Fragment_MainEnd","Fragment_Before_Fog","AddUniform","kind","param","AddAttribute","shaderPart","StandardMaterial","RegisterClass","ShaderAlebdoParts","options","processFinalCode","type","code","sci","ShaderCodeInliner","inlineToken","processCode","PBRCustomMaterial","Fragment_Custom_Albedo","Fragment_Custom_MetallicRoughness","Fragment_Custom_MicroSurface","Fragment_Before_FinalColorComposition","PBRMaterial","globalObject","BABYLON"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"babylon.customMaterial.min.js","mappings":"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","sources":["webpack://MATERIALS/webpack/universalModuleDefinition","webpack://MATERIALS/external umd {\"root\":\"BABYLON\",\"commonjs\":\"babylonjs\",\"commonjs2\":\"babylonjs\",\"amd\":\"babylonjs\"}","webpack://MATERIALS/webpack/bootstrap","webpack://MATERIALS/webpack/runtime/define property getters","webpack://MATERIALS/webpack/runtime/global","webpack://MATERIALS/webpack/runtime/hasOwnProperty shorthand","webpack://MATERIALS/webpack/runtime/make namespace object","webpack://MATERIALS/../../../../node_modules/tslib/tslib.es6.js","webpack://MATERIALS/../../../lts/materials/generated/custom/customMaterial.ts","webpack://MATERIALS/../../../lts/materials/generated/custom/pbrCustomMaterial.ts","webpack://MATERIALS/../../../lts/materials/generated/legacy/legacy-custom.ts","webpack://MATERIALS/./src/custom.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"babylonjs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"babylonjs-materials\", [\"babylonjs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"babylonjs-materials\"] = factory(require(\"babylonjs\"));\n\telse\n\t\troot[\"MATERIALS\"] = factory(root[\"BABYLON\"]);\n})((typeof self !== \"undefined\" ? self : typeof global !== \"undefined\" ? global : this), (__WEBPACK_EXTERNAL_MODULE__520__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__520__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport type { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { StandardMaterial } from \"core/Materials/standardMaterial\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\n\r\nexport class CustomShaderStructure {\r\n public FragmentStore: string;\r\n public VertexStore: string;\r\n\r\n constructor() {}\r\n}\r\n\r\nexport class ShaderSpecialParts {\r\n constructor() {}\r\n\r\n public Fragment_Begin: string;\r\n public Fragment_Definitions: string;\r\n public Fragment_MainBegin: string;\r\n public Fragment_MainEnd: string;\r\n\r\n // diffuseColor\r\n public Fragment_Custom_Diffuse: string;\r\n // lights\r\n public Fragment_Before_Lights: string;\r\n // fog\r\n public Fragment_Before_Fog: string;\r\n // alpha\r\n public Fragment_Custom_Alpha: string;\r\n\r\n public Fragment_Before_FragColor: string;\r\n\r\n public Vertex_Begin: string;\r\n public Vertex_Definitions: string;\r\n public Vertex_MainBegin: string;\r\n\r\n // positionUpdated\r\n public Vertex_Before_PositionUpdated: string;\r\n\r\n // normalUpdated\r\n public Vertex_Before_NormalUpdated: string;\r\n\r\n // worldPosComputed\r\n public Vertex_After_WorldPosComputed: string;\r\n\r\n // mainEnd\r\n public Vertex_MainEnd: string;\r\n}\r\n\r\nexport class CustomMaterial extends StandardMaterial {\r\n public static ShaderIndexer = 1;\r\n public CustomParts: ShaderSpecialParts;\r\n _isCreatedShader: boolean;\r\n _createdShaderName: string;\r\n _customUniform: string[];\r\n _newUniforms: string[];\r\n _newUniformInstances: { [name: string]: any };\r\n _newSamplerInstances: { [name: string]: Texture };\r\n _customAttributes: string[];\r\n\r\n public FragmentShader: string;\r\n public VertexShader: string;\r\n\r\n public AttachAfterBind(mesh: Mesh | undefined, effect: Effect) {\r\n if (this._newUniformInstances) {\r\n for (const el in this._newUniformInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"vec2\") {\r\n effect.setVector2(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec3\") {\r\n effect.setVector3(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec4\") {\r\n effect.setVector4(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"mat4\") {\r\n effect.setMatrix(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"float\") {\r\n effect.setFloat(ea[1], this._newUniformInstances[el]);\r\n }\r\n }\r\n }\r\n if (this._newSamplerInstances) {\r\n for (const el in this._newSamplerInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"sampler2D\" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {\r\n effect.setTexture(ea[1], this._newSamplerInstances[el]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public ReviewUniform(name: string, arr: string[]): string[] {\r\n if (name == \"uniform\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") == -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n if (name == \"sampler\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") != -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n public Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: MaterialDefines | string[], attributes?: string[]): string {\r\n if (attributes && this._customAttributes && this._customAttributes.length > 0) {\r\n attributes.push(...this._customAttributes);\r\n }\r\n\r\n this.ReviewUniform(\"uniform\", uniforms);\r\n this.ReviewUniform(\"sampler\", samplers);\r\n\r\n if (this._isCreatedShader) {\r\n return this._createdShaderName;\r\n }\r\n this._isCreatedShader = false;\r\n\r\n CustomMaterial.ShaderIndexer++;\r\n const name: string = \"custom_\" + CustomMaterial.ShaderIndexer;\r\n\r\n const fn_afterBind = this._afterBind.bind(this);\r\n this._afterBind = (m, e) => {\r\n if (!e) {\r\n return;\r\n }\r\n this.AttachAfterBind(m, e);\r\n try {\r\n fn_afterBind(m, e);\r\n } catch (e) {}\r\n };\r\n\r\n Effect.ShadersStore[name + \"VertexShader\"] = this.VertexShader.replace(\"#define CUSTOM_VERTEX_BEGIN\", this.CustomParts.Vertex_Begin ? this.CustomParts.Vertex_Begin : \"\")\r\n .replace(\r\n \"#define CUSTOM_VERTEX_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Vertex_Definitions ? this.CustomParts.Vertex_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_BEGIN\", this.CustomParts.Vertex_MainBegin ? this.CustomParts.Vertex_MainBegin : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_POSITION\", this.CustomParts.Vertex_Before_PositionUpdated ? this.CustomParts.Vertex_Before_PositionUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_NORMAL\", this.CustomParts.Vertex_Before_NormalUpdated ? this.CustomParts.Vertex_Before_NormalUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_END\", this.CustomParts.Vertex_MainEnd ? this.CustomParts.Vertex_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Vertex_After_WorldPosComputed) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = Effect.ShadersStore[name + \"VertexShader\"].replace(\r\n \"#define CUSTOM_VERTEX_UPDATE_WORLDPOS\",\r\n this.CustomParts.Vertex_After_WorldPosComputed\r\n );\r\n }\r\n\r\n Effect.ShadersStore[name + \"PixelShader\"] = this.FragmentShader.replace(\r\n \"#define CUSTOM_FRAGMENT_BEGIN\",\r\n this.CustomParts.Fragment_Begin ? this.CustomParts.Fragment_Begin : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_BEGIN\", this.CustomParts.Fragment_MainBegin ? this.CustomParts.Fragment_MainBegin : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Fragment_Definitions ? this.CustomParts.Fragment_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\", this.CustomParts.Fragment_Custom_Diffuse ? this.CustomParts.Fragment_Custom_Diffuse : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALPHA\", this.CustomParts.Fragment_Custom_Alpha ? this.CustomParts.Fragment_Custom_Alpha : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\", this.CustomParts.Fragment_Before_Lights ? this.CustomParts.Fragment_Before_Lights : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\", this.CustomParts.Fragment_Before_FragColor ? this.CustomParts.Fragment_Before_FragColor : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_END\", this.CustomParts.Fragment_MainEnd ? this.CustomParts.Fragment_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Fragment_Before_Fog) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = Effect.ShadersStore[name + \"PixelShader\"].replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FOG\",\r\n this.CustomParts.Fragment_Before_Fog\r\n );\r\n }\r\n\r\n this._isCreatedShader = true;\r\n this._createdShaderName = name;\r\n\r\n return name;\r\n }\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.CustomParts = new ShaderSpecialParts();\r\n this.customShaderNameResolve = this.Builder;\r\n\r\n this.FragmentShader = Effect.ShadersStore[\"defaultPixelShader\"];\r\n this.VertexShader = Effect.ShadersStore[\"defaultVertexShader\"];\r\n }\r\n\r\n public AddUniform(name: string, kind: string, param: any): CustomMaterial {\r\n if (!this._customUniform) {\r\n this._customUniform = new Array();\r\n this._newUniforms = new Array();\r\n this._newSamplerInstances = {};\r\n this._newUniformInstances = {};\r\n }\r\n if (param) {\r\n if (kind.indexOf(\"sampler\") != -1) {\r\n (<any>this._newSamplerInstances)[kind + \"-\" + name] = param;\r\n } else {\r\n (<any>this._newUniformInstances)[kind + \"-\" + name] = param;\r\n }\r\n }\r\n this._customUniform.push(\"uniform \" + kind + \" \" + name + \";\");\r\n this._newUniforms.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public AddAttribute(name: string): CustomMaterial {\r\n if (!this._customAttributes) {\r\n this._customAttributes = [];\r\n }\r\n\r\n this._customAttributes.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public Fragment_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_MainEnd = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Diffuse(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Diffuse = shaderPart.replace(\"result\", \"diffuseColor\");\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Alpha(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace(\"result\", \"alpha\");\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Lights(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Lights = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Fog(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_Fog = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FragColor(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Fragment_Before_FragColor = shaderPart.replace(\"result\", \"color\");\r\n return this;\r\n }\r\n\r\n public Vertex_Begin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Definitions(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainBegin(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Before_PositionUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace(\"result\", \"positionUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_Before_NormalUpdated(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace(\"result\", \"normalUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_After_WorldPosComputed(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainEnd(shaderPart: string): CustomMaterial {\r\n this.CustomParts.Vertex_MainEnd = shaderPart;\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CustomMaterial\", CustomMaterial);\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport type { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { ShaderCodeInliner } from \"core/Engines/Processors/shaderCodeInliner\";\r\nimport type { ICustomShaderNameResolveOptions } from \"core/Materials/material\";\r\n\r\nexport class ShaderAlebdoParts {\r\n constructor() {}\r\n\r\n public Fragment_Begin: string;\r\n public Fragment_Definitions: string;\r\n public Fragment_MainBegin: string;\r\n public Fragment_MainEnd: string;\r\n\r\n // albedoColor\r\n public Fragment_Custom_Albedo: string;\r\n // lights\r\n public Fragment_Before_Lights: string;\r\n // roughness\r\n public Fragment_Custom_MetallicRoughness: string;\r\n // microsurface\r\n public Fragment_Custom_MicroSurface: string;\r\n // fog\r\n public Fragment_Before_Fog: string;\r\n // alpha\r\n public Fragment_Custom_Alpha: string;\r\n // color composition\r\n public Fragment_Before_FinalColorComposition: string;\r\n // frag color\r\n public Fragment_Before_FragColor: string;\r\n\r\n public Vertex_Begin: string;\r\n public Vertex_Definitions: string;\r\n public Vertex_MainBegin: string;\r\n\r\n // positionUpdated\r\n public Vertex_Before_PositionUpdated: string;\r\n\r\n // normalUpdated\r\n public Vertex_Before_NormalUpdated: string;\r\n\r\n // worldPosComputed\r\n public Vertex_After_WorldPosComputed: string;\r\n\r\n // mainEnd\r\n public Vertex_MainEnd: string;\r\n}\r\n\r\nexport class PBRCustomMaterial extends PBRMaterial {\r\n public static ShaderIndexer = 1;\r\n public CustomParts: ShaderAlebdoParts;\r\n _isCreatedShader: boolean;\r\n _createdShaderName: string;\r\n _customUniform: string[];\r\n _newUniforms: string[];\r\n _newUniformInstances: { [name: string]: any };\r\n _newSamplerInstances: { [name: string]: Texture };\r\n _customAttributes: string[];\r\n\r\n public FragmentShader: string;\r\n public VertexShader: string;\r\n\r\n public AttachAfterBind(mesh: Mesh | undefined, effect: Effect) {\r\n if (this._newUniformInstances) {\r\n for (const el in this._newUniformInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"vec2\") {\r\n effect.setVector2(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec3\") {\r\n effect.setVector3(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"vec4\") {\r\n effect.setVector4(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"mat4\") {\r\n effect.setMatrix(ea[1], this._newUniformInstances[el]);\r\n } else if (ea[0] == \"float\") {\r\n effect.setFloat(ea[1], this._newUniformInstances[el]);\r\n }\r\n }\r\n }\r\n if (this._newSamplerInstances) {\r\n for (const el in this._newSamplerInstances) {\r\n const ea = el.toString().split(\"-\");\r\n if (ea[0] == \"sampler2D\" && this._newSamplerInstances[el].isReady && this._newSamplerInstances[el].isReady()) {\r\n effect.setTexture(ea[1], this._newSamplerInstances[el]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public ReviewUniform(name: string, arr: string[]): string[] {\r\n if (name == \"uniform\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") == -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n if (name == \"sampler\" && this._newUniforms) {\r\n for (let ind = 0; ind < this._newUniforms.length; ind++) {\r\n if (this._customUniform[ind].indexOf(\"sampler\") != -1) {\r\n arr.push(this._newUniforms[ind]);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n public Builder(\r\n shaderName: string,\r\n uniforms: string[],\r\n uniformBuffers: string[],\r\n samplers: string[],\r\n defines: MaterialDefines | string[],\r\n attributes?: string[],\r\n options?: ICustomShaderNameResolveOptions\r\n ): string {\r\n if (options) {\r\n const currentProcessing = options.processFinalCode;\r\n options.processFinalCode = (type: string, code: string) => {\r\n if (type === \"vertex\") {\r\n return currentProcessing ? currentProcessing(type, code) : code;\r\n }\r\n const sci = new ShaderCodeInliner(code);\r\n sci.inlineToken = \"#define pbr_inline\";\r\n sci.processCode();\r\n return currentProcessing ? currentProcessing(type, sci.code) : sci.code;\r\n };\r\n }\r\n\r\n if (attributes && this._customAttributes && this._customAttributes.length > 0) {\r\n attributes.push(...this._customAttributes);\r\n }\r\n\r\n this.ReviewUniform(\"uniform\", uniforms);\r\n this.ReviewUniform(\"sampler\", samplers);\r\n\r\n if (this._isCreatedShader) {\r\n return this._createdShaderName;\r\n }\r\n this._isCreatedShader = false;\r\n\r\n PBRCustomMaterial.ShaderIndexer++;\r\n const name: string = \"custom_\" + PBRCustomMaterial.ShaderIndexer;\r\n\r\n const fn_afterBind = this._afterBind.bind(this);\r\n this._afterBind = (m, e) => {\r\n if (!e) {\r\n return;\r\n }\r\n this.AttachAfterBind(m, e);\r\n try {\r\n fn_afterBind(m, e);\r\n } catch (e) {}\r\n };\r\n\r\n Effect.ShadersStore[name + \"VertexShader\"] = this.VertexShader.replace(\"#define CUSTOM_VERTEX_BEGIN\", this.CustomParts.Vertex_Begin ? this.CustomParts.Vertex_Begin : \"\")\r\n .replace(\r\n \"#define CUSTOM_VERTEX_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Vertex_Definitions ? this.CustomParts.Vertex_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_BEGIN\", this.CustomParts.Vertex_MainBegin ? this.CustomParts.Vertex_MainBegin : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_POSITION\", this.CustomParts.Vertex_Before_PositionUpdated ? this.CustomParts.Vertex_Before_PositionUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_UPDATE_NORMAL\", this.CustomParts.Vertex_Before_NormalUpdated ? this.CustomParts.Vertex_Before_NormalUpdated : \"\")\r\n .replace(\"#define CUSTOM_VERTEX_MAIN_END\", this.CustomParts.Vertex_MainEnd ? this.CustomParts.Vertex_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Vertex_After_WorldPosComputed) {\r\n Effect.ShadersStore[name + \"VertexShader\"] = Effect.ShadersStore[name + \"VertexShader\"].replace(\r\n \"#define CUSTOM_VERTEX_UPDATE_WORLDPOS\",\r\n this.CustomParts.Vertex_After_WorldPosComputed\r\n );\r\n }\r\n\r\n Effect.ShadersStore[name + \"PixelShader\"] = this.FragmentShader.replace(\r\n \"#define CUSTOM_FRAGMENT_BEGIN\",\r\n this.CustomParts.Fragment_Begin ? this.CustomParts.Fragment_Begin : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_BEGIN\", this.CustomParts.Fragment_MainBegin ? this.CustomParts.Fragment_MainBegin : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_DEFINITIONS\",\r\n (this._customUniform ? this._customUniform.join(\"\\n\") : \"\") + (this.CustomParts.Fragment_Definitions ? this.CustomParts.Fragment_Definitions : \"\")\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALBEDO\", this.CustomParts.Fragment_Custom_Albedo ? this.CustomParts.Fragment_Custom_Albedo : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_ALPHA\", this.CustomParts.Fragment_Custom_Alpha ? this.CustomParts.Fragment_Custom_Alpha : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\", this.CustomParts.Fragment_Before_Lights ? this.CustomParts.Fragment_Before_Lights : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS\",\r\n this.CustomParts.Fragment_Custom_MetallicRoughness ? this.CustomParts.Fragment_Custom_MetallicRoughness : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_UPDATE_MICROSURFACE\", this.CustomParts.Fragment_Custom_MicroSurface ? this.CustomParts.Fragment_Custom_MicroSurface : \"\")\r\n .replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\",\r\n this.CustomParts.Fragment_Before_FinalColorComposition ? this.CustomParts.Fragment_Before_FinalColorComposition : \"\"\r\n )\r\n .replace(\"#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\", this.CustomParts.Fragment_Before_FragColor ? this.CustomParts.Fragment_Before_FragColor : \"\")\r\n .replace(\"#define CUSTOM_FRAGMENT_MAIN_END\", this.CustomParts.Fragment_MainEnd ? this.CustomParts.Fragment_MainEnd : \"\");\r\n\r\n if (this.CustomParts.Fragment_Before_Fog) {\r\n Effect.ShadersStore[name + \"PixelShader\"] = Effect.ShadersStore[name + \"PixelShader\"].replace(\r\n \"#define CUSTOM_FRAGMENT_BEFORE_FOG\",\r\n this.CustomParts.Fragment_Before_Fog\r\n );\r\n }\r\n\r\n this._isCreatedShader = true;\r\n this._createdShaderName = name;\r\n\r\n return name;\r\n }\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n this.CustomParts = new ShaderAlebdoParts();\r\n this.customShaderNameResolve = this.Builder;\r\n\r\n this.FragmentShader = Effect.ShadersStore[\"pbrPixelShader\"];\r\n this.VertexShader = Effect.ShadersStore[\"pbrVertexShader\"];\r\n\r\n this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockAlbedoOpacity>/g, Effect.IncludesShadersStore[\"pbrBlockAlbedoOpacity\"]);\r\n this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockReflectivity>/g, Effect.IncludesShadersStore[\"pbrBlockReflectivity\"]);\r\n this.FragmentShader = this.FragmentShader.replace(/#include<pbrBlockFinalColorComposition>/g, Effect.IncludesShadersStore[\"pbrBlockFinalColorComposition\"]);\r\n }\r\n\r\n public AddUniform(name: string, kind: string, param: any): PBRCustomMaterial {\r\n if (!this._customUniform) {\r\n this._customUniform = new Array();\r\n this._newUniforms = new Array();\r\n this._newSamplerInstances = {};\r\n this._newUniformInstances = {};\r\n }\r\n if (param) {\r\n if (kind.indexOf(\"sampler\") != -1) {\r\n (<any>this._newSamplerInstances)[kind + \"-\" + name] = param;\r\n } else {\r\n (<any>this._newUniformInstances)[kind + \"-\" + name] = param;\r\n }\r\n }\r\n this._customUniform.push(\"uniform \" + kind + \" \" + name + \";\");\r\n this._newUniforms.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public AddAttribute(name: string): PBRCustomMaterial {\r\n if (!this._customAttributes) {\r\n this._customAttributes = [];\r\n }\r\n\r\n this._customAttributes.push(name);\r\n\r\n return this;\r\n }\r\n\r\n public Fragment_Begin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Definitions(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_MainBegin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Albedo(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_Albedo = shaderPart.replace(\"result\", \"surfaceAlbedo\");\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_Alpha(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_Alpha = shaderPart.replace(\"result\", \"alpha\");\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Lights(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_Lights = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_MetallicRoughness(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_MetallicRoughness = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Custom_MicroSurface(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Custom_MicroSurface = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_Fog(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_Fog = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FinalColorComposition(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_FinalColorComposition = shaderPart;\r\n return this;\r\n }\r\n\r\n public Fragment_Before_FragColor(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_Before_FragColor = shaderPart.replace(\"result\", \"color\");\r\n return this;\r\n }\r\n\r\n public Fragment_MainEnd(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Fragment_MainEnd = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Begin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Begin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Definitions(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Definitions = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainBegin(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_MainBegin = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_Before_PositionUpdated(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Before_PositionUpdated = shaderPart.replace(\"result\", \"positionUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_Before_NormalUpdated(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_Before_NormalUpdated = shaderPart.replace(\"result\", \"normalUpdated\");\r\n return this;\r\n }\r\n\r\n public Vertex_After_WorldPosComputed(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_After_WorldPosComputed = shaderPart;\r\n return this;\r\n }\r\n\r\n public Vertex_MainEnd(shaderPart: string): PBRCustomMaterial {\r\n this.CustomParts.Vertex_MainEnd = shaderPart;\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.PBRCustomMaterial\", PBRCustomMaterial);\r\n","/* eslint-disable import/no-internal-modules */\nimport * as MatLib from \"../custom/index\";\n/**\n * This is the entry point for the UMD module.\n * The entry point for a future ESM package should be index.ts\n */\nconst globalObject = typeof global !== \"undefined\" ? global : typeof window !== \"undefined\" ? window : undefined;\nif (typeof globalObject !== \"undefined\") {\n for (const key in MatLib) {\n (<any>globalObject).BABYLON[key] = (<any>MatLib)[key];\n }\n}\nexport * from \"../custom/index\";\n","import * as materials from \"materials/legacy/legacy-custom\";\r\nexport { materials };\r\nexport default materials;\r\n"],"names":["root","factory","exports","module","require","define","amd","self","global","this","__WEBPACK_EXTERNAL_MODULE__520__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","TypeError","String","__","constructor","create","name","scene","CustomParts","ShaderSpecialParts","customShaderNameResolve","Builder","FragmentShader","Effect","VertexShader","AttachAfterBind","mesh","effect","_newUniformInstances","el","ea","toString","split","setVector2","setVector3","setVector4","setMatrix","setFloat","_newSamplerInstances","isReady","setTexture","ReviewUniform","arr","_newUniforms","ind","length","_customUniform","indexOf","push","shaderName","uniforms","uniformBuffers","samplers","defines","attributes","_customAttributes","_isCreatedShader","_createdShaderName","CustomMaterial","ShaderIndexer","fn_afterBind","_afterBind","bind","m","replace","Vertex_Begin","join","Vertex_Definitions","Vertex_MainBegin","Vertex_Before_PositionUpdated","Vertex_Before_NormalUpdated","Vertex_MainEnd","Vertex_After_WorldPosComputed","Fragment_Begin","Fragment_MainBegin","Fragment_Definitions","Fragment_Custom_Diffuse","Fragment_Custom_Alpha","Fragment_Before_Lights","Fragment_Before_FragColor","Fragment_MainEnd","Fragment_Before_Fog","AddUniform","kind","param","AddAttribute","shaderPart","StandardMaterial","RegisterClass","ShaderAlebdoParts","options","processFinalCode","type","code","sci","ShaderCodeInliner","inlineToken","processCode","PBRCustomMaterial","Fragment_Custom_Albedo","Fragment_Custom_MetallicRoughness","Fragment_Custom_MicroSurface","Fragment_Before_FinalColorComposition","PBRMaterial","globalObject","BABYLON"],"sourceRoot":""}
|