@babylonjs/core 8.6.1 → 8.6.2
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/Collisions/gpuPicker.d.ts +1 -0
- package/Collisions/gpuPicker.js +14 -9
- package/Collisions/gpuPicker.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/constants.d.ts +12 -0
- package/Engines/constants.js +12 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/webgpuEngine.js +5 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.d.ts +6 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +4 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +5 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +23 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +6 -0
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +24 -4
- package/Materials/PBR/pbrBaseMaterial.js +83 -8
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.d.ts +17 -1
- package/Materials/PBR/pbrMaterial.js +21 -0
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +5 -0
- package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
- package/Materials/Textures/baseTexture.d.ts +8 -0
- package/Materials/Textures/baseTexture.js +7 -0
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/materialFlags.d.ts +6 -0
- package/Materials/materialFlags.js +14 -0
- package/Materials/materialFlags.js.map +1 -1
- package/Misc/assetsManager.js +13 -23
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/minMaxReducer.d.ts +1 -0
- package/Misc/minMaxReducer.js +3 -2
- package/Misc/minMaxReducer.js.map +1 -1
- package/Offline/database.js +25 -6
- package/Offline/database.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +1 -1
- package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
- package/Rendering/iblCdfGenerator.d.ts +12 -0
- package/Rendering/iblCdfGenerator.js +67 -3
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Rendering/iblCdfGeneratorSceneComponent.js +4 -0
- package/Rendering/iblCdfGeneratorSceneComponent.js.map +1 -1
- package/Rendering/index.d.ts +2 -0
- package/Rendering/index.js +2 -0
- package/Rendering/index.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +29 -9
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +4 -3
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +21 -0
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +2 -2
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js +22 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js +11 -2
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +16 -3
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +4 -4
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +8 -2
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +2 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +6 -2
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/hdrIrradianceFiltering.fragment.js +1 -1
- package/Shaders/hdrIrradianceFiltering.fragment.js.map +1 -1
- package/Shaders/iblDominantDirection.fragment.d.ts +9 -0
- package/Shaders/iblDominantDirection.fragment.js +22 -0
- package/Shaders/iblDominantDirection.fragment.js.map +1 -0
- package/Shaders/pbr.fragment.js +17 -3
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +8 -2
- package/Shaders/pbr.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +28 -8
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightFragment.js +6 -5
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +21 -0
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js +2 -2
- package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +23 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +11 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +19 -3
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +4 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js +2 -1
- package/ShadersWGSL/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/hdrIrradianceFiltering.fragment.js +1 -1
- package/ShadersWGSL/hdrIrradianceFiltering.fragment.js.map +1 -1
- package/ShadersWGSL/iblDominantDirection.fragment.d.ts +9 -0
- package/ShadersWGSL/iblDominantDirection.fragment.js +22 -0
- package/ShadersWGSL/iblDominantDirection.fragment.js.map +1 -0
- package/ShadersWGSL/minmaxRedux.fragment.d.ts +5 -0
- package/ShadersWGSL/minmaxRedux.fragment.js +32 -0
- package/ShadersWGSL/minmaxRedux.fragment.js.map +1 -0
- package/ShadersWGSL/pbr.fragment.js +19 -5
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/pbr.vertex.js +8 -2
- package/ShadersWGSL/pbr.vertex.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,12 @@ export interface IFlowGraphForLoopBlockConfiguration extends IFlowGraphBlockConf
|
|
|
14
14
|
* if not set will default to 0
|
|
15
15
|
*/
|
|
16
16
|
initialIndex?: FlowGraphNumber;
|
|
17
|
+
/**
|
|
18
|
+
* If set to true, the index of the case will be incremented when the loop is done.
|
|
19
|
+
* This will result that the index will equal endIndex when the loop finished its work.
|
|
20
|
+
* This is the default behavior in glTF interactivity
|
|
21
|
+
*/
|
|
22
|
+
incrementIndexWhenLoopDone?: boolean;
|
|
17
23
|
}
|
|
18
24
|
/**
|
|
19
25
|
* Block that executes an action in a loop.
|
|
@@ -28,10 +28,13 @@ export class FlowGraphForLoopBlock extends FlowGraphExecutionBlockWithOutSignal
|
|
|
28
28
|
this.index.setValue(new FlowGraphInteger(i), context);
|
|
29
29
|
this.executionFlow._activateSignal(context);
|
|
30
30
|
endIndex = getNumericValue(this.endIndex.getValue(context));
|
|
31
|
-
if (i > FlowGraphForLoopBlock.MaxLoopIterations) {
|
|
31
|
+
if (i > FlowGraphForLoopBlock.MaxLoopIterations * step) {
|
|
32
32
|
break;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
+
if (this.config?.incrementIndexWhenLoopDone) {
|
|
36
|
+
this.index.setValue(new FlowGraphInteger(getNumericValue(this.index.getValue(context)) + step), context);
|
|
37
|
+
}
|
|
35
38
|
this.completed._activateSignal(context);
|
|
36
39
|
}
|
|
37
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowGraphForLoopBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oCAAoC,EAAE,yDAA4D;AAE3G,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,OAAO,EAAE,eAAe,EAAE,0BAA6B;AACvD,OAAO,EAAE,gBAAgB,EAAE,iDAAoD;
|
|
1
|
+
{"version":3,"file":"flowGraphForLoopBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oCAAoC,EAAE,yDAA4D;AAE3G,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,OAAO,EAAE,eAAe,EAAE,0BAA6B;AACvD,OAAO,EAAE,gBAAgB,EAAE,iDAAoD;AAmB/E;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,oCAAoC;IAiC3E,YAAmB,MAA4C;QAC3D,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1I,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,OAAyB;QACrC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC5C,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,qBAAqB,CAAC,iBAAiB,GAAG,IAAI,EAAE,CAAC;gBACrD,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7G,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACa,YAAY;QACxB,iEAAmC;IACvC,CAAC;;AA1ED;;;GAGG;AACW,uCAAiB,GAAG,IAAI,CAAC;AAwE3C,aAAa,4DAA8B,qBAAqB,CAAC,CAAC","sourcesContent":["import type { FlowGraphSignalConnection } from \"../../../flowGraphSignalConnection\";\r\nimport type { FlowGraphDataConnection } from \"../../../flowGraphDataConnection\";\r\nimport { FlowGraphExecutionBlockWithOutSignal } from \"core/FlowGraph/flowGraphExecutionBlockWithOutSignal\";\r\nimport type { FlowGraphContext } from \"../../../flowGraphContext\";\r\nimport { RichTypeAny, RichTypeFlowGraphInteger, RichTypeNumber } from \"../../../flowGraphRichTypes\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport type { IFlowGraphBlockConfiguration } from \"../../../flowGraphBlock\";\r\nimport { FlowGraphBlockNames } from \"../../flowGraphBlockNames\";\r\nimport type { FlowGraphNumber } from \"core/FlowGraph/utils\";\r\nimport { getNumericValue } from \"core/FlowGraph/utils\";\r\nimport { FlowGraphInteger } from \"core/FlowGraph/CustomTypes/flowGraphInteger\";\r\n\r\n/**\r\n * Configuration for the For Loop block.\r\n */\r\nexport interface IFlowGraphForLoopBlockConfiguration extends IFlowGraphBlockConfiguration {\r\n /**\r\n * The initial index of the loop.\r\n * if not set will default to 0\r\n */\r\n initialIndex?: FlowGraphNumber;\r\n\r\n /**\r\n * If set to true, the index of the case will be incremented when the loop is done.\r\n * This will result that the index will equal endIndex when the loop finished its work.\r\n * This is the default behavior in glTF interactivity\r\n */\r\n incrementIndexWhenLoopDone?: boolean;\r\n}\r\n/**\r\n * Block that executes an action in a loop.\r\n */\r\nexport class FlowGraphForLoopBlock extends FlowGraphExecutionBlockWithOutSignal {\r\n /**\r\n * The maximum number of iterations allowed for the loop.\r\n * If the loop exceeds this number, it will stop. This number is configurable to avoid infinite loops.\r\n */\r\n public static MaxLoopIterations = 1000;\r\n /**\r\n * Input connection: The start index of the loop.\r\n */\r\n public readonly startIndex: FlowGraphDataConnection<FlowGraphNumber>;\r\n /**\r\n * Input connection: The end index of the loop.\r\n */\r\n public readonly endIndex: FlowGraphDataConnection<FlowGraphNumber>;\r\n /**\r\n * Input connection: The step of the loop.\r\n */\r\n public readonly step: FlowGraphDataConnection<number>;\r\n /**\r\n * Output connection: The current index of the loop.\r\n */\r\n public readonly index: FlowGraphDataConnection<FlowGraphInteger>;\r\n /**\r\n * Output connection: The signal that is activated when the loop body is executed.\r\n */\r\n public readonly executionFlow: FlowGraphSignalConnection;\r\n\r\n /**\r\n * Output connection: The completed signal. Triggered when condition is false.\r\n * No out signal is available.\r\n */\r\n public readonly completed: FlowGraphSignalConnection;\r\n\r\n public constructor(config?: IFlowGraphForLoopBlockConfiguration) {\r\n super(config);\r\n\r\n this.startIndex = this.registerDataInput(\"startIndex\", RichTypeAny, 0);\r\n this.endIndex = this.registerDataInput(\"endIndex\", RichTypeAny);\r\n this.step = this.registerDataInput(\"step\", RichTypeNumber, 1);\r\n\r\n this.index = this.registerDataOutput(\"index\", RichTypeFlowGraphInteger, new FlowGraphInteger(getNumericValue(config?.initialIndex ?? 0)));\r\n this.executionFlow = this._registerSignalOutput(\"executionFlow\");\r\n this.completed = this._registerSignalOutput(\"completed\");\r\n\r\n this._unregisterSignalOutput(\"out\");\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _execute(context: FlowGraphContext): void {\r\n const index = getNumericValue(this.startIndex.getValue(context));\r\n const step = this.step.getValue(context);\r\n let endIndex = getNumericValue(this.endIndex.getValue(context));\r\n for (let i = index; i < endIndex; i += step) {\r\n this.index.setValue(new FlowGraphInteger(i), context);\r\n this.executionFlow._activateSignal(context);\r\n endIndex = getNumericValue(this.endIndex.getValue(context));\r\n if (i > FlowGraphForLoopBlock.MaxLoopIterations * step) {\r\n break;\r\n }\r\n }\r\n\r\n if (this.config?.incrementIndexWhenLoopDone) {\r\n this.index.setValue(new FlowGraphInteger(getNumericValue(this.index.getValue(context)) + step), context);\r\n }\r\n\r\n this.completed._activateSignal(context);\r\n }\r\n\r\n /**\r\n * @returns class name of the block.\r\n */\r\n public override getClassName(): string {\r\n return FlowGraphBlockNames.ForLoop;\r\n }\r\n}\r\nRegisterClass(FlowGraphBlockNames.ForLoop, FlowGraphForLoopBlock);\r\n"]}
|
|
@@ -28,6 +28,7 @@ export declare class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
|
|
|
28
28
|
private _metallicReflectanceColor;
|
|
29
29
|
private _metallicF0Factor;
|
|
30
30
|
private _vMetallicReflectanceFactorsName;
|
|
31
|
+
private _baseDiffuseRoughnessName;
|
|
31
32
|
/**
|
|
32
33
|
* Create a new ReflectionBlock
|
|
33
34
|
* @param name defines the block name
|
|
@@ -89,6 +90,10 @@ export declare class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
|
|
|
89
90
|
* Quality switch for realtime filtering
|
|
90
91
|
*/
|
|
91
92
|
realTimeFilteringQuality: number;
|
|
93
|
+
/**
|
|
94
|
+
* Base Diffuse Model
|
|
95
|
+
*/
|
|
96
|
+
baseDiffuseModel: number;
|
|
92
97
|
/**
|
|
93
98
|
* Defines if the material uses energy conservation.
|
|
94
99
|
*/
|
|
@@ -120,6 +120,10 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
|
|
|
120
120
|
* Quality switch for realtime filtering
|
|
121
121
|
*/
|
|
122
122
|
this.realTimeFilteringQuality = 8;
|
|
123
|
+
/**
|
|
124
|
+
* Base Diffuse Model
|
|
125
|
+
*/
|
|
126
|
+
this.baseDiffuseModel = 0;
|
|
123
127
|
/**
|
|
124
128
|
* Defines if the material uses energy conservation.
|
|
125
129
|
*/
|
|
@@ -512,6 +516,7 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
|
|
|
512
516
|
else {
|
|
513
517
|
defines.setValue("NUM_SAMPLES", "" + this.realTimeFilteringQuality, true);
|
|
514
518
|
}
|
|
519
|
+
defines.setValue("BASE_DIFFUSE_MODEL", this.baseDiffuseModel, true);
|
|
515
520
|
// Advanced
|
|
516
521
|
defines.setValue("BRDF_V_HEIGHT_CORRELATED", true);
|
|
517
522
|
defines.setValue("MS_BRDF_ENERGY_CONSERVATION", this.useEnergyConservation, true);
|
|
@@ -707,6 +712,8 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
|
|
|
707
712
|
const aoIntensity = "1.";
|
|
708
713
|
this._vMetallicReflectanceFactorsName = state._getFreeVariableName("vMetallicReflectanceFactors");
|
|
709
714
|
state._emitUniformFromString(this._vMetallicReflectanceFactorsName, NodeMaterialBlockConnectionPointTypes.Vector4);
|
|
715
|
+
this._baseDiffuseRoughnessName = state._getFreeVariableName("baseDiffuseRoughness");
|
|
716
|
+
state._emitUniformFromString(this._baseDiffuseRoughnessName, NodeMaterialBlockConnectionPointTypes.Float);
|
|
710
717
|
code += `${state._declareLocalVar("baseColor", NodeMaterialBlockConnectionPointTypes.Vector3)} = surfaceAlbedo;
|
|
711
718
|
${isWebGPU ? "let" : `vec4${state.fSuffix}`} vReflectivityColor = vec4${state.fSuffix}(${this.metallic.associatedVariableName}, ${this.roughness.associatedVariableName}, ${this.indexOfRefraction.associatedVariableName || "1.5"}, 1.0);
|
|
712
719
|
reflectivityOut = reflectivityBlock(
|
|
@@ -714,6 +721,11 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
|
|
|
714
721
|
#ifdef METALLICWORKFLOW
|
|
715
722
|
, surfaceAlbedo
|
|
716
723
|
, ${(isWebGPU ? "uniforms." : "") + this._vMetallicReflectanceFactorsName}
|
|
724
|
+
#endif
|
|
725
|
+
, ${(isWebGPU ? "uniforms." : "") + this._baseDiffuseRoughnessName}
|
|
726
|
+
#ifdef BASE_DIFFUSE_ROUGHNESS
|
|
727
|
+
, 0.
|
|
728
|
+
, vec2${state.fSuffix}(0., 0.)
|
|
717
729
|
#endif
|
|
718
730
|
#ifdef REFLECTIVITY
|
|
719
731
|
, vec3${state.fSuffix}(0., 0., ${aoIntensity})
|
|
@@ -729,6 +741,7 @@ export class PBRMetallicRoughnessBlock extends NodeMaterialBlock {
|
|
|
729
741
|
|
|
730
742
|
${state._declareLocalVar("microSurface", NodeMaterialBlockConnectionPointTypes.Float)} = reflectivityOut.microSurface;
|
|
731
743
|
${state._declareLocalVar("roughness", NodeMaterialBlockConnectionPointTypes.Float)} = reflectivityOut.roughness;
|
|
744
|
+
${state._declareLocalVar("diffuseRoughness", NodeMaterialBlockConnectionPointTypes.Float)} = reflectivityOut.diffuseRoughness;
|
|
732
745
|
|
|
733
746
|
#ifdef METALLICWORKFLOW
|
|
734
747
|
surfaceAlbedo = reflectivityOut.surfaceAlbedo;
|
|
@@ -1194,6 +1207,16 @@ __decorate([
|
|
|
1194
1207
|
],
|
|
1195
1208
|
})
|
|
1196
1209
|
], PBRMetallicRoughnessBlock.prototype, "realTimeFilteringQuality", void 0);
|
|
1210
|
+
__decorate([
|
|
1211
|
+
editableInPropertyPage("Diffuse Model", 4 /* PropertyTypeForEdition.List */, "RENDERING", {
|
|
1212
|
+
notifiers: { update: true },
|
|
1213
|
+
options: [
|
|
1214
|
+
{ label: "Lambert", value: 2 },
|
|
1215
|
+
{ label: "Burley", value: 1 },
|
|
1216
|
+
{ label: "Oren-Nayar", value: 0 },
|
|
1217
|
+
],
|
|
1218
|
+
})
|
|
1219
|
+
], PBRMetallicRoughnessBlock.prototype, "baseDiffuseModel", void 0);
|
|
1197
1220
|
__decorate([
|
|
1198
1221
|
editableInPropertyPage("Energy Conservation", 0 /* PropertyTypeForEdition.Boolean */, "ADVANCED", { notifiers: { update: true } })
|
|
1199
1222
|
], PBRMetallicRoughnessBlock.prototype, "useEnergyConservation", void 0);
|