@onerjs/core 8.26.3 → 8.26.4
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/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +0 -6
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/frameGraphContext.d.ts +1 -2
- package/FrameGraph/frameGraphContext.js +1 -4
- package/FrameGraph/frameGraphContext.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.d.ts +1 -1
- package/Lights/Clustered/clusteredLightContainer.js +5 -4
- package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
- package/Lights/pointLight.js +4 -4
- package/Lights/pointLight.js.map +1 -1
- package/Lights/rectAreaLight.js +4 -4
- package/Lights/rectAreaLight.js.map +1 -1
- package/Lights/spotLight.js +2 -2
- package/Lights/spotLight.js.map +1 -1
- package/Materials/Background/backgroundMaterial.d.ts +91 -19
- package/Materials/Background/backgroundMaterial.js +245 -17
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +4 -15
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +5 -28
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +69 -57
- package/Materials/Node/nodeMaterial.js +86 -9
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +1 -3
- package/Materials/Node/nodeMaterialBuildState.js +15 -35
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/index.d.ts +0 -5
- package/Materials/PBR/index.js +0 -5
- package/Materials/PBR/index.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +43 -57
- package/Materials/PBR/pbrBaseMaterial.js +304 -21
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.d.ts +78 -0
- package/Materials/PBR/pbrMaterial.js +110 -0
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/imageProcessingConfiguration.defines.d.ts +0 -25
- package/Materials/imageProcessingConfiguration.defines.js +0 -27
- package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
- package/Materials/index.d.ts +0 -2
- package/Materials/index.js +0 -2
- package/Materials/index.js.map +1 -1
- package/Materials/material.d.ts +0 -14
- package/Materials/material.js +0 -14
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.functions.d.ts +0 -53
- package/Materials/materialHelper.functions.js +0 -297
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/standardMaterial.d.ts +121 -57
- package/Materials/standardMaterial.js +250 -21
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +0 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Misc/decorators.d.ts +0 -7
- package/Misc/decorators.js +0 -34
- package/Misc/decorators.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js +1 -10
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
- package/Particles/Node/Blocks/index.d.ts +0 -2
- package/Particles/Node/Blocks/index.js +0 -2
- package/Particles/Node/Blocks/index.js.map +1 -1
- package/Particles/Node/Blocks/particleInputBlock.js +1 -4
- package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +1 -2
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +0 -45
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +1 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +4 -6
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/iblCdfGenerator.js +20 -28
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Rendering/reflectiveShadowMap.d.ts +3 -3
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clusteredLightingFunctions.js +1 -3
- package/Shaders/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +0 -34
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js +0 -4
- package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +0 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +0 -1
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -3
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js +0 -2
- package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +0 -28
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/importanceSampling.js +0 -4
- package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -3
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +0 -2
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +0 -21
- package/scene.js +3 -29
- package/scene.js.map +1 -1
- package/Materials/PBR/openPbrMaterial.d.ts +0 -998
- package/Materials/PBR/openPbrMaterial.js +0 -2069
- package/Materials/PBR/openPbrMaterial.js.map +0 -1
- package/Materials/floatingOriginMatrixOverrides.d.ts +0 -3
- package/Materials/floatingOriginMatrixOverrides.js +0 -91
- package/Materials/floatingOriginMatrixOverrides.js.map +0 -1
- package/Materials/imageProcessing.d.ts +0 -65
- package/Materials/imageProcessing.js +0 -162
- package/Materials/imageProcessing.js.map +0 -1
- package/Materials/uv.defines.d.ts +0 -22
- package/Materials/uv.defines.js +0 -24
- package/Materials/uv.defines.js.map +0 -1
- package/Particles/Node/Blocks/particleLocalVariableBlock.d.ts +0 -38
- package/Particles/Node/Blocks/particleLocalVariableBlock.js +0 -108
- package/Particles/Node/Blocks/particleLocalVariableBlock.js.map +0 -1
- package/Particles/Node/Blocks/particleVectorLengthBlock.d.ts +0 -26
- package/Particles/Node/Blocks/particleVectorLengthBlock.js +0 -50
- package/Particles/Node/Blocks/particleVectorLengthBlock.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "../../tslib.es6.js";
|
|
2
2
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
3
|
-
import { expandToProperty } from "../../Misc/decorators.js";
|
|
3
|
+
import { serializeAsImageProcessingConfiguration, expandToProperty } from "../../Misc/decorators.js";
|
|
4
4
|
import { Logger } from "../../Misc/logger.js";
|
|
5
5
|
import { SmartArray } from "../../Misc/smartArray.js";
|
|
6
6
|
import { GetEnvironmentBRDFTexture } from "../../Misc/brdfTextureTools.js";
|
|
@@ -10,11 +10,11 @@ import { VertexBuffer } from "../../Buffers/buffer.js";
|
|
|
10
10
|
import { PBRBRDFConfiguration } from "./pbrBRDFConfiguration.js";
|
|
11
11
|
import { PrePassConfiguration } from "../prePassConfiguration.js";
|
|
12
12
|
import { Color3, TmpColors } from "../../Maths/math.color.js";
|
|
13
|
-
import { ImageProcessingDefinesMixin } from "../../Materials/imageProcessingConfiguration.defines.js";
|
|
14
13
|
import { ImageProcessingConfiguration } from "../../Materials/imageProcessingConfiguration.js";
|
|
15
14
|
import { Material } from "../../Materials/material.js";
|
|
16
15
|
import { MaterialDefines } from "../../Materials/materialDefines.js";
|
|
17
16
|
import { PushMaterial } from "../../Materials/pushMaterial.js";
|
|
17
|
+
import { Texture } from "../../Materials/Textures/texture.js";
|
|
18
18
|
import { MaterialFlags } from "../materialFlags.js";
|
|
19
19
|
|
|
20
20
|
import "../../Materials/Textures/baseTexture.polynomial.js";
|
|
@@ -26,18 +26,14 @@ import { PBRSheenConfiguration } from "./pbrSheenConfiguration.js";
|
|
|
26
26
|
import { PBRSubSurfaceConfiguration } from "./pbrSubSurfaceConfiguration.js";
|
|
27
27
|
import { DetailMapConfiguration } from "../material.detailMapConfiguration.js";
|
|
28
28
|
import { AddClipPlaneUniforms, BindClipPlane } from "../clipPlaneMaterialHelper.js";
|
|
29
|
-
import { BindBonesParameters, BindFogParameters, BindLights, BindLogDepth, BindMorphTargetParameters, BindTextureMatrix,
|
|
29
|
+
import { BindBonesParameters, BindFogParameters, BindLights, BindLogDepth, BindMorphTargetParameters, BindTextureMatrix, HandleFallbacksForShadows, PrepareAttributesForBakedVertexAnimation, PrepareAttributesForBones, PrepareAttributesForInstances, PrepareAttributesForMorphTargets, PrepareDefinesForAttributes, PrepareDefinesForFrameBoundValues, PrepareDefinesForLights, PrepareDefinesForMergedUV, PrepareDefinesForMisc, PrepareDefinesForMultiview, PrepareDefinesForOIT, PrepareDefinesForPrePass, PrepareUniformsAndSamplersList, } from "../materialHelper.functions.js";
|
|
30
30
|
import { MaterialHelperGeometryRendering } from "../materialHelper.geometryrendering.js";
|
|
31
|
-
import { UVDefinesMixin } from "../uv.defines.js";
|
|
32
|
-
import { ImageProcessingMixin } from "../imageProcessing.js";
|
|
33
31
|
const onCreatedEffectParameters = { effect: null, subMesh: null };
|
|
34
|
-
class PBRMaterialDefinesBase extends UVDefinesMixin(MaterialDefines) {
|
|
35
|
-
}
|
|
36
32
|
/**
|
|
37
33
|
* Manages the defines for the PBR Material.
|
|
38
34
|
* @internal
|
|
39
35
|
*/
|
|
40
|
-
export class PBRMaterialDefines extends
|
|
36
|
+
export class PBRMaterialDefines extends MaterialDefines {
|
|
41
37
|
/**
|
|
42
38
|
* Initializes the PBR Material defines.
|
|
43
39
|
* @param externalProperties The external properties
|
|
@@ -48,6 +44,18 @@ export class PBRMaterialDefines extends ImageProcessingDefinesMixin(PBRMaterialD
|
|
|
48
44
|
this.NUM_SAMPLES = "0";
|
|
49
45
|
this.REALTIME_FILTERING = false;
|
|
50
46
|
this.IBL_CDF_FILTERING = false;
|
|
47
|
+
this.MAINUV1 = false;
|
|
48
|
+
this.MAINUV2 = false;
|
|
49
|
+
this.MAINUV3 = false;
|
|
50
|
+
this.MAINUV4 = false;
|
|
51
|
+
this.MAINUV5 = false;
|
|
52
|
+
this.MAINUV6 = false;
|
|
53
|
+
this.UV1 = false;
|
|
54
|
+
this.UV2 = false;
|
|
55
|
+
this.UV3 = false;
|
|
56
|
+
this.UV4 = false;
|
|
57
|
+
this.UV5 = false;
|
|
58
|
+
this.UV6 = false;
|
|
51
59
|
this.ALBEDO = false;
|
|
52
60
|
this.GAMMAALBEDO = false;
|
|
53
61
|
this.ALBEDODIRECTUV = 0;
|
|
@@ -192,6 +200,21 @@ export class PBRMaterialDefines extends ImageProcessingDefinesMixin(PBRMaterialD
|
|
|
192
200
|
this.MORPHTARGETTEXTURE_HASCOLORS = false;
|
|
193
201
|
this.NUM_MORPH_INFLUENCERS = 0;
|
|
194
202
|
this.MORPHTARGETS_TEXTURE = false;
|
|
203
|
+
this.IMAGEPROCESSING = false;
|
|
204
|
+
this.VIGNETTE = false;
|
|
205
|
+
this.VIGNETTEBLENDMODEMULTIPLY = false;
|
|
206
|
+
this.VIGNETTEBLENDMODEOPAQUE = false;
|
|
207
|
+
this.TONEMAPPING = 0;
|
|
208
|
+
this.CONTRAST = false;
|
|
209
|
+
this.COLORCURVES = false;
|
|
210
|
+
this.COLORGRADING = false;
|
|
211
|
+
this.COLORGRADING3D = false;
|
|
212
|
+
this.SAMPLER3DGREENDEPTH = false;
|
|
213
|
+
this.SAMPLER3DBGRMAP = false;
|
|
214
|
+
this.DITHER = false;
|
|
215
|
+
this.IMAGEPROCESSINGPOSTPROCESS = false;
|
|
216
|
+
this.SKIPFINALCOLORCLAMP = false;
|
|
217
|
+
this.EXPOSURE = false;
|
|
195
218
|
this.MULTIVIEW = false;
|
|
196
219
|
this.ORDER_INDEPENDENT_TRANSPARENCY = false;
|
|
197
220
|
this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS = false;
|
|
@@ -230,8 +253,6 @@ export class PBRMaterialDefines extends ImageProcessingDefinesMixin(PBRMaterialD
|
|
|
230
253
|
this.NORMALXYSCALE = true;
|
|
231
254
|
}
|
|
232
255
|
}
|
|
233
|
-
class PBRBaseMaterialBase extends ImageProcessingMixin(PushMaterial) {
|
|
234
|
-
}
|
|
235
256
|
/**
|
|
236
257
|
* The Physically based material base class of BJS.
|
|
237
258
|
*
|
|
@@ -241,7 +262,7 @@ class PBRBaseMaterialBase extends ImageProcessingMixin(PushMaterial) {
|
|
|
241
262
|
* @see [WebGL](https://playground.babylonjs.com/#CGHTSM#1)
|
|
242
263
|
* @see [WebGPU](https://playground.babylonjs.com/#CGHTSM#2)
|
|
243
264
|
*/
|
|
244
|
-
export class PBRBaseMaterial extends
|
|
265
|
+
export class PBRBaseMaterial extends PushMaterial {
|
|
245
266
|
/**
|
|
246
267
|
* Enables realtime filtering on the texture.
|
|
247
268
|
*/
|
|
@@ -268,6 +289,32 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
268
289
|
get canRenderToMRT() {
|
|
269
290
|
return true;
|
|
270
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Attaches a new image processing configuration to the PBR Material.
|
|
294
|
+
* @param configuration
|
|
295
|
+
*/
|
|
296
|
+
_attachImageProcessingConfiguration(configuration) {
|
|
297
|
+
if (configuration === this._imageProcessingConfiguration) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
// Detaches observer.
|
|
301
|
+
if (this._imageProcessingConfiguration && this._imageProcessingObserver) {
|
|
302
|
+
this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);
|
|
303
|
+
}
|
|
304
|
+
// Pick the scene configuration if needed.
|
|
305
|
+
if (!configuration) {
|
|
306
|
+
this._imageProcessingConfiguration = this.getScene().imageProcessingConfiguration;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
this._imageProcessingConfiguration = configuration;
|
|
310
|
+
}
|
|
311
|
+
// Attaches observer.
|
|
312
|
+
if (this._imageProcessingConfiguration) {
|
|
313
|
+
this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {
|
|
314
|
+
this._markAllSubMeshesAsImageProcessingDirty();
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
}
|
|
271
318
|
/**
|
|
272
319
|
* Instantiates a new PBRMaterial instance.
|
|
273
320
|
*
|
|
@@ -642,6 +689,10 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
642
689
|
* @internal
|
|
643
690
|
*/
|
|
644
691
|
this._enableSpecularAntiAliasing = false;
|
|
692
|
+
/**
|
|
693
|
+
* Keep track of the image processing observer to allow dispose and replace.
|
|
694
|
+
*/
|
|
695
|
+
this._imageProcessingObserver = null;
|
|
645
696
|
/**
|
|
646
697
|
* Stores the available render targets.
|
|
647
698
|
*/
|
|
@@ -1081,6 +1132,7 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1081
1132
|
"vMetallicReflectanceFactors",
|
|
1082
1133
|
"vEmissiveColor",
|
|
1083
1134
|
"visibility",
|
|
1135
|
+
"vReflectionColor",
|
|
1084
1136
|
"vFogInfos",
|
|
1085
1137
|
"vFogColor",
|
|
1086
1138
|
"pointSize",
|
|
@@ -1089,8 +1141,12 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1089
1141
|
"vBaseDiffuseRoughnessInfos",
|
|
1090
1142
|
"vAmbientInfos",
|
|
1091
1143
|
"vOpacityInfos",
|
|
1144
|
+
"vReflectionInfos",
|
|
1145
|
+
"vReflectionPosition",
|
|
1146
|
+
"vReflectionSize",
|
|
1092
1147
|
"vEmissiveInfos",
|
|
1093
1148
|
"vReflectivityInfos",
|
|
1149
|
+
"vReflectionFilteringInfo",
|
|
1094
1150
|
"vMetallicReflectanceInfos",
|
|
1095
1151
|
"vReflectanceInfos",
|
|
1096
1152
|
"vMicroSurfaceSamplerInfos",
|
|
@@ -1102,6 +1158,7 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1102
1158
|
"baseDiffuseRoughnessMatrix",
|
|
1103
1159
|
"ambientMatrix",
|
|
1104
1160
|
"opacityMatrix",
|
|
1161
|
+
"reflectionMatrix",
|
|
1105
1162
|
"emissiveMatrix",
|
|
1106
1163
|
"reflectivityMatrix",
|
|
1107
1164
|
"normalMatrix",
|
|
@@ -1112,6 +1169,26 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1112
1169
|
"reflectanceMatrix",
|
|
1113
1170
|
"vLightingIntensity",
|
|
1114
1171
|
"logarithmicDepthConstant",
|
|
1172
|
+
"vSphericalX",
|
|
1173
|
+
"vSphericalY",
|
|
1174
|
+
"vSphericalZ",
|
|
1175
|
+
"vSphericalXX_ZZ",
|
|
1176
|
+
"vSphericalYY_ZZ",
|
|
1177
|
+
"vSphericalZZ",
|
|
1178
|
+
"vSphericalXY",
|
|
1179
|
+
"vSphericalYZ",
|
|
1180
|
+
"vSphericalZX",
|
|
1181
|
+
"vSphericalL00",
|
|
1182
|
+
"vSphericalL1_1",
|
|
1183
|
+
"vSphericalL10",
|
|
1184
|
+
"vSphericalL11",
|
|
1185
|
+
"vSphericalL2_2",
|
|
1186
|
+
"vSphericalL2_1",
|
|
1187
|
+
"vSphericalL20",
|
|
1188
|
+
"vSphericalL21",
|
|
1189
|
+
"vSphericalL22",
|
|
1190
|
+
"vReflectionMicrosurfaceInfos",
|
|
1191
|
+
"vReflectionDominantDirection",
|
|
1115
1192
|
"vTangentSpaceParams",
|
|
1116
1193
|
"boneTextureWidth",
|
|
1117
1194
|
"vDebugMode",
|
|
@@ -1129,6 +1206,10 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1129
1206
|
"bumpSampler",
|
|
1130
1207
|
"lightmapSampler",
|
|
1131
1208
|
"opacitySampler",
|
|
1209
|
+
"reflectionSampler",
|
|
1210
|
+
"reflectionSamplerLow",
|
|
1211
|
+
"reflectionSamplerHigh",
|
|
1212
|
+
"irradianceSampler",
|
|
1132
1213
|
"microSurfaceSampler",
|
|
1133
1214
|
"environmentBrdfSampler",
|
|
1134
1215
|
"boneSampler",
|
|
@@ -1137,10 +1218,10 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1137
1218
|
"morphTargets",
|
|
1138
1219
|
"oitDepthSampler",
|
|
1139
1220
|
"oitFrontColorSampler",
|
|
1221
|
+
"icdfSampler",
|
|
1140
1222
|
"areaLightsLTC1Sampler",
|
|
1141
1223
|
"areaLightsLTC2Sampler",
|
|
1142
1224
|
];
|
|
1143
|
-
PrepareUniformsAndSamplersForIBL(uniforms, samplers, true);
|
|
1144
1225
|
const uniformBuffers = ["Material", "Scene", "Mesh"];
|
|
1145
1226
|
const indexParameters = { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: defines.NUM_MORPH_INFLUENCERS };
|
|
1146
1227
|
this._eventInfo.fallbacks = fallbacks;
|
|
@@ -1275,12 +1356,121 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1275
1356
|
defines.OPACITY = false;
|
|
1276
1357
|
}
|
|
1277
1358
|
const reflectionTexture = this._getReflectionTexture();
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1359
|
+
if (reflectionTexture && MaterialFlags.ReflectionTextureEnabled) {
|
|
1360
|
+
defines.REFLECTION = true;
|
|
1361
|
+
defines.GAMMAREFLECTION = reflectionTexture.gammaSpace;
|
|
1362
|
+
defines.RGBDREFLECTION = reflectionTexture.isRGBD;
|
|
1363
|
+
defines.LODINREFLECTIONALPHA = reflectionTexture.lodLevelInAlpha;
|
|
1364
|
+
defines.LINEARSPECULARREFLECTION = reflectionTexture.linearSpecularLOD;
|
|
1365
|
+
defines.USEIRRADIANCEMAP = false;
|
|
1366
|
+
if (this.realTimeFiltering && this.realTimeFilteringQuality > 0) {
|
|
1367
|
+
defines.NUM_SAMPLES = "" + this.realTimeFilteringQuality;
|
|
1368
|
+
if (engine._features.needTypeSuffixInShaderConstants) {
|
|
1369
|
+
defines.NUM_SAMPLES = defines.NUM_SAMPLES + "u";
|
|
1370
|
+
}
|
|
1371
|
+
defines.REALTIME_FILTERING = true;
|
|
1372
|
+
if (this.getScene().iblCdfGenerator) {
|
|
1373
|
+
defines.IBL_CDF_FILTERING = true;
|
|
1374
|
+
}
|
|
1375
|
+
}
|
|
1376
|
+
else {
|
|
1377
|
+
defines.REALTIME_FILTERING = false;
|
|
1378
|
+
}
|
|
1379
|
+
defines.INVERTCUBICMAP = reflectionTexture.coordinatesMode === Texture.INVCUBIC_MODE;
|
|
1380
|
+
defines.REFLECTIONMAP_3D = reflectionTexture.isCube;
|
|
1381
|
+
defines.REFLECTIONMAP_OPPOSITEZ = defines.REFLECTIONMAP_3D && this.getScene().useRightHandedSystem ? !reflectionTexture.invertZ : reflectionTexture.invertZ;
|
|
1382
|
+
defines.REFLECTIONMAP_CUBIC = false;
|
|
1383
|
+
defines.REFLECTIONMAP_EXPLICIT = false;
|
|
1384
|
+
defines.REFLECTIONMAP_PLANAR = false;
|
|
1385
|
+
defines.REFLECTIONMAP_PROJECTION = false;
|
|
1386
|
+
defines.REFLECTIONMAP_SKYBOX = false;
|
|
1387
|
+
defines.REFLECTIONMAP_SPHERICAL = false;
|
|
1388
|
+
defines.REFLECTIONMAP_EQUIRECTANGULAR = false;
|
|
1389
|
+
defines.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = false;
|
|
1390
|
+
defines.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = false;
|
|
1391
|
+
switch (reflectionTexture.coordinatesMode) {
|
|
1392
|
+
case Texture.EXPLICIT_MODE:
|
|
1393
|
+
defines.REFLECTIONMAP_EXPLICIT = true;
|
|
1394
|
+
break;
|
|
1395
|
+
case Texture.PLANAR_MODE:
|
|
1396
|
+
defines.REFLECTIONMAP_PLANAR = true;
|
|
1397
|
+
break;
|
|
1398
|
+
case Texture.PROJECTION_MODE:
|
|
1399
|
+
defines.REFLECTIONMAP_PROJECTION = true;
|
|
1400
|
+
break;
|
|
1401
|
+
case Texture.SKYBOX_MODE:
|
|
1402
|
+
defines.REFLECTIONMAP_SKYBOX = true;
|
|
1403
|
+
break;
|
|
1404
|
+
case Texture.SPHERICAL_MODE:
|
|
1405
|
+
defines.REFLECTIONMAP_SPHERICAL = true;
|
|
1406
|
+
break;
|
|
1407
|
+
case Texture.EQUIRECTANGULAR_MODE:
|
|
1408
|
+
defines.REFLECTIONMAP_EQUIRECTANGULAR = true;
|
|
1409
|
+
break;
|
|
1410
|
+
case Texture.FIXED_EQUIRECTANGULAR_MODE:
|
|
1411
|
+
defines.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = true;
|
|
1412
|
+
break;
|
|
1413
|
+
case Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:
|
|
1414
|
+
defines.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = true;
|
|
1415
|
+
break;
|
|
1416
|
+
case Texture.CUBIC_MODE:
|
|
1417
|
+
case Texture.INVCUBIC_MODE:
|
|
1418
|
+
default:
|
|
1419
|
+
defines.REFLECTIONMAP_CUBIC = true;
|
|
1420
|
+
defines.USE_LOCAL_REFLECTIONMAP_CUBIC = reflectionTexture.boundingBoxSize ? true : false;
|
|
1421
|
+
break;
|
|
1422
|
+
}
|
|
1423
|
+
if (reflectionTexture.coordinatesMode !== Texture.SKYBOX_MODE) {
|
|
1424
|
+
if (reflectionTexture.irradianceTexture) {
|
|
1425
|
+
defines.USEIRRADIANCEMAP = true;
|
|
1426
|
+
defines.USESPHERICALFROMREFLECTIONMAP = false;
|
|
1427
|
+
defines.USESPHERICALINVERTEX = false;
|
|
1428
|
+
if (reflectionTexture.irradianceTexture._dominantDirection) {
|
|
1429
|
+
defines.USE_IRRADIANCE_DOMINANT_DIRECTION = true;
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
// Assume using spherical polynomial if the reflection texture is a cube map
|
|
1433
|
+
else if (reflectionTexture.isCube) {
|
|
1434
|
+
defines.USESPHERICALFROMREFLECTIONMAP = true;
|
|
1435
|
+
defines.USEIRRADIANCEMAP = false;
|
|
1436
|
+
defines.USE_IRRADIANCE_DOMINANT_DIRECTION = false;
|
|
1437
|
+
if (this._forceIrradianceInFragment ||
|
|
1438
|
+
this.realTimeFiltering ||
|
|
1439
|
+
this._twoSidedLighting ||
|
|
1440
|
+
engine.getCaps().maxVaryingVectors <= 8 ||
|
|
1441
|
+
this._baseDiffuseRoughnessTexture) {
|
|
1442
|
+
defines.USESPHERICALINVERTEX = false;
|
|
1443
|
+
}
|
|
1444
|
+
else {
|
|
1445
|
+
defines.USESPHERICALINVERTEX = true;
|
|
1446
|
+
}
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
}
|
|
1450
|
+
else {
|
|
1451
|
+
defines.REFLECTION = false;
|
|
1452
|
+
defines.REFLECTIONMAP_3D = false;
|
|
1453
|
+
defines.REFLECTIONMAP_SPHERICAL = false;
|
|
1454
|
+
defines.REFLECTIONMAP_PLANAR = false;
|
|
1455
|
+
defines.REFLECTIONMAP_CUBIC = false;
|
|
1456
|
+
defines.USE_LOCAL_REFLECTIONMAP_CUBIC = false;
|
|
1457
|
+
defines.REFLECTIONMAP_PROJECTION = false;
|
|
1458
|
+
defines.REFLECTIONMAP_SKYBOX = false;
|
|
1459
|
+
defines.REFLECTIONMAP_EXPLICIT = false;
|
|
1460
|
+
defines.REFLECTIONMAP_EQUIRECTANGULAR = false;
|
|
1461
|
+
defines.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = false;
|
|
1462
|
+
defines.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = false;
|
|
1463
|
+
defines.INVERTCUBICMAP = false;
|
|
1464
|
+
defines.USESPHERICALFROMREFLECTIONMAP = false;
|
|
1465
|
+
defines.USEIRRADIANCEMAP = false;
|
|
1466
|
+
defines.USE_IRRADIANCE_DOMINANT_DIRECTION = false;
|
|
1467
|
+
defines.USESPHERICALINVERTEX = false;
|
|
1468
|
+
defines.REFLECTIONMAP_OPPOSITEZ = false;
|
|
1469
|
+
defines.LODINREFLECTIONALPHA = false;
|
|
1470
|
+
defines.GAMMAREFLECTION = false;
|
|
1471
|
+
defines.RGBDREFLECTION = false;
|
|
1472
|
+
defines.LINEARSPECULARREFLECTION = false;
|
|
1473
|
+
}
|
|
1284
1474
|
if (this._lightmapTexture && MaterialFlags.LightmapTextureEnabled) {
|
|
1285
1475
|
PrepareDefinesForMergedUV(this._lightmapTexture, defines, "LIGHTMAP");
|
|
1286
1476
|
defines.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap;
|
|
@@ -1493,6 +1683,10 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1493
1683
|
ubo.addUniform("vLightmapInfos", 2);
|
|
1494
1684
|
ubo.addUniform("vReflectivityInfos", 3);
|
|
1495
1685
|
ubo.addUniform("vMicroSurfaceSamplerInfos", 2);
|
|
1686
|
+
ubo.addUniform("vReflectionInfos", 2);
|
|
1687
|
+
ubo.addUniform("vReflectionFilteringInfo", 2);
|
|
1688
|
+
ubo.addUniform("vReflectionPosition", 3);
|
|
1689
|
+
ubo.addUniform("vReflectionSize", 3);
|
|
1496
1690
|
ubo.addUniform("vBumpInfos", 3);
|
|
1497
1691
|
ubo.addUniform("albedoMatrix", 16);
|
|
1498
1692
|
ubo.addUniform("baseWeightMatrix", 16);
|
|
@@ -1505,10 +1699,14 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1505
1699
|
ubo.addUniform("microSurfaceSamplerMatrix", 16);
|
|
1506
1700
|
ubo.addUniform("bumpMatrix", 16);
|
|
1507
1701
|
ubo.addUniform("vTangentSpaceParams", 2);
|
|
1702
|
+
ubo.addUniform("reflectionMatrix", 16);
|
|
1703
|
+
ubo.addUniform("vReflectionColor", 3);
|
|
1508
1704
|
ubo.addUniform("vAlbedoColor", 4);
|
|
1509
1705
|
ubo.addUniform("baseWeight", 1);
|
|
1510
1706
|
ubo.addUniform("baseDiffuseRoughness", 1);
|
|
1511
1707
|
ubo.addUniform("vLightingIntensity", 4);
|
|
1708
|
+
ubo.addUniform("vReflectionMicrosurfaceInfos", 3);
|
|
1709
|
+
ubo.addUniform("vReflectionDominantDirection", 3);
|
|
1512
1710
|
ubo.addUniform("pointSize", 1);
|
|
1513
1711
|
ubo.addUniform("vReflectivityColor", 4);
|
|
1514
1712
|
ubo.addUniform("vEmissiveColor", 3);
|
|
@@ -1519,8 +1717,25 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1519
1717
|
ubo.addUniform("metallicReflectanceMatrix", 16);
|
|
1520
1718
|
ubo.addUniform("vReflectanceInfos", 2);
|
|
1521
1719
|
ubo.addUniform("reflectanceMatrix", 16);
|
|
1720
|
+
ubo.addUniform("vSphericalL00", 3);
|
|
1721
|
+
ubo.addUniform("vSphericalL1_1", 3);
|
|
1722
|
+
ubo.addUniform("vSphericalL10", 3);
|
|
1723
|
+
ubo.addUniform("vSphericalL11", 3);
|
|
1724
|
+
ubo.addUniform("vSphericalL2_2", 3);
|
|
1725
|
+
ubo.addUniform("vSphericalL2_1", 3);
|
|
1726
|
+
ubo.addUniform("vSphericalL20", 3);
|
|
1727
|
+
ubo.addUniform("vSphericalL21", 3);
|
|
1728
|
+
ubo.addUniform("vSphericalL22", 3);
|
|
1729
|
+
ubo.addUniform("vSphericalX", 3);
|
|
1730
|
+
ubo.addUniform("vSphericalY", 3);
|
|
1731
|
+
ubo.addUniform("vSphericalZ", 3);
|
|
1732
|
+
ubo.addUniform("vSphericalXX_ZZ", 3);
|
|
1733
|
+
ubo.addUniform("vSphericalYY_ZZ", 3);
|
|
1734
|
+
ubo.addUniform("vSphericalZZ", 3);
|
|
1735
|
+
ubo.addUniform("vSphericalXY", 3);
|
|
1736
|
+
ubo.addUniform("vSphericalYZ", 3);
|
|
1737
|
+
ubo.addUniform("vSphericalZX", 3);
|
|
1522
1738
|
ubo.addUniform("cameraInfo", 4);
|
|
1523
|
-
PrepareUniformLayoutForIBL(ubo, true, true, true, true, true);
|
|
1524
1739
|
super.buildUniformLayout();
|
|
1525
1740
|
}
|
|
1526
1741
|
/**
|
|
@@ -1593,6 +1808,54 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1593
1808
|
ubo.updateFloat2("vOpacityInfos", this._opacityTexture.coordinatesIndex, this._opacityTexture.level);
|
|
1594
1809
|
BindTextureMatrix(this._opacityTexture, ubo, "opacity");
|
|
1595
1810
|
}
|
|
1811
|
+
if (reflectionTexture && MaterialFlags.ReflectionTextureEnabled) {
|
|
1812
|
+
ubo.updateMatrix("reflectionMatrix", reflectionTexture.getReflectionTextureMatrix());
|
|
1813
|
+
ubo.updateFloat2("vReflectionInfos", reflectionTexture.level * scene.iblIntensity, 0);
|
|
1814
|
+
if (reflectionTexture.boundingBoxSize) {
|
|
1815
|
+
const cubeTexture = reflectionTexture;
|
|
1816
|
+
ubo.updateVector3("vReflectionPosition", cubeTexture.boundingBoxPosition);
|
|
1817
|
+
ubo.updateVector3("vReflectionSize", cubeTexture.boundingBoxSize);
|
|
1818
|
+
}
|
|
1819
|
+
if (this.realTimeFiltering) {
|
|
1820
|
+
const width = reflectionTexture.getSize().width;
|
|
1821
|
+
ubo.updateFloat2("vReflectionFilteringInfo", width, Math.log2(width));
|
|
1822
|
+
}
|
|
1823
|
+
if (!defines.USEIRRADIANCEMAP) {
|
|
1824
|
+
const polynomials = reflectionTexture.sphericalPolynomial;
|
|
1825
|
+
if (defines.USESPHERICALFROMREFLECTIONMAP && polynomials) {
|
|
1826
|
+
if (defines.SPHERICAL_HARMONICS) {
|
|
1827
|
+
const preScaledHarmonics = polynomials.preScaledHarmonics;
|
|
1828
|
+
ubo.updateVector3("vSphericalL00", preScaledHarmonics.l00);
|
|
1829
|
+
ubo.updateVector3("vSphericalL1_1", preScaledHarmonics.l1_1);
|
|
1830
|
+
ubo.updateVector3("vSphericalL10", preScaledHarmonics.l10);
|
|
1831
|
+
ubo.updateVector3("vSphericalL11", preScaledHarmonics.l11);
|
|
1832
|
+
ubo.updateVector3("vSphericalL2_2", preScaledHarmonics.l2_2);
|
|
1833
|
+
ubo.updateVector3("vSphericalL2_1", preScaledHarmonics.l2_1);
|
|
1834
|
+
ubo.updateVector3("vSphericalL20", preScaledHarmonics.l20);
|
|
1835
|
+
ubo.updateVector3("vSphericalL21", preScaledHarmonics.l21);
|
|
1836
|
+
ubo.updateVector3("vSphericalL22", preScaledHarmonics.l22);
|
|
1837
|
+
}
|
|
1838
|
+
else {
|
|
1839
|
+
ubo.updateFloat3("vSphericalX", polynomials.x.x, polynomials.x.y, polynomials.x.z);
|
|
1840
|
+
ubo.updateFloat3("vSphericalY", polynomials.y.x, polynomials.y.y, polynomials.y.z);
|
|
1841
|
+
ubo.updateFloat3("vSphericalZ", polynomials.z.x, polynomials.z.y, polynomials.z.z);
|
|
1842
|
+
ubo.updateFloat3("vSphericalXX_ZZ", polynomials.xx.x - polynomials.zz.x, polynomials.xx.y - polynomials.zz.y, polynomials.xx.z - polynomials.zz.z);
|
|
1843
|
+
ubo.updateFloat3("vSphericalYY_ZZ", polynomials.yy.x - polynomials.zz.x, polynomials.yy.y - polynomials.zz.y, polynomials.yy.z - polynomials.zz.z);
|
|
1844
|
+
ubo.updateFloat3("vSphericalZZ", polynomials.zz.x, polynomials.zz.y, polynomials.zz.z);
|
|
1845
|
+
ubo.updateFloat3("vSphericalXY", polynomials.xy.x, polynomials.xy.y, polynomials.xy.z);
|
|
1846
|
+
ubo.updateFloat3("vSphericalYZ", polynomials.yz.x, polynomials.yz.y, polynomials.yz.z);
|
|
1847
|
+
ubo.updateFloat3("vSphericalZX", polynomials.zx.x, polynomials.zx.y, polynomials.zx.z);
|
|
1848
|
+
}
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
else {
|
|
1852
|
+
// If we're using an irradiance map with a dominant direction assigned, set it.
|
|
1853
|
+
if (defines.USEIRRADIANCEMAP && defines.USE_IRRADIANCE_DOMINANT_DIRECTION) {
|
|
1854
|
+
ubo.updateVector3("vReflectionDominantDirection", reflectionTexture.irradianceTexture._dominantDirection);
|
|
1855
|
+
}
|
|
1856
|
+
}
|
|
1857
|
+
ubo.updateFloat3("vReflectionMicrosurfaceInfos", reflectionTexture.getSize().width, reflectionTexture.lodGenerationScale, reflectionTexture.lodGenerationOffset);
|
|
1858
|
+
}
|
|
1596
1859
|
if (this._emissiveTexture && MaterialFlags.EmissiveTextureEnabled) {
|
|
1597
1860
|
ubo.updateFloat2("vEmissiveInfos", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level);
|
|
1598
1861
|
BindTextureMatrix(this._emissiveTexture, ubo, "emissive");
|
|
@@ -1633,7 +1896,6 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1633
1896
|
ubo.updateFloat2("vTangentSpaceParams", this._invertNormalMapX ? -1.0 : 1.0, this._invertNormalMapY ? -1.0 : 1.0);
|
|
1634
1897
|
}
|
|
1635
1898
|
}
|
|
1636
|
-
BindIBLParameters(scene, defines, ubo, reflectionTexture, this.realTimeFiltering, true, true, true, true, true, this._reflectionColor);
|
|
1637
1899
|
}
|
|
1638
1900
|
// Point size
|
|
1639
1901
|
if (this.pointsCloud) {
|
|
@@ -1658,6 +1920,7 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1658
1920
|
ubo.updateColor4("vReflectivityColor", this._reflectivityColor, this._microSurface);
|
|
1659
1921
|
}
|
|
1660
1922
|
ubo.updateColor3("vEmissiveColor", MaterialFlags.EmissiveTextureEnabled ? this._emissiveColor : Color3.BlackReadOnly);
|
|
1923
|
+
ubo.updateColor3("vReflectionColor", this._reflectionColor);
|
|
1661
1924
|
if (!defines.SS_REFRACTION && this.subSurface?._linkRefractionWithTransparency) {
|
|
1662
1925
|
ubo.updateColor4("vAlbedoColor", this._albedoColor, 1);
|
|
1663
1926
|
}
|
|
@@ -1694,7 +1957,24 @@ export class PBRBaseMaterial extends PBRBaseMaterialBase {
|
|
|
1694
1957
|
if (this._opacityTexture && MaterialFlags.OpacityTextureEnabled) {
|
|
1695
1958
|
ubo.setTexture("opacitySampler", this._opacityTexture);
|
|
1696
1959
|
}
|
|
1697
|
-
|
|
1960
|
+
if (reflectionTexture && MaterialFlags.ReflectionTextureEnabled) {
|
|
1961
|
+
if (defines.LODBASEDMICROSFURACE) {
|
|
1962
|
+
ubo.setTexture("reflectionSampler", reflectionTexture);
|
|
1963
|
+
}
|
|
1964
|
+
else {
|
|
1965
|
+
ubo.setTexture("reflectionSampler", reflectionTexture._lodTextureMid || reflectionTexture);
|
|
1966
|
+
ubo.setTexture("reflectionSamplerLow", reflectionTexture._lodTextureLow || reflectionTexture);
|
|
1967
|
+
ubo.setTexture("reflectionSamplerHigh", reflectionTexture._lodTextureHigh || reflectionTexture);
|
|
1968
|
+
}
|
|
1969
|
+
if (defines.USEIRRADIANCEMAP) {
|
|
1970
|
+
ubo.setTexture("irradianceSampler", reflectionTexture.irradianceTexture);
|
|
1971
|
+
}
|
|
1972
|
+
//if realtime filtering and using CDF maps, set them.
|
|
1973
|
+
const cdfGenerator = this.getScene().iblCdfGenerator;
|
|
1974
|
+
if (this.realTimeFiltering && cdfGenerator) {
|
|
1975
|
+
ubo.setTexture("icdfSampler", cdfGenerator.getIcdfTexture());
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1698
1978
|
if (defines.ENVIRONMENTBRDF) {
|
|
1699
1979
|
ubo.setTexture("environmentBrdfSampler", this._environmentBRDFTexture);
|
|
1700
1980
|
}
|
|
@@ -2023,6 +2303,9 @@ PBRBaseMaterial.LIGHTFALLOFF_STANDARD = 2;
|
|
|
2023
2303
|
* False by default. This is mostly meant for backward compatibility.
|
|
2024
2304
|
*/
|
|
2025
2305
|
PBRBaseMaterial.ForceGLSL = false;
|
|
2306
|
+
__decorate([
|
|
2307
|
+
serializeAsImageProcessingConfiguration()
|
|
2308
|
+
], PBRBaseMaterial.prototype, "_imageProcessingConfiguration", void 0);
|
|
2026
2309
|
__decorate([
|
|
2027
2310
|
expandToProperty("_markAllSubMeshesAsMiscDirty")
|
|
2028
2311
|
], PBRBaseMaterial.prototype, "debugMode", void 0);
|