@onerjs/materials 8.23.1
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/cell/cell.fragment.d.ts +19 -0
- package/cell/cell.fragment.js +100 -0
- package/cell/cell.fragment.js.map +1 -0
- package/cell/cell.vertex.d.ts +21 -0
- package/cell/cell.vertex.js +96 -0
- package/cell/cell.vertex.js.map +1 -0
- package/cell/cellMaterial.d.ts +37 -0
- package/cell/cellMaterial.js +312 -0
- package/cell/cellMaterial.js.map +1 -0
- package/cell/index.d.ts +1 -0
- package/cell/index.js +2 -0
- package/cell/index.js.map +1 -0
- package/custom/customMaterial.d.ts +280 -0
- package/custom/customMaterial.js +355 -0
- package/custom/customMaterial.js.map +1 -0
- package/custom/index.d.ts +2 -0
- package/custom/index.js +3 -0
- package/custom/index.js.map +1 -0
- package/custom/pbrCustomMaterial.d.ts +299 -0
- package/custom/pbrCustomMaterial.js +397 -0
- package/custom/pbrCustomMaterial.js.map +1 -0
- package/fire/fire.fragment.d.ts +13 -0
- package/fire/fire.fragment.js +65 -0
- package/fire/fire.fragment.js.map +1 -0
- package/fire/fire.vertex.d.ts +18 -0
- package/fire/fire.vertex.js +80 -0
- package/fire/fire.vertex.js.map +1 -0
- package/fire/fireMaterial.d.ts +38 -0
- package/fire/fireMaterial.js +342 -0
- package/fire/fireMaterial.js.map +1 -0
- package/fire/index.d.ts +1 -0
- package/fire/index.js +2 -0
- package/fire/index.js.map +1 -0
- package/fur/fur.fragment.d.ts +19 -0
- package/fur/fur.fragment.js +94 -0
- package/fur/fur.fragment.js.map +1 -0
- package/fur/fur.vertex.d.ts +21 -0
- package/fur/fur.vertex.js +126 -0
- package/fur/fur.vertex.js.map +1 -0
- package/fur/furMaterial.d.ts +57 -0
- package/fur/furMaterial.js +505 -0
- package/fur/furMaterial.js.map +1 -0
- package/fur/index.d.ts +1 -0
- package/fur/index.js +2 -0
- package/fur/index.js.map +1 -0
- package/gradient/gradient.fragment.d.ts +19 -0
- package/gradient/gradient.fragment.js +80 -0
- package/gradient/gradient.fragment.js.map +1 -0
- package/gradient/gradient.vertex.d.ts +21 -0
- package/gradient/gradient.vertex.js +87 -0
- package/gradient/gradient.vertex.js.map +1 -0
- package/gradient/gradientMaterial.d.ts +37 -0
- package/gradient/gradientMaterial.js +283 -0
- package/gradient/gradientMaterial.js.map +1 -0
- package/gradient/index.d.ts +1 -0
- package/gradient/index.js +2 -0
- package/gradient/index.js.map +1 -0
- package/grid/grid.fragment.d.ts +12 -0
- package/grid/grid.fragment.js +79 -0
- package/grid/grid.fragment.js.map +1 -0
- package/grid/grid.vertex.d.ts +15 -0
- package/grid/grid.vertex.js +60 -0
- package/grid/grid.vertex.js.map +1 -0
- package/grid/gridMaterial.d.ts +85 -0
- package/grid/gridMaterial.js +308 -0
- package/grid/gridMaterial.js.map +1 -0
- package/grid/index.d.ts +1 -0
- package/grid/index.js +2 -0
- package/grid/index.js.map +1 -0
- package/index.d.ts +15 -0
- package/index.js +17 -0
- package/index.js.map +1 -0
- package/lava/index.d.ts +1 -0
- package/lava/index.js +2 -0
- package/lava/index.js.map +1 -0
- package/lava/lava.fragment.d.ts +19 -0
- package/lava/lava.fragment.js +89 -0
- package/lava/lava.fragment.js.map +1 -0
- package/lava/lava.vertex.d.ts +21 -0
- package/lava/lava.vertex.js +113 -0
- package/lava/lava.vertex.js.map +1 -0
- package/lava/lavaMaterial.d.ts +45 -0
- package/lava/lavaMaterial.js +402 -0
- package/lava/lavaMaterial.js.map +1 -0
- package/legacy/legacy-cell.d.ts +1 -0
- package/legacy/legacy-cell.js +14 -0
- package/legacy/legacy-cell.js.map +1 -0
- package/legacy/legacy-custom.d.ts +1 -0
- package/legacy/legacy-custom.js +14 -0
- package/legacy/legacy-custom.js.map +1 -0
- package/legacy/legacy-fire.d.ts +1 -0
- package/legacy/legacy-fire.js +14 -0
- package/legacy/legacy-fire.js.map +1 -0
- package/legacy/legacy-fur.d.ts +1 -0
- package/legacy/legacy-fur.js +14 -0
- package/legacy/legacy-fur.js.map +1 -0
- package/legacy/legacy-gradient.d.ts +1 -0
- package/legacy/legacy-gradient.js +14 -0
- package/legacy/legacy-gradient.js.map +1 -0
- package/legacy/legacy-grid.d.ts +1 -0
- package/legacy/legacy-grid.js +14 -0
- package/legacy/legacy-grid.js.map +1 -0
- package/legacy/legacy-lava.d.ts +1 -0
- package/legacy/legacy-lava.js +14 -0
- package/legacy/legacy-lava.js.map +1 -0
- package/legacy/legacy-mix.d.ts +1 -0
- package/legacy/legacy-mix.js +14 -0
- package/legacy/legacy-mix.js.map +1 -0
- package/legacy/legacy-normal.d.ts +1 -0
- package/legacy/legacy-normal.js +14 -0
- package/legacy/legacy-normal.js.map +1 -0
- package/legacy/legacy-shadowOnly.d.ts +1 -0
- package/legacy/legacy-shadowOnly.js +14 -0
- package/legacy/legacy-shadowOnly.js.map +1 -0
- package/legacy/legacy-simple.d.ts +1 -0
- package/legacy/legacy-simple.js +14 -0
- package/legacy/legacy-simple.js.map +1 -0
- package/legacy/legacy-sky.d.ts +1 -0
- package/legacy/legacy-sky.js +14 -0
- package/legacy/legacy-sky.js.map +1 -0
- package/legacy/legacy-terrain.d.ts +1 -0
- package/legacy/legacy-terrain.js +14 -0
- package/legacy/legacy-terrain.js.map +1 -0
- package/legacy/legacy-triPlanar.d.ts +1 -0
- package/legacy/legacy-triPlanar.js +14 -0
- package/legacy/legacy-triPlanar.js.map +1 -0
- package/legacy/legacy-water.d.ts +1 -0
- package/legacy/legacy-water.js +14 -0
- package/legacy/legacy-water.js.map +1 -0
- package/legacy/legacy.d.ts +1 -0
- package/legacy/legacy.js +17 -0
- package/legacy/legacy.js.map +1 -0
- package/license.md +71 -0
- package/mix/index.d.ts +1 -0
- package/mix/index.js +2 -0
- package/mix/index.js.map +1 -0
- package/mix/mix.fragment.d.ts +19 -0
- package/mix/mix.fragment.js +106 -0
- package/mix/mix.fragment.js.map +1 -0
- package/mix/mix.vertex.d.ts +21 -0
- package/mix/mix.vertex.js +96 -0
- package/mix/mix.vertex.js.map +1 -0
- package/mix/mixMaterial.d.ts +65 -0
- package/mix/mixMaterial.js +508 -0
- package/mix/mixMaterial.js.map +1 -0
- package/normal/index.d.ts +1 -0
- package/normal/index.js +2 -0
- package/normal/index.js.map +1 -0
- package/normal/normal.fragment.d.ts +19 -0
- package/normal/normal.fragment.js +85 -0
- package/normal/normal.fragment.js.map +1 -0
- package/normal/normal.vertex.d.ts +20 -0
- package/normal/normal.vertex.js +88 -0
- package/normal/normal.vertex.js.map +1 -0
- package/normal/normalMaterial.d.ts +36 -0
- package/normal/normalMaterial.js +345 -0
- package/normal/normalMaterial.js.map +1 -0
- package/package.json +47 -0
- package/readme.md +30 -0
- package/shadowOnly/index.d.ts +1 -0
- package/shadowOnly/index.js +2 -0
- package/shadowOnly/index.js.map +1 -0
- package/shadowOnly/shadowOnly.fragment.d.ts +20 -0
- package/shadowOnly/shadowOnly.fragment.js +60 -0
- package/shadowOnly/shadowOnly.fragment.js.map +1 -0
- package/shadowOnly/shadowOnly.vertex.d.ts +22 -0
- package/shadowOnly/shadowOnly.vertex.js +69 -0
- package/shadowOnly/shadowOnly.vertex.js.map +1 -0
- package/shadowOnly/shadowOnlyMaterial.d.ts +30 -0
- package/shadowOnly/shadowOnlyMaterial.js +243 -0
- package/shadowOnly/shadowOnlyMaterial.js.map +1 -0
- package/simple/index.d.ts +1 -0
- package/simple/index.js +2 -0
- package/simple/index.js.map +1 -0
- package/simple/simple.fragment.d.ts +19 -0
- package/simple/simple.fragment.js +81 -0
- package/simple/simple.fragment.js.map +1 -0
- package/simple/simple.vertex.d.ts +21 -0
- package/simple/simple.vertex.js +96 -0
- package/simple/simple.vertex.js.map +1 -0
- package/simple/simpleMaterial.d.ts +35 -0
- package/simple/simpleMaterial.js +303 -0
- package/simple/simpleMaterial.js.map +1 -0
- package/sky/index.d.ts +1 -0
- package/sky/index.js +2 -0
- package/sky/index.js.map +1 -0
- package/sky/sky.fragment.d.ts +13 -0
- package/sky/sky.fragment.js +81 -0
- package/sky/sky.fragment.js.map +1 -0
- package/sky/sky.vertex.d.ts +11 -0
- package/sky/sky.vertex.js +47 -0
- package/sky/sky.vertex.js.map +1 -0
- package/sky/skyMaterial.d.ts +151 -0
- package/sky/skyMaterial.js +367 -0
- package/sky/skyMaterial.js.map +1 -0
- package/terrain/index.d.ts +1 -0
- package/terrain/index.js +2 -0
- package/terrain/index.js.map +1 -0
- package/terrain/terrain.fragment.d.ts +19 -0
- package/terrain/terrain.fragment.js +110 -0
- package/terrain/terrain.fragment.js.map +1 -0
- package/terrain/terrain.vertex.d.ts +21 -0
- package/terrain/terrain.vertex.js +96 -0
- package/terrain/terrain.vertex.js.map +1 -0
- package/terrain/terrainMaterial.d.ts +50 -0
- package/terrain/terrainMaterial.js +445 -0
- package/terrain/terrainMaterial.js.map +1 -0
- package/triPlanar/index.d.ts +1 -0
- package/triPlanar/index.js +2 -0
- package/triPlanar/index.js.map +1 -0
- package/triPlanar/triPlanarMaterial.d.ts +49 -0
- package/triPlanar/triPlanarMaterial.js +421 -0
- package/triPlanar/triPlanarMaterial.js.map +1 -0
- package/triPlanar/triplanar.fragment.d.ts +19 -0
- package/triPlanar/triplanar.fragment.js +126 -0
- package/triPlanar/triplanar.fragment.js.map +1 -0
- package/triPlanar/triplanar.vertex.d.ts +22 -0
- package/triPlanar/triplanar.vertex.js +101 -0
- package/triPlanar/triplanar.vertex.js.map +1 -0
- package/water/index.d.ts +1 -0
- package/water/index.js +2 -0
- package/water/index.js.map +1 -0
- package/water/water.fragment.d.ts +19 -0
- package/water/water.fragment.js +160 -0
- package/water/water.fragment.js.map +1 -0
- package/water/water.vertex.d.ts +21 -0
- package/water/water.vertex.js +125 -0
- package/water/water.vertex.js.map +1 -0
- package/water/waterMaterial.d.ts +141 -0
- package/water/waterMaterial.js +729 -0
- package/water/waterMaterial.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadowOnlyMaterial.js","sourceRoot":"","sources":["../../../../dev/materials/src/shadowOnly/shadowOnlyMaterial.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { Nullable } from \"core/types\";\r\nimport { SerializationHelper } from \"core/Misc/decorators.serialization\";\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 { IShadowLight } from \"core/Lights/shadowLight\";\r\nimport type { IEffectCreationOptions } from \"core/Materials/effect\";\r\nimport { MaterialDefines } from \"core/Materials/materialDefines\";\r\nimport { PushMaterial } from \"core/Materials/pushMaterial\";\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\n\r\nimport \"./shadowOnly.fragment\";\r\nimport \"./shadowOnly.vertex\";\r\nimport { EffectFallbacks } from \"core/Materials/effectFallbacks\";\r\nimport type { CascadedShadowGenerator } from \"core/Lights/Shadows/cascadedShadowGenerator\";\r\nimport { AddClipPlaneUniforms, BindClipPlane } from \"core/Materials/clipPlaneMaterialHelper\";\r\nimport {\r\n BindBonesParameters,\r\n BindFogParameters,\r\n BindLights,\r\n BindLogDepth,\r\n HandleFallbacksForShadows,\r\n PrepareAttributesForBones,\r\n PrepareAttributesForInstances,\r\n PrepareDefinesForAttributes,\r\n PrepareDefinesForFrameBoundValues,\r\n PrepareDefinesForLights,\r\n PrepareDefinesForMisc,\r\n PrepareUniformsAndSamplersList,\r\n} from \"core/Materials/materialHelper.functions\";\r\n\r\nclass ShadowOnlyMaterialDefines extends MaterialDefines {\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 POINTSIZE = false;\r\n public FOG = false;\r\n public NORMAL = false;\r\n public NUM_BONE_INFLUENCERS = 0;\r\n public BonesPerMesh = 0;\r\n public INSTANCES = false;\r\n public IMAGEPROCESSINGPOSTPROCESS = false;\r\n public SKIPFINALCOLORCLAMP = false;\r\n public LOGARITHMICDEPTH = false;\r\n\r\n constructor() {\r\n super();\r\n this.rebuild();\r\n }\r\n}\r\n\r\nexport class ShadowOnlyMaterial extends PushMaterial {\r\n private _activeLight: IShadowLight;\r\n private _needAlphaBlending = true;\r\n\r\n constructor(name: string, scene?: Scene) {\r\n super(name, scene);\r\n }\r\n\r\n public shadowColor = Color3.Black();\r\n\r\n public override needAlphaBlending(): boolean {\r\n return this._needAlphaBlending;\r\n }\r\n\r\n public override needAlphaTesting(): boolean {\r\n return false;\r\n }\r\n\r\n public override getAlphaTestTexture(): Nullable<BaseTexture> {\r\n return null;\r\n }\r\n\r\n public get activeLight(): IShadowLight {\r\n return this._activeLight;\r\n }\r\n\r\n public set activeLight(light: IShadowLight) {\r\n this._activeLight = light;\r\n }\r\n\r\n private _getFirstShadowLightForMesh(mesh: AbstractMesh): Nullable<IShadowLight> {\r\n for (const light of mesh.lightSources) {\r\n if (light.shadowEnabled) {\r\n return light as IShadowLight;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Methods\r\n public override isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean {\r\n const drawWrapper = subMesh._drawWrapper;\r\n\r\n if (this.isFrozen) {\r\n if (drawWrapper.effect && drawWrapper._wasPreviouslyReady && drawWrapper._wasPreviouslyUsingInstances === useInstances) {\r\n return true;\r\n }\r\n }\r\n\r\n if (!subMesh.materialDefines) {\r\n subMesh.materialDefines = new ShadowOnlyMaterialDefines();\r\n }\r\n\r\n const defines = <ShadowOnlyMaterialDefines>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 // Ensure that active light is the first shadow light\r\n if (this._activeLight) {\r\n for (const light of mesh.lightSources) {\r\n if (light.shadowEnabled) {\r\n if (this._activeLight === light) {\r\n break; // We are good\r\n }\r\n\r\n const lightPosition = mesh.lightSources.indexOf(this._activeLight);\r\n\r\n if (lightPosition !== -1) {\r\n mesh.lightSources.splice(lightPosition, 1);\r\n mesh.lightSources.splice(0, 0, this._activeLight);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n PrepareDefinesForFrameBoundValues(scene, engine, this, defines, useInstances ? true : false);\r\n\r\n PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this.needAlphaTestingForMesh(mesh), defines);\r\n\r\n defines._needNormals = PrepareDefinesForLights(scene, mesh, defines, false, 1);\r\n\r\n const shadowGenerator = this._getFirstShadowLightForMesh(mesh)?.getShadowGenerator();\r\n\r\n this._needAlphaBlending = true;\r\n\r\n if (shadowGenerator && (shadowGenerator as any).getClassName && (shadowGenerator as any).getClassName() === \"CascadedShadowGenerator\") {\r\n const csg = shadowGenerator as CascadedShadowGenerator;\r\n\r\n this._needAlphaBlending = !csg.autoCalcDepthBounds;\r\n }\r\n\r\n // Attribs\r\n PrepareDefinesForAttributes(mesh, defines, false, true);\r\n\r\n // Get correct effect\r\n if (defines.isDirty) {\r\n defines.markAsProcessed();\r\n\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 HandleFallbacksForShadows(defines, fallbacks, 1);\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 PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\r\n PrepareAttributesForInstances(attribs, defines);\r\n\r\n const shaderName = \"shadowOnly\";\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 \"vFogInfos\",\r\n \"vFogColor\",\r\n \"pointSize\",\r\n \"alpha\",\r\n \"shadowColor\",\r\n \"mBones\",\r\n \"logarithmicDepthConstant\",\r\n ];\r\n const samplers: string[] = [];\r\n\r\n const uniformBuffers: string[] = [\"Scene\"];\r\n\r\n AddClipPlaneUniforms(uniforms);\r\n PrepareUniformsAndSamplersList(<IEffectCreationOptions>{\r\n uniformsNames: uniforms,\r\n uniformBuffersNames: uniformBuffers,\r\n samplers: samplers,\r\n defines: defines,\r\n maxSimultaneousLights: 1,\r\n });\r\n\r\n subMesh.setEffect(\r\n scene.getEngine().createEffect(\r\n shaderName,\r\n {\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: 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 drawWrapper._wasPreviouslyReady = true;\r\n drawWrapper._wasPreviouslyUsingInstances = !!useInstances;\r\n\r\n return true;\r\n }\r\n\r\n public override bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void {\r\n const scene = this.getScene();\r\n\r\n const defines = <ShadowOnlyMaterialDefines>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.bindViewProjection(effect);\r\n\r\n // Bones\r\n BindBonesParameters(mesh, this._activeEffect);\r\n\r\n if (this._mustRebind(scene, effect, subMesh)) {\r\n // Clip plane\r\n BindClipPlane(effect, this, 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 this._activeEffect.setFloat(\"alpha\", this.alpha);\r\n this._activeEffect.setColor3(\"shadowColor\", this.shadowColor);\r\n\r\n // Log. depth\r\n if (this._useLogarithmicDepth) {\r\n BindLogDepth(defines, effect, scene);\r\n }\r\n\r\n scene.bindEyePosition(effect);\r\n }\r\n\r\n // Lights\r\n if (scene.lightsEnabled) {\r\n BindLights(scene, mesh, this._activeEffect, defines, 1);\r\n\r\n const light = this._getFirstShadowLightForMesh(mesh);\r\n\r\n if (light) {\r\n // Make sure the uniforms for this light will be rebound for other materials using this light when rendering the current frame.\r\n // Indeed, there is an optimization in Light that binds the light uniforms only once per frame for a given light (if using ubo).\r\n // Doing this way assumes that all uses of this light are the same, meaning all parameters passed to Light._bindLlight\r\n // are the same, notably useSpecular. However, isReadyForSubMesh (see above) is passing false for this parameter, which may not be\r\n // the value the other materials may pass.\r\n light._renderId = -1;\r\n }\r\n }\r\n\r\n // View\r\n if ((scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) || defines[\"SHADOWCSM0\"]) {\r\n this.bindView(effect);\r\n }\r\n\r\n // Fog\r\n BindFogParameters(scene, mesh, this._activeEffect);\r\n\r\n this._afterBind(mesh, this._activeEffect, subMesh);\r\n }\r\n\r\n public override clone(name: string): ShadowOnlyMaterial {\r\n return SerializationHelper.Clone<ShadowOnlyMaterial>(() => new ShadowOnlyMaterial(name, this.getScene()), this);\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.customType = \"BABYLON.ShadowOnlyMaterial\";\r\n return serializationObject;\r\n }\r\n\r\n public override getClassName(): string {\r\n return \"ShadowOnlyMaterial\";\r\n }\r\n\r\n // Statics\r\n public static override Parse(source: any, scene: Scene, rootUrl: string): ShadowOnlyMaterial {\r\n return SerializationHelper.Parse(() => new ShadowOnlyMaterial(source.name, scene), source, scene, rootUrl);\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ShadowOnlyMaterial\", ShadowOnlyMaterial);\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./simpleMaterial.js";
|
package/simple/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/materials/src/simple/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC","sourcesContent":["export * from \"./simpleMaterial\";\r\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions.js";
|
|
2
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
|
|
3
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
|
|
4
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.js";
|
|
5
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.js";
|
|
6
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js";
|
|
7
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
|
|
8
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js";
|
|
9
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.js";
|
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/depthPrePass.js";
|
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragment.js";
|
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.js";
|
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
|
|
14
|
+
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js";
|
|
15
|
+
/** @internal */
|
|
16
|
+
export declare const simplePixelShader: {
|
|
17
|
+
name: string;
|
|
18
|
+
shader: string;
|
|
19
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
3
|
+
import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions.js";
|
|
4
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
|
|
5
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
|
|
6
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.js";
|
|
7
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.js";
|
|
8
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js";
|
|
9
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
|
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js";
|
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.js";
|
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/depthPrePass.js";
|
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragment.js";
|
|
14
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.js";
|
|
15
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
|
|
16
|
+
import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js";
|
|
17
|
+
const name = "simplePixelShader";
|
|
18
|
+
const shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;
|
|
19
|
+
#ifdef NORMAL
|
|
20
|
+
varying vec3 vNormalW;
|
|
21
|
+
#endif
|
|
22
|
+
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
23
|
+
varying vec4 vColor;
|
|
24
|
+
#endif
|
|
25
|
+
#include<helperFunctions>
|
|
26
|
+
#include<__decl__lightFragment>[0..maxSimultaneousLights]
|
|
27
|
+
#include<lightsFragmentFunctions>
|
|
28
|
+
#include<shadowsFragmentFunctions>
|
|
29
|
+
#ifdef DIFFUSE
|
|
30
|
+
varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
|
|
31
|
+
#endif
|
|
32
|
+
#include<clipPlaneFragmentDeclaration>
|
|
33
|
+
#ifdef LOGARITHMICDEPTH
|
|
34
|
+
#extension GL_EXT_frag_depth : enable
|
|
35
|
+
#endif
|
|
36
|
+
#include<logDepthDeclaration>
|
|
37
|
+
#include<fogFragmentDeclaration>
|
|
38
|
+
#define CUSTOM_FRAGMENT_DEFINITIONS
|
|
39
|
+
void main(void) {
|
|
40
|
+
#define CUSTOM_FRAGMENT_MAIN_BEGIN
|
|
41
|
+
#include<clipPlaneFragment>
|
|
42
|
+
vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
|
|
43
|
+
#ifdef DIFFUSE
|
|
44
|
+
baseColor=texture2D(diffuseSampler,vDiffuseUV);
|
|
45
|
+
#ifdef ALPHATEST
|
|
46
|
+
if (baseColor.a<0.4)
|
|
47
|
+
discard;
|
|
48
|
+
#endif
|
|
49
|
+
#include<depthPrePass>
|
|
50
|
+
baseColor.rgb*=vDiffuseInfos.y;
|
|
51
|
+
#endif
|
|
52
|
+
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
53
|
+
baseColor.rgb*=vColor.rgb;
|
|
54
|
+
#endif
|
|
55
|
+
#ifdef NORMAL
|
|
56
|
+
vec3 normalW=normalize(vNormalW);
|
|
57
|
+
#else
|
|
58
|
+
vec3 normalW=vec3(1.0,1.0,1.0);
|
|
59
|
+
#endif
|
|
60
|
+
vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
|
|
61
|
+
#ifdef SPECULARTERM
|
|
62
|
+
vec3 specularBase=vec3(0.,0.,0.);
|
|
63
|
+
#endif
|
|
64
|
+
#include<lightFragment>[0..maxSimultaneousLights]
|
|
65
|
+
#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
66
|
+
alpha*=vColor.a;
|
|
67
|
+
#endif
|
|
68
|
+
vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);
|
|
69
|
+
#include<logDepthFragment>
|
|
70
|
+
#include<fogFragment>
|
|
71
|
+
gl_FragColor=color;
|
|
72
|
+
#include<imageProcessingCompatibility>
|
|
73
|
+
#define CUSTOM_FRAGMENT_MAIN_END
|
|
74
|
+
}`;
|
|
75
|
+
// Sideeffect
|
|
76
|
+
if (!ShaderStore.ShadersStore[name]) {
|
|
77
|
+
ShaderStore.ShadersStore[name] = shader;
|
|
78
|
+
}
|
|
79
|
+
/** @internal */
|
|
80
|
+
export const simplePixelShader = { name, shader };
|
|
81
|
+
//# sourceMappingURL=simple.fragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/simple/simple.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,mEAAqD;AACrD,4EAA8D;AAC9D,uEAAyD;AACzD,2EAA6D;AAC7D,4EAA8D;AAC9D,gFAAkE;AAClE,uEAAyD;AACzD,0EAA4D;AAC5D,qEAAuD;AACvD,gEAAkD;AAClD,iEAAmD;AACnD,oEAAsD;AACtD,+DAAiD;AACjD,gFAAkE;AAElE,MAAM,IAAI,GAAG,mBAAmB,CAAC;AACjC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDb,CAAC;AACH,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// 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/logDepthDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragment\";\nimport \"core/Shaders/ShadersInclude/depthPrePass\";\nimport \"core/Shaders/ShadersInclude/lightFragment\";\nimport \"core/Shaders/ShadersInclude/logDepthFragment\";\nimport \"core/Shaders/ShadersInclude/fogFragment\";\nimport \"core/Shaders/ShadersInclude/imageProcessingCompatibility\";\n\nconst name = \"simplePixelShader\";\nconst shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;\n#endif\n#include<clipPlaneFragmentDeclaration>\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;\n#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV);\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nbaseColor.rgb*=vColor.rgb;\n#endif\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\nvec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif \n#include<lightFragment>[0..maxSimultaneousLights]\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);\n#include<logDepthFragment>\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n// Sideeffect\nif (!ShaderStore.ShadersStore[name]) {\n ShaderStore.ShadersStore[name] = shader;\n}\n/** @internal */\nexport const simplePixelShader = { name, shader };\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.js";
|
|
2
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js";
|
|
3
|
+
import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js";
|
|
4
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js";
|
|
5
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
|
|
6
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.js";
|
|
7
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
|
|
8
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
|
|
9
|
+
import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js";
|
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js";
|
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
|
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
|
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.js";
|
|
14
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
|
15
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
|
|
16
|
+
import "@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.js";
|
|
17
|
+
/** @internal */
|
|
18
|
+
export declare const simpleVertexShader: {
|
|
19
|
+
name: string;
|
|
20
|
+
shader: string;
|
|
21
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
|
|
3
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.js";
|
|
4
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js";
|
|
5
|
+
import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js";
|
|
6
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js";
|
|
7
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
|
|
8
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.js";
|
|
9
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
|
|
10
|
+
import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
|
|
11
|
+
import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js";
|
|
12
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js";
|
|
13
|
+
import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
|
|
14
|
+
import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
|
|
15
|
+
import "@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.js";
|
|
16
|
+
import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
|
|
17
|
+
import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
|
|
18
|
+
import "@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.js";
|
|
19
|
+
const name = "simpleVertexShader";
|
|
20
|
+
const shader = `precision highp float;attribute vec3 position;
|
|
21
|
+
#ifdef NORMAL
|
|
22
|
+
attribute vec3 normal;
|
|
23
|
+
#endif
|
|
24
|
+
#ifdef UV1
|
|
25
|
+
attribute vec2 uv;
|
|
26
|
+
#endif
|
|
27
|
+
#ifdef UV2
|
|
28
|
+
attribute vec2 uv2;
|
|
29
|
+
#endif
|
|
30
|
+
#ifdef VERTEXCOLOR
|
|
31
|
+
attribute vec4 color;
|
|
32
|
+
#endif
|
|
33
|
+
#include<bonesDeclaration>
|
|
34
|
+
#include<bakedVertexAnimationDeclaration>
|
|
35
|
+
#include<instancesDeclaration>
|
|
36
|
+
uniform mat4 view;uniform mat4 viewProjection;
|
|
37
|
+
#ifdef DIFFUSE
|
|
38
|
+
varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
|
|
39
|
+
#endif
|
|
40
|
+
#ifdef POINTSIZE
|
|
41
|
+
uniform float pointSize;
|
|
42
|
+
#endif
|
|
43
|
+
varying vec3 vPositionW;
|
|
44
|
+
#ifdef NORMAL
|
|
45
|
+
varying vec3 vNormalW;
|
|
46
|
+
#endif
|
|
47
|
+
#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
|
|
48
|
+
varying vec4 vColor;
|
|
49
|
+
#endif
|
|
50
|
+
#include<clipPlaneVertexDeclaration>
|
|
51
|
+
#include<logDepthDeclaration>
|
|
52
|
+
#include<fogVertexDeclaration>
|
|
53
|
+
#include<__decl__lightFragment>[0..maxSimultaneousLights]
|
|
54
|
+
#define CUSTOM_VERTEX_DEFINITIONS
|
|
55
|
+
void main(void) {
|
|
56
|
+
#define CUSTOM_VERTEX_MAIN_BEGIN
|
|
57
|
+
#ifdef VERTEXCOLOR
|
|
58
|
+
vec4 colorUpdated=color;
|
|
59
|
+
#endif
|
|
60
|
+
#include<instancesVertex>
|
|
61
|
+
#include<bonesVertex>
|
|
62
|
+
#include<bakedVertexAnimation>
|
|
63
|
+
vec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);
|
|
64
|
+
#ifdef NORMAL
|
|
65
|
+
vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
|
|
66
|
+
#endif
|
|
67
|
+
#ifndef UV1
|
|
68
|
+
vec2 uv=vec2(0.,0.);
|
|
69
|
+
#endif
|
|
70
|
+
#ifndef UV2
|
|
71
|
+
vec2 uv2=vec2(0.,0.);
|
|
72
|
+
#endif
|
|
73
|
+
#ifdef DIFFUSE
|
|
74
|
+
if (vDiffuseInfos.x==0.)
|
|
75
|
+
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
|
|
76
|
+
else
|
|
77
|
+
{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
|
|
78
|
+
#endif
|
|
79
|
+
#include<clipPlaneVertex>
|
|
80
|
+
#include<logDepthVertex>
|
|
81
|
+
#include<fogVertex>
|
|
82
|
+
#include<shadowsVertex>[0..maxSimultaneousLights]
|
|
83
|
+
#include<vertexColorMixing>
|
|
84
|
+
#if defined(POINTSIZE) && !defined(WEBGPU)
|
|
85
|
+
gl_PointSize=pointSize;
|
|
86
|
+
#endif
|
|
87
|
+
#define CUSTOM_VERTEX_MAIN_END
|
|
88
|
+
}
|
|
89
|
+
`;
|
|
90
|
+
// Sideeffect
|
|
91
|
+
if (!ShaderStore.ShadersStore[name]) {
|
|
92
|
+
ShaderStore.ShadersStore[name] = shader;
|
|
93
|
+
}
|
|
94
|
+
/** @internal */
|
|
95
|
+
export const simpleVertexShader = { name, shader };
|
|
96
|
+
//# sourceMappingURL=simple.vertex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/simple/simple.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,oEAAsD;AACtD,mFAAqE;AACrE,wEAA0D;AAC1D,8EAAgE;AAChE,uEAAyD;AACzD,wEAA0D;AAC1D,4EAA8D;AAC9D,uEAAyD;AACzD,mEAAqD;AACrD,+DAAiD;AACjD,wEAA0D;AAC1D,mEAAqD;AACrD,kEAAoD;AACpD,6DAA+C;AAC/C,iEAAmD;AACnD,qEAAuD;AAEvD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// 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/logDepthDeclaration\";\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/logDepthVertex\";\nimport \"core/Shaders/ShadersInclude/fogVertex\";\nimport \"core/Shaders/ShadersInclude/shadowsVertex\";\nimport \"core/Shaders/ShadersInclude/vertexColorMixing\";\n\nconst name = \"simpleVertexShader\";\nconst shader = `precision highp float;attribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;uniform mat4 viewProjection;\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<logDepthDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#ifdef VERTEXCOLOR\nvec4 colorUpdated=color;\n#endif\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef DIFFUSE\nif (vDiffuseInfos.x==0.)\n{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\nelse\n{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\n#endif\n#include<clipPlaneVertex>\n#include<logDepthVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n// Sideeffect\nif (!ShaderStore.ShadersStore[name]) {\n ShaderStore.ShadersStore[name] = shader;\n}\n/** @internal */\nexport const simpleVertexShader = { name, shader };\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
|
2
|
+
import type { Matrix } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
|
4
|
+
import type { IAnimatable } from "@babylonjs/core/Animations/animatable.interface.js";
|
|
5
|
+
import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
|
|
6
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
7
|
+
import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
8
|
+
import type { SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
|
|
9
|
+
import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
|
10
|
+
import { Scene } from "@babylonjs/core/scene.js";
|
|
11
|
+
import "./simple.fragment.js";
|
|
12
|
+
import "./simple.vertex.js";
|
|
13
|
+
export declare class SimpleMaterial extends PushMaterial {
|
|
14
|
+
private _diffuseTexture;
|
|
15
|
+
diffuseTexture: BaseTexture;
|
|
16
|
+
diffuseColor: Color3;
|
|
17
|
+
private _disableLighting;
|
|
18
|
+
disableLighting: boolean;
|
|
19
|
+
private _maxSimultaneousLights;
|
|
20
|
+
maxSimultaneousLights: number;
|
|
21
|
+
constructor(name: string, scene?: Scene);
|
|
22
|
+
needAlphaBlending(): boolean;
|
|
23
|
+
needAlphaTesting(): boolean;
|
|
24
|
+
getAlphaTestTexture(): Nullable<BaseTexture>;
|
|
25
|
+
isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
|
|
26
|
+
bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
|
|
27
|
+
getAnimatables(): IAnimatable[];
|
|
28
|
+
getActiveTextures(): BaseTexture[];
|
|
29
|
+
hasTexture(texture: BaseTexture): boolean;
|
|
30
|
+
dispose(forceDisposeEffect?: boolean): void;
|
|
31
|
+
clone(name: string): SimpleMaterial;
|
|
32
|
+
serialize(): any;
|
|
33
|
+
getClassName(): string;
|
|
34
|
+
static Parse(source: any, scene: Scene, rootUrl: string): SimpleMaterial;
|
|
35
|
+
}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import { __decorate } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
+
import { serializeAsTexture, serialize, expandToProperty, serializeAsColor3 } from "@babylonjs/core/Misc/decorators.js";
|
|
3
|
+
import { SerializationHelper } from "@babylonjs/core/Misc/decorators.serialization.js";
|
|
4
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
|
5
|
+
import { MaterialDefines } from "@babylonjs/core/Materials/materialDefines.js";
|
|
6
|
+
import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
|
|
7
|
+
import { MaterialFlags } from "@babylonjs/core/Materials/materialFlags.js";
|
|
8
|
+
import { VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
|
|
9
|
+
import { Scene } from "@babylonjs/core/scene.js";
|
|
10
|
+
import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
11
|
+
import "./simple.fragment.js";
|
|
12
|
+
import "./simple.vertex.js";
|
|
13
|
+
import { EffectFallbacks } from "@babylonjs/core/Materials/effectFallbacks.js";
|
|
14
|
+
import { AddClipPlaneUniforms, BindClipPlane } from "@babylonjs/core/Materials/clipPlaneMaterialHelper.js";
|
|
15
|
+
import { BindBonesParameters, BindFogParameters, BindLights, BindLogDepth, HandleFallbacksForShadows, PrepareAttributesForBones, PrepareAttributesForInstances, PrepareDefinesForAttributes, PrepareDefinesForFrameBoundValues, PrepareDefinesForLights, PrepareDefinesForMisc, PrepareUniformsAndSamplersList, } from "@babylonjs/core/Materials/materialHelper.functions.js";
|
|
16
|
+
class SimpleMaterialDefines extends MaterialDefines {
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
this.DIFFUSE = false;
|
|
20
|
+
this.CLIPPLANE = false;
|
|
21
|
+
this.CLIPPLANE2 = false;
|
|
22
|
+
this.CLIPPLANE3 = false;
|
|
23
|
+
this.CLIPPLANE4 = false;
|
|
24
|
+
this.CLIPPLANE5 = false;
|
|
25
|
+
this.CLIPPLANE6 = false;
|
|
26
|
+
this.ALPHATEST = false;
|
|
27
|
+
this.DEPTHPREPASS = false;
|
|
28
|
+
this.POINTSIZE = false;
|
|
29
|
+
this.FOG = false;
|
|
30
|
+
this.NORMAL = false;
|
|
31
|
+
this.UV1 = false;
|
|
32
|
+
this.UV2 = false;
|
|
33
|
+
this.VERTEXCOLOR = false;
|
|
34
|
+
this.VERTEXALPHA = false;
|
|
35
|
+
this.NUM_BONE_INFLUENCERS = 0;
|
|
36
|
+
this.BonesPerMesh = 0;
|
|
37
|
+
this.INSTANCES = false;
|
|
38
|
+
this.INSTANCESCOLOR = false;
|
|
39
|
+
this.IMAGEPROCESSINGPOSTPROCESS = false;
|
|
40
|
+
this.SKIPFINALCOLORCLAMP = false;
|
|
41
|
+
this.LOGARITHMICDEPTH = false;
|
|
42
|
+
this.AREALIGHTSUPPORTED = true;
|
|
43
|
+
this.AREALIGHTNOROUGHTNESS = true;
|
|
44
|
+
this.rebuild();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class SimpleMaterial extends PushMaterial {
|
|
48
|
+
constructor(name, scene) {
|
|
49
|
+
super(name, scene);
|
|
50
|
+
this.diffuseColor = new Color3(1, 1, 1);
|
|
51
|
+
this._disableLighting = false;
|
|
52
|
+
this._maxSimultaneousLights = 4;
|
|
53
|
+
}
|
|
54
|
+
needAlphaBlending() {
|
|
55
|
+
return this.alpha < 1.0;
|
|
56
|
+
}
|
|
57
|
+
needAlphaTesting() {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
getAlphaTestTexture() {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
// Methods
|
|
64
|
+
isReadyForSubMesh(mesh, subMesh, useInstances) {
|
|
65
|
+
const drawWrapper = subMesh._drawWrapper;
|
|
66
|
+
if (this.isFrozen) {
|
|
67
|
+
if (drawWrapper.effect && drawWrapper._wasPreviouslyReady && drawWrapper._wasPreviouslyUsingInstances === useInstances) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!subMesh.materialDefines) {
|
|
72
|
+
subMesh.materialDefines = new SimpleMaterialDefines();
|
|
73
|
+
}
|
|
74
|
+
const defines = subMesh.materialDefines;
|
|
75
|
+
const scene = this.getScene();
|
|
76
|
+
if (this._isReadyForSubMesh(subMesh)) {
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
const engine = scene.getEngine();
|
|
80
|
+
// Textures
|
|
81
|
+
if (defines._areTexturesDirty) {
|
|
82
|
+
defines._needUVs = false;
|
|
83
|
+
if (scene.texturesEnabled) {
|
|
84
|
+
if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {
|
|
85
|
+
if (!this._diffuseTexture.isReady()) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
defines._needUVs = true;
|
|
90
|
+
defines.DIFFUSE = true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Misc.
|
|
96
|
+
PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this.needAlphaTestingForMesh(mesh), defines);
|
|
97
|
+
// Lights
|
|
98
|
+
defines._needNormals = PrepareDefinesForLights(scene, mesh, defines, false, this._maxSimultaneousLights, this._disableLighting);
|
|
99
|
+
// Values that need to be evaluated on every frame
|
|
100
|
+
PrepareDefinesForFrameBoundValues(scene, engine, this, defines, useInstances ? true : false);
|
|
101
|
+
// Attribs
|
|
102
|
+
PrepareDefinesForAttributes(mesh, defines, true, true);
|
|
103
|
+
// Get correct effect
|
|
104
|
+
if (defines.isDirty) {
|
|
105
|
+
defines.markAsProcessed();
|
|
106
|
+
scene.resetCachedMaterial();
|
|
107
|
+
// Fallbacks
|
|
108
|
+
const fallbacks = new EffectFallbacks();
|
|
109
|
+
if (defines.FOG) {
|
|
110
|
+
fallbacks.addFallback(1, "FOG");
|
|
111
|
+
}
|
|
112
|
+
HandleFallbacksForShadows(defines, fallbacks, this.maxSimultaneousLights);
|
|
113
|
+
if (defines.NUM_BONE_INFLUENCERS > 0) {
|
|
114
|
+
fallbacks.addCPUSkinningFallback(0, mesh);
|
|
115
|
+
}
|
|
116
|
+
defines.IMAGEPROCESSINGPOSTPROCESS = scene.imageProcessingConfiguration.applyByPostProcess;
|
|
117
|
+
//Attributes
|
|
118
|
+
const attribs = [VertexBuffer.PositionKind];
|
|
119
|
+
if (defines.NORMAL) {
|
|
120
|
+
attribs.push(VertexBuffer.NormalKind);
|
|
121
|
+
}
|
|
122
|
+
if (defines.UV1) {
|
|
123
|
+
attribs.push(VertexBuffer.UVKind);
|
|
124
|
+
}
|
|
125
|
+
if (defines.UV2) {
|
|
126
|
+
attribs.push(VertexBuffer.UV2Kind);
|
|
127
|
+
}
|
|
128
|
+
if (defines.VERTEXCOLOR) {
|
|
129
|
+
attribs.push(VertexBuffer.ColorKind);
|
|
130
|
+
}
|
|
131
|
+
PrepareAttributesForBones(attribs, mesh, defines, fallbacks);
|
|
132
|
+
PrepareAttributesForInstances(attribs, defines);
|
|
133
|
+
const shaderName = "simple";
|
|
134
|
+
const join = defines.toString();
|
|
135
|
+
const uniforms = [
|
|
136
|
+
"world",
|
|
137
|
+
"view",
|
|
138
|
+
"viewProjection",
|
|
139
|
+
"vEyePosition",
|
|
140
|
+
"vLightsType",
|
|
141
|
+
"vDiffuseColor",
|
|
142
|
+
"vFogInfos",
|
|
143
|
+
"vFogColor",
|
|
144
|
+
"pointSize",
|
|
145
|
+
"vDiffuseInfos",
|
|
146
|
+
"mBones",
|
|
147
|
+
"diffuseMatrix",
|
|
148
|
+
"logarithmicDepthConstant",
|
|
149
|
+
];
|
|
150
|
+
const samplers = ["diffuseSampler", "areaLightsLTC1Sampler", "areaLightsLTC2Sampler"];
|
|
151
|
+
const uniformBuffers = [];
|
|
152
|
+
AddClipPlaneUniforms(uniforms);
|
|
153
|
+
PrepareUniformsAndSamplersList({
|
|
154
|
+
uniformsNames: uniforms,
|
|
155
|
+
uniformBuffersNames: uniformBuffers,
|
|
156
|
+
samplers: samplers,
|
|
157
|
+
defines: defines,
|
|
158
|
+
maxSimultaneousLights: this.maxSimultaneousLights,
|
|
159
|
+
});
|
|
160
|
+
subMesh.setEffect(scene.getEngine().createEffect(shaderName, {
|
|
161
|
+
attributes: attribs,
|
|
162
|
+
uniformsNames: uniforms,
|
|
163
|
+
uniformBuffersNames: uniformBuffers,
|
|
164
|
+
samplers: samplers,
|
|
165
|
+
defines: join,
|
|
166
|
+
fallbacks: fallbacks,
|
|
167
|
+
onCompiled: this.onCompiled,
|
|
168
|
+
onError: this.onError,
|
|
169
|
+
indexParameters: { maxSimultaneousLights: this._maxSimultaneousLights - 1 },
|
|
170
|
+
}, engine), defines, this._materialContext);
|
|
171
|
+
}
|
|
172
|
+
// Check if Area Lights have LTC texture.
|
|
173
|
+
if (defines["AREALIGHTUSED"]) {
|
|
174
|
+
for (let index = 0; index < mesh.lightSources.length; index++) {
|
|
175
|
+
if (!mesh.lightSources[index]._isReady()) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (!subMesh.effect || !subMesh.effect.isReady()) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
defines._renderId = scene.getRenderId();
|
|
184
|
+
drawWrapper._wasPreviouslyReady = true;
|
|
185
|
+
drawWrapper._wasPreviouslyUsingInstances = !!useInstances;
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
bindForSubMesh(world, mesh, subMesh) {
|
|
189
|
+
const scene = this.getScene();
|
|
190
|
+
const defines = subMesh.materialDefines;
|
|
191
|
+
if (!defines) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const effect = subMesh.effect;
|
|
195
|
+
if (!effect) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
this._activeEffect = effect;
|
|
199
|
+
// Matrices
|
|
200
|
+
this.bindOnlyWorldMatrix(world);
|
|
201
|
+
this._activeEffect.setMatrix("viewProjection", scene.getTransformMatrix());
|
|
202
|
+
// Bones
|
|
203
|
+
BindBonesParameters(mesh, this._activeEffect);
|
|
204
|
+
if (this._mustRebind(scene, effect, subMesh)) {
|
|
205
|
+
// Textures
|
|
206
|
+
if (this._diffuseTexture && MaterialFlags.DiffuseTextureEnabled) {
|
|
207
|
+
this._activeEffect.setTexture("diffuseSampler", this._diffuseTexture);
|
|
208
|
+
this._activeEffect.setFloat2("vDiffuseInfos", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level);
|
|
209
|
+
this._activeEffect.setMatrix("diffuseMatrix", this._diffuseTexture.getTextureMatrix());
|
|
210
|
+
}
|
|
211
|
+
// Clip plane
|
|
212
|
+
BindClipPlane(effect, this, scene);
|
|
213
|
+
// Point size
|
|
214
|
+
if (this.pointsCloud) {
|
|
215
|
+
this._activeEffect.setFloat("pointSize", this.pointSize);
|
|
216
|
+
}
|
|
217
|
+
// Log. depth
|
|
218
|
+
if (this._useLogarithmicDepth) {
|
|
219
|
+
BindLogDepth(defines, effect, scene);
|
|
220
|
+
}
|
|
221
|
+
scene.bindEyePosition(effect);
|
|
222
|
+
}
|
|
223
|
+
this._activeEffect.setColor4("vDiffuseColor", this.diffuseColor, this.alpha * mesh.visibility);
|
|
224
|
+
// Lights
|
|
225
|
+
if (scene.lightsEnabled && !this.disableLighting) {
|
|
226
|
+
BindLights(scene, mesh, this._activeEffect, defines, this.maxSimultaneousLights);
|
|
227
|
+
}
|
|
228
|
+
// View
|
|
229
|
+
if (scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) {
|
|
230
|
+
this._activeEffect.setMatrix("view", scene.getViewMatrix());
|
|
231
|
+
}
|
|
232
|
+
// Fog
|
|
233
|
+
BindFogParameters(scene, mesh, this._activeEffect);
|
|
234
|
+
this._afterBind(mesh, this._activeEffect, subMesh);
|
|
235
|
+
}
|
|
236
|
+
getAnimatables() {
|
|
237
|
+
const results = [];
|
|
238
|
+
if (this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0) {
|
|
239
|
+
results.push(this._diffuseTexture);
|
|
240
|
+
}
|
|
241
|
+
return results;
|
|
242
|
+
}
|
|
243
|
+
getActiveTextures() {
|
|
244
|
+
const activeTextures = super.getActiveTextures();
|
|
245
|
+
if (this._diffuseTexture) {
|
|
246
|
+
activeTextures.push(this._diffuseTexture);
|
|
247
|
+
}
|
|
248
|
+
return activeTextures;
|
|
249
|
+
}
|
|
250
|
+
hasTexture(texture) {
|
|
251
|
+
if (super.hasTexture(texture)) {
|
|
252
|
+
return true;
|
|
253
|
+
}
|
|
254
|
+
if (this.diffuseTexture === texture) {
|
|
255
|
+
return true;
|
|
256
|
+
}
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
dispose(forceDisposeEffect) {
|
|
260
|
+
if (this._diffuseTexture) {
|
|
261
|
+
this._diffuseTexture.dispose();
|
|
262
|
+
}
|
|
263
|
+
super.dispose(forceDisposeEffect);
|
|
264
|
+
}
|
|
265
|
+
clone(name) {
|
|
266
|
+
return SerializationHelper.Clone(() => new SimpleMaterial(name, this.getScene()), this);
|
|
267
|
+
}
|
|
268
|
+
serialize() {
|
|
269
|
+
const serializationObject = super.serialize();
|
|
270
|
+
serializationObject.customType = "BABYLON.SimpleMaterial";
|
|
271
|
+
return serializationObject;
|
|
272
|
+
}
|
|
273
|
+
getClassName() {
|
|
274
|
+
return "SimpleMaterial";
|
|
275
|
+
}
|
|
276
|
+
// Statics
|
|
277
|
+
static Parse(source, scene, rootUrl) {
|
|
278
|
+
return SerializationHelper.Parse(() => new SimpleMaterial(source.name, scene), source, scene, rootUrl);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
__decorate([
|
|
282
|
+
serializeAsTexture("diffuseTexture")
|
|
283
|
+
], SimpleMaterial.prototype, "_diffuseTexture", void 0);
|
|
284
|
+
__decorate([
|
|
285
|
+
expandToProperty("_markAllSubMeshesAsTexturesDirty")
|
|
286
|
+
], SimpleMaterial.prototype, "diffuseTexture", void 0);
|
|
287
|
+
__decorate([
|
|
288
|
+
serializeAsColor3("diffuse")
|
|
289
|
+
], SimpleMaterial.prototype, "diffuseColor", void 0);
|
|
290
|
+
__decorate([
|
|
291
|
+
serialize("disableLighting")
|
|
292
|
+
], SimpleMaterial.prototype, "_disableLighting", void 0);
|
|
293
|
+
__decorate([
|
|
294
|
+
expandToProperty("_markAllSubMeshesAsLightsDirty")
|
|
295
|
+
], SimpleMaterial.prototype, "disableLighting", void 0);
|
|
296
|
+
__decorate([
|
|
297
|
+
serialize("maxSimultaneousLights")
|
|
298
|
+
], SimpleMaterial.prototype, "_maxSimultaneousLights", void 0);
|
|
299
|
+
__decorate([
|
|
300
|
+
expandToProperty("_markAllSubMeshesAsLightsDirty")
|
|
301
|
+
], SimpleMaterial.prototype, "maxSimultaneousLights", void 0);
|
|
302
|
+
RegisterClass("BABYLON.SimpleMaterial", SimpleMaterial);
|
|
303
|
+
//# sourceMappingURL=simpleMaterial.js.map
|