@babylonjs/core 7.41.1 → 7.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animation.js +1 -1
- package/Animations/animation.js.map +1 -1
- package/Culling/Helper/computeShaderBoundingHelper.js +3 -4
- package/Culling/Helper/computeShaderBoundingHelper.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.js +27 -64
- package/Culling/Helper/transformFeedbackBoundingHelper.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.js +3 -2
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -0
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -0
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +6 -1
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.d.ts +64 -0
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js +147 -0
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +0 -15
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.d.ts +4 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +9 -0
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.d.ts +1 -6
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js +0 -13
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js +0 -1
- package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +1 -0
- package/FrameGraph/Node/Blocks/index.js +1 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +17 -0
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Passes/renderPass.d.ts +0 -8
- package/FrameGraph/Passes/renderPass.js +0 -10
- package/FrameGraph/Passes/renderPass.js.map +1 -1
- package/FrameGraph/Tasks/Layers/glowLayerTask.d.ts +57 -0
- package/FrameGraph/Tasks/Layers/glowLayerTask.js +173 -0
- package/FrameGraph/Tasks/Layers/glowLayerTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js +7 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js +5 -5
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js +12 -4
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +1 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +0 -8
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +1 -17
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +3 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +4 -6
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +20 -22
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.d.ts +7 -1
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js +21 -5
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js +4 -6
- package/FrameGraph/Tasks/Rendering/taaObjectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js +1 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js.map +1 -1
- package/FrameGraph/frameGraph.js +22 -11
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +2 -1
- package/FrameGraph/frameGraphRenderContext.js +2 -1
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/frameGraphTask.d.ts +11 -1
- package/FrameGraph/frameGraphTask.js +8 -0
- package/FrameGraph/frameGraphTask.js.map +1 -1
- package/FrameGraph/frameGraphTextureManager.d.ts +8 -2
- package/FrameGraph/frameGraphTextureManager.js +10 -4
- package/FrameGraph/frameGraphTextureManager.js.map +1 -1
- package/FrameGraph/index.d.ts +1 -0
- package/FrameGraph/index.js +1 -0
- package/FrameGraph/index.js.map +1 -1
- package/Layers/effectLayer.d.ts +32 -33
- package/Layers/effectLayer.js +144 -530
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +14 -41
- package/Layers/glowLayer.js +92 -178
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +0 -1
- package/Layers/highlightLayer.js +0 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/index.d.ts +2 -0
- package/Layers/index.js +2 -0
- package/Layers/index.js.map +1 -1
- package/Layers/thinEffectLayer.d.ts +230 -0
- package/Layers/thinEffectLayer.js +734 -0
- package/Layers/thinEffectLayer.js.map +1 -0
- package/Layers/thinGlowLayer.d.ts +141 -0
- package/Layers/thinGlowLayer.js +292 -0
- package/Layers/thinGlowLayer.js.map +1 -0
- package/Lights/Shadows/shadowGenerator.js +40 -19
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js +17 -11
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js +18 -12
- package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +34 -2
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +34 -24
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +10 -0
- package/Materials/Node/nodeMaterial.js +12 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +5 -0
- package/Materials/PBR/pbrBaseMaterial.js +5 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +12 -0
- package/Materials/Textures/renderTargetTexture.js +29 -8
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/materialHelper.functions.d.ts +17 -1
- package/Materials/materialHelper.functions.js +76 -4
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/shaderMaterial.d.ts +5 -4
- package/Materials/shaderMaterial.js +28 -51
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +5 -0
- package/Materials/standardMaterial.js +5 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/Builders/greasedLineBuilder.d.ts +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +5 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +30 -22
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineBaseMesh.js +1 -0
- package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +1 -2
- package/Meshes/abstractMesh.js +1 -2
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/linesMesh.js +2 -2
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +30 -3
- package/Meshes/mesh.js +56 -29
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/subMesh.js +16 -3
- package/Meshes/subMesh.js.map +1 -1
- package/Misc/fileTools.js +14 -7
- package/Misc/fileTools.js.map +1 -1
- package/Morph/morphTargetManager.d.ts +20 -0
- package/Morph/morphTargetManager.js +31 -1
- package/Morph/morphTargetManager.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +15 -16
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/Rendering/depthRenderer.js +13 -15
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +13 -15
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +9 -2
- package/Rendering/objectRenderer.js +44 -7
- package/Rendering/objectRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +13 -15
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js +16 -4
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +17 -5
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/assetContainer.d.ts +43 -0
- package/assetContainer.js +67 -0
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.js +10 -3
- package/scene.js.map +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Scene, NodeRenderGraphBuildState, FrameGraph, NodeRenderGraphConnectionPoint } from "../../../../index.js";
|
|
2
|
+
import { NodeRenderGraphBlock } from "../../nodeRenderGraphBlock";
|
|
3
|
+
import { FrameGraphGlowLayerTask } from "../../../Tasks/Layers/glowLayerTask.js";
|
|
4
|
+
/**
|
|
5
|
+
* Block that implements the glow layer
|
|
6
|
+
*/
|
|
7
|
+
export declare class NodeRenderGraphGlowLayerBlock extends NodeRenderGraphBlock {
|
|
8
|
+
protected _frameGraphTask: FrameGraphGlowLayerTask;
|
|
9
|
+
/**
|
|
10
|
+
* Gets the frame graph task associated with this block
|
|
11
|
+
*/
|
|
12
|
+
get task(): FrameGraphGlowLayerTask;
|
|
13
|
+
/**
|
|
14
|
+
* Create a new NodeRenderGraphGlowLayerBlock
|
|
15
|
+
* @param name defines the block name
|
|
16
|
+
* @param frameGraph defines the hosting frame graph
|
|
17
|
+
* @param scene defines the hosting scene
|
|
18
|
+
* @param ldrMerge Forces the merge step to be done in ldr (clamp values > 1). Default: false
|
|
19
|
+
*/
|
|
20
|
+
constructor(name: string, frameGraph: FrameGraph, scene: Scene, ldrMerge?: boolean);
|
|
21
|
+
private _createTask;
|
|
22
|
+
/** Forces the merge step to be done in ldr (clamp values > 1). Default: false */
|
|
23
|
+
get ldrMerge(): boolean;
|
|
24
|
+
set ldrMerge(value: boolean);
|
|
25
|
+
/** How big is the kernel of the blur texture */
|
|
26
|
+
get blurKernelSize(): number;
|
|
27
|
+
set blurKernelSize(value: number);
|
|
28
|
+
/** The intensity of the glow */
|
|
29
|
+
get intensity(): number;
|
|
30
|
+
set intensity(value: number);
|
|
31
|
+
/**
|
|
32
|
+
* Gets the current class name
|
|
33
|
+
* @returns the class name
|
|
34
|
+
*/
|
|
35
|
+
getClassName(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Gets the destination texture input component
|
|
38
|
+
*/
|
|
39
|
+
get destination(): NodeRenderGraphConnectionPoint;
|
|
40
|
+
/**
|
|
41
|
+
* Gets the depth texture input component
|
|
42
|
+
*/
|
|
43
|
+
get layer(): NodeRenderGraphConnectionPoint;
|
|
44
|
+
/**
|
|
45
|
+
* Gets the camera input component
|
|
46
|
+
*/
|
|
47
|
+
get camera(): NodeRenderGraphConnectionPoint;
|
|
48
|
+
/**
|
|
49
|
+
* Gets the objects input component
|
|
50
|
+
*/
|
|
51
|
+
get objects(): NodeRenderGraphConnectionPoint;
|
|
52
|
+
/**
|
|
53
|
+
* Gets the dependencies input component
|
|
54
|
+
*/
|
|
55
|
+
get dependencies(): NodeRenderGraphConnectionPoint;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the output component
|
|
58
|
+
*/
|
|
59
|
+
get output(): NodeRenderGraphConnectionPoint;
|
|
60
|
+
protected _buildBlock(state: NodeRenderGraphBuildState): void;
|
|
61
|
+
protected _dumpPropertiesCode(): string;
|
|
62
|
+
serialize(): any;
|
|
63
|
+
_deserialize(serializationObject: any): void;
|
|
64
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { __decorate } from "../../../../tslib.es6.js";
|
|
2
|
+
import { NodeRenderGraphBlock } from "../../nodeRenderGraphBlock.js";
|
|
3
|
+
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
4
|
+
import { NodeRenderGraphBlockConnectionPointTypes } from "../../Types/nodeRenderGraphTypes.js";
|
|
5
|
+
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
6
|
+
import { FrameGraphGlowLayerTask } from "../../../Tasks/Layers/glowLayerTask.js";
|
|
7
|
+
/**
|
|
8
|
+
* Block that implements the glow layer
|
|
9
|
+
*/
|
|
10
|
+
export class NodeRenderGraphGlowLayerBlock extends NodeRenderGraphBlock {
|
|
11
|
+
/**
|
|
12
|
+
* Gets the frame graph task associated with this block
|
|
13
|
+
*/
|
|
14
|
+
get task() {
|
|
15
|
+
return this._frameGraphTask;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a new NodeRenderGraphGlowLayerBlock
|
|
19
|
+
* @param name defines the block name
|
|
20
|
+
* @param frameGraph defines the hosting frame graph
|
|
21
|
+
* @param scene defines the hosting scene
|
|
22
|
+
* @param ldrMerge Forces the merge step to be done in ldr (clamp values > 1). Default: false
|
|
23
|
+
*/
|
|
24
|
+
constructor(name, frameGraph, scene, ldrMerge = false) {
|
|
25
|
+
super(name, frameGraph, scene);
|
|
26
|
+
this._additionalConstructionParameters = [ldrMerge];
|
|
27
|
+
this.registerInput("destination", NodeRenderGraphBlockConnectionPointTypes.Texture);
|
|
28
|
+
this.registerInput("layer", NodeRenderGraphBlockConnectionPointTypes.Texture, true);
|
|
29
|
+
this.registerInput("camera", NodeRenderGraphBlockConnectionPointTypes.Camera);
|
|
30
|
+
this.registerInput("objects", NodeRenderGraphBlockConnectionPointTypes.ObjectList);
|
|
31
|
+
this._addDependenciesInput();
|
|
32
|
+
this.registerOutput("output", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);
|
|
33
|
+
this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);
|
|
34
|
+
this.layer.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);
|
|
35
|
+
this.output._typeConnectionSource = this.destination;
|
|
36
|
+
this._frameGraphTask = new FrameGraphGlowLayerTask(this.name, this._frameGraph, this._scene, { ldrMerge });
|
|
37
|
+
}
|
|
38
|
+
_createTask(ldrMerge) {
|
|
39
|
+
const blurKernelSize = this.blurKernelSize;
|
|
40
|
+
const intensity = this.intensity;
|
|
41
|
+
this._frameGraphTask?.dispose();
|
|
42
|
+
this._frameGraphTask = new FrameGraphGlowLayerTask(this.name, this._frameGraph, this._scene, { ldrMerge });
|
|
43
|
+
this.blurKernelSize = blurKernelSize;
|
|
44
|
+
this.intensity = intensity;
|
|
45
|
+
this._additionalConstructionParameters = [ldrMerge];
|
|
46
|
+
}
|
|
47
|
+
/** Forces the merge step to be done in ldr (clamp values > 1). Default: false */
|
|
48
|
+
get ldrMerge() {
|
|
49
|
+
return this._frameGraphTask.layer.ldrMerge;
|
|
50
|
+
}
|
|
51
|
+
set ldrMerge(value) {
|
|
52
|
+
this._createTask(value);
|
|
53
|
+
}
|
|
54
|
+
/** How big is the kernel of the blur texture */
|
|
55
|
+
get blurKernelSize() {
|
|
56
|
+
return this._frameGraphTask.layer.blurKernelSize;
|
|
57
|
+
}
|
|
58
|
+
set blurKernelSize(value) {
|
|
59
|
+
this._frameGraphTask.layer.blurKernelSize = value;
|
|
60
|
+
}
|
|
61
|
+
/** The intensity of the glow */
|
|
62
|
+
get intensity() {
|
|
63
|
+
return this._frameGraphTask.layer.intensity;
|
|
64
|
+
}
|
|
65
|
+
set intensity(value) {
|
|
66
|
+
this._frameGraphTask.layer.intensity = value;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Gets the current class name
|
|
70
|
+
* @returns the class name
|
|
71
|
+
*/
|
|
72
|
+
getClassName() {
|
|
73
|
+
return "NodeRenderGraphGlowLayerBlock";
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets the destination texture input component
|
|
77
|
+
*/
|
|
78
|
+
get destination() {
|
|
79
|
+
return this._inputs[0];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Gets the depth texture input component
|
|
83
|
+
*/
|
|
84
|
+
get layer() {
|
|
85
|
+
return this._inputs[1];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Gets the camera input component
|
|
89
|
+
*/
|
|
90
|
+
get camera() {
|
|
91
|
+
return this._inputs[2];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Gets the objects input component
|
|
95
|
+
*/
|
|
96
|
+
get objects() {
|
|
97
|
+
return this._inputs[3];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Gets the dependencies input component
|
|
101
|
+
*/
|
|
102
|
+
get dependencies() {
|
|
103
|
+
return this._inputs[4];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Gets the output component
|
|
107
|
+
*/
|
|
108
|
+
get output() {
|
|
109
|
+
return this._outputs[0];
|
|
110
|
+
}
|
|
111
|
+
_buildBlock(state) {
|
|
112
|
+
super._buildBlock(state);
|
|
113
|
+
this.output.value = this._frameGraphTask.outputTexture;
|
|
114
|
+
this._frameGraphTask.destinationTexture = this.destination.connectedPoint?.value;
|
|
115
|
+
this._frameGraphTask.layerTexture = this.layer.connectedPoint?.value;
|
|
116
|
+
this._frameGraphTask.camera = this.camera.connectedPoint?.value;
|
|
117
|
+
this._frameGraphTask.objectList = this.objects.connectedPoint?.value;
|
|
118
|
+
}
|
|
119
|
+
_dumpPropertiesCode() {
|
|
120
|
+
const codes = [];
|
|
121
|
+
codes.push(`${this._codeVariableName}.blurKernelSize = ${this.blurKernelSize};`);
|
|
122
|
+
codes.push(`${this._codeVariableName}.intensity = ${this.intensity};`);
|
|
123
|
+
return super._dumpPropertiesCode() + codes.join("\n");
|
|
124
|
+
}
|
|
125
|
+
serialize() {
|
|
126
|
+
const serializationObject = super.serialize();
|
|
127
|
+
serializationObject.blurKernelSize = this.blurKernelSize;
|
|
128
|
+
serializationObject.intensity = this.intensity;
|
|
129
|
+
return serializationObject;
|
|
130
|
+
}
|
|
131
|
+
_deserialize(serializationObject) {
|
|
132
|
+
super._deserialize(serializationObject);
|
|
133
|
+
this.blurKernelSize = serializationObject.blurKernelSize;
|
|
134
|
+
this.intensity = serializationObject.intensity;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
__decorate([
|
|
138
|
+
editableInPropertyPage("LDR merge", 0 /* PropertyTypeForEdition.Boolean */, "PROPERTIES")
|
|
139
|
+
], NodeRenderGraphGlowLayerBlock.prototype, "ldrMerge", null);
|
|
140
|
+
__decorate([
|
|
141
|
+
editableInPropertyPage("Blur kernel size", 2 /* PropertyTypeForEdition.Int */, "PROPERTIES", { min: 1, max: 256 })
|
|
142
|
+
], NodeRenderGraphGlowLayerBlock.prototype, "blurKernelSize", null);
|
|
143
|
+
__decorate([
|
|
144
|
+
editableInPropertyPage("Intensity", 1 /* PropertyTypeForEdition.Float */, "PROPERTIES", { min: 0, max: 5 })
|
|
145
|
+
], NodeRenderGraphGlowLayerBlock.prototype, "intensity", null);
|
|
146
|
+
RegisterClass("BABYLON.NodeRenderGraphGlowLayerBlock", NodeRenderGraphGlowLayerBlock);
|
|
147
|
+
//# sourceMappingURL=glowLayerBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glowLayerBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Layers/glowLayerBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n Scene,\r\n NodeRenderGraphBuildState,\r\n FrameGraph,\r\n FrameGraphTextureHandle,\r\n FrameGraphObjectList,\r\n Camera,\r\n NodeRenderGraphConnectionPoint,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGlowLayerTask } from \"core/FrameGraph/Tasks/Layers/glowLayerTask\";\r\n\r\n/**\r\n * Block that implements the glow layer\r\n */\r\nexport class NodeRenderGraphGlowLayerBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphGlowLayerTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphGlowLayerBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n * @param ldrMerge Forces the merge step to be done in ldr (clamp values > 1). Default: false\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, ldrMerge = false) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [ldrMerge];\r\n\r\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture);\r\n this.registerInput(\"layer\", NodeRenderGraphBlockConnectionPointTypes.Texture, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);\r\n this.layer.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\r\n\r\n this.output._typeConnectionSource = this.destination;\r\n\r\n this._frameGraphTask = new FrameGraphGlowLayerTask(this.name, this._frameGraph, this._scene, { ldrMerge });\r\n }\r\n\r\n private _createTask(ldrMerge: boolean) {\r\n const blurKernelSize = this.blurKernelSize;\r\n const intensity = this.intensity;\r\n\r\n this._frameGraphTask?.dispose();\r\n\r\n this._frameGraphTask = new FrameGraphGlowLayerTask(this.name, this._frameGraph, this._scene, { ldrMerge });\r\n\r\n this.blurKernelSize = blurKernelSize;\r\n this.intensity = intensity;\r\n\r\n this._additionalConstructionParameters = [ldrMerge];\r\n }\r\n\r\n /** Forces the merge step to be done in ldr (clamp values > 1). Default: false */\r\n @editableInPropertyPage(\"LDR merge\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get ldrMerge() {\r\n return this._frameGraphTask.layer.ldrMerge;\r\n }\r\n\r\n public set ldrMerge(value: boolean) {\r\n this._createTask(value);\r\n }\r\n\r\n /** How big is the kernel of the blur texture */\r\n @editableInPropertyPage(\"Blur kernel size\", PropertyTypeForEdition.Int, \"PROPERTIES\", { min: 1, max: 256 })\r\n public get blurKernelSize() {\r\n return this._frameGraphTask.layer.blurKernelSize;\r\n }\r\n\r\n public set blurKernelSize(value: number) {\r\n this._frameGraphTask.layer.blurKernelSize = value;\r\n }\r\n\r\n /** The intensity of the glow */\r\n @editableInPropertyPage(\"Intensity\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 5 })\r\n public get intensity() {\r\n return this._frameGraphTask.layer.intensity;\r\n }\r\n\r\n public set intensity(value: number) {\r\n this._frameGraphTask.layer.intensity = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphGlowLayerBlock\";\r\n }\r\n\r\n /**\r\n * Gets the destination texture input component\r\n */\r\n public get destination(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the depth texture input component\r\n */\r\n public get layer(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the dependencies input component\r\n */\r\n public get dependencies(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture;\r\n\r\n this._frameGraphTask.destinationTexture = this.destination.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.layerTexture = this.layer.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.blurKernelSize = ${this.blurKernelSize};`);\r\n codes.push(`${this._codeVariableName}.intensity = ${this.intensity};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.blurKernelSize = this.blurKernelSize;\r\n serializationObject.intensity = this.intensity;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.blurKernelSize = serializationObject.blurKernelSize;\r\n this.intensity = serializationObject.intensity;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphGlowLayerBlock\", NodeRenderGraphGlowLayerBlock);\r\n"]}
|
|
@@ -112,21 +112,6 @@ export class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock
|
|
|
112
112
|
this._frameGraphTask.depthTexture = this.depth.connectedPoint?.value;
|
|
113
113
|
this._frameGraphTask.camera = this.camera.connectedPoint?.value;
|
|
114
114
|
this._frameGraphTask.objectList = this.objects.connectedPoint?.value;
|
|
115
|
-
this._frameGraphTask.dependencies = [];
|
|
116
|
-
const dependenciesConnectedPoint = this.dependencies.connectedPoint;
|
|
117
|
-
if (dependenciesConnectedPoint) {
|
|
118
|
-
if (dependenciesConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {
|
|
119
|
-
const container = dependenciesConnectedPoint.ownerBlock;
|
|
120
|
-
container.inputs.forEach((input) => {
|
|
121
|
-
if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsTextureHandle(input.connectedPoint.value)) {
|
|
122
|
-
this._frameGraphTask.dependencies.push(input.connectedPoint.value);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
else if (NodeRenderGraphConnectionPoint.IsTextureHandle(dependenciesConnectedPoint.value)) {
|
|
127
|
-
this._frameGraphTask.dependencies[0] = dependenciesConnectedPoint.value;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
115
|
this._frameGraphTask.shadowGenerators = [];
|
|
131
116
|
const shadowGeneratorsConnectedPoint = this.shadowGenerators.connectedPoint;
|
|
132
117
|
if (shadowGeneratorsConnectedPoint) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n Scene,\r\n NodeRenderGraphBuildState,\r\n FrameGraph,\r\n FrameGraphTextureHandle,\r\n FrameGraphObjectList,\r\n Camera,\r\n FrameGraphObjectRendererTask,\r\n NodeRenderGraphResourceContainerBlock,\r\n FrameGraphShadowGeneratorTask,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { NodeRenderGraphConnectionPoint } from \"../../nodeRenderGraphBlockConnectionPoint\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphObjectRendererTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseObjectRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture);\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n this.registerInput(\"shadowGenerators\", NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator, true);\r\n\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);\r\n this.depth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment);\r\n this.shadowGenerators.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.ResourceContainer);\r\n\r\n this.output._typeConnectionSource = this.destination;\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseObjectRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the destination texture input component\r\n */\r\n public get destination(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the dependencies input component\r\n */\r\n public get dependencies(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the shadowGenerators input component\r\n */\r\n public get shadowGenerators(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture; // the value of the outputDepth connection point is the \"outputDepth\" texture of the task\r\n\r\n this._frameGraphTask.destinationTexture = this.destination.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.dependencies = [];\r\n\r\n const dependenciesConnectedPoint = this.dependencies.connectedPoint;\r\n if (dependenciesConnectedPoint) {\r\n if (dependenciesConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {\r\n const container = dependenciesConnectedPoint.ownerBlock as NodeRenderGraphResourceContainerBlock;\r\n container.inputs.forEach((input) => {\r\n if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsTextureHandle(input.connectedPoint.value)) {\r\n this._frameGraphTask.dependencies!.push(input.connectedPoint.value as FrameGraphTextureHandle);\r\n }\r\n });\r\n } else if (NodeRenderGraphConnectionPoint.IsTextureHandle(dependenciesConnectedPoint.value)) {\r\n this._frameGraphTask.dependencies[0] = dependenciesConnectedPoint.value as FrameGraphTextureHandle;\r\n }\r\n }\r\n\r\n this._frameGraphTask.shadowGenerators = [];\r\n\r\n const shadowGeneratorsConnectedPoint = this.shadowGenerators.connectedPoint;\r\n if (shadowGeneratorsConnectedPoint) {\r\n if (shadowGeneratorsConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {\r\n const container = shadowGeneratorsConnectedPoint.ownerBlock as NodeRenderGraphResourceContainerBlock;\r\n container.inputs.forEach((input) => {\r\n if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsShadowGenerator(input.connectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators!.push(input.connectedPoint.value as FrameGraphShadowGeneratorTask);\r\n }\r\n });\r\n } else if (NodeRenderGraphConnectionPoint.IsShadowGenerator(shadowGeneratorsConnectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators[0] = shadowGeneratorsConnectedPoint.value as FrameGraphShadowGeneratorTask;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"baseObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n Scene,\r\n NodeRenderGraphBuildState,\r\n FrameGraph,\r\n FrameGraphTextureHandle,\r\n FrameGraphObjectList,\r\n Camera,\r\n FrameGraphObjectRendererTask,\r\n NodeRenderGraphResourceContainerBlock,\r\n FrameGraphShadowGeneratorTask,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { NodeRenderGraphConnectionPoint } from \"../../nodeRenderGraphBlockConnectionPoint\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseObjectRendererBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphObjectRendererTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseObjectRendererBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"destination\", NodeRenderGraphBlockConnectionPointTypes.Texture);\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n this.registerInput(\"shadowGenerators\", NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator, true);\r\n\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this.destination.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBufferDepthStencil);\r\n this.depth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment);\r\n this.shadowGenerators.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.ResourceContainer);\r\n\r\n this.output._typeConnectionSource = this.destination;\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseObjectRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the destination texture input component\r\n */\r\n public get destination(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n /**\r\n * Gets the dependencies input component\r\n */\r\n public get dependencies(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[4];\r\n }\r\n\r\n /**\r\n * Gets the shadowGenerators input component\r\n */\r\n public get shadowGenerators(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[5];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n\r\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture; // the value of the outputDepth connection point is the \"outputDepth\" texture of the task\r\n\r\n this._frameGraphTask.destinationTexture = this.destination.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.shadowGenerators = [];\r\n\r\n const shadowGeneratorsConnectedPoint = this.shadowGenerators.connectedPoint;\r\n if (shadowGeneratorsConnectedPoint) {\r\n if (shadowGeneratorsConnectedPoint.type === NodeRenderGraphBlockConnectionPointTypes.ResourceContainer) {\r\n const container = shadowGeneratorsConnectedPoint.ownerBlock as NodeRenderGraphResourceContainerBlock;\r\n container.inputs.forEach((input) => {\r\n if (input.connectedPoint && input.connectedPoint.value !== undefined && NodeRenderGraphConnectionPoint.IsShadowGenerator(input.connectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators!.push(input.connectedPoint.value as FrameGraphShadowGeneratorTask);\r\n }\r\n });\r\n } else if (NodeRenderGraphConnectionPoint.IsShadowGenerator(shadowGeneratorsConnectedPoint.value)) {\r\n this._frameGraphTask.shadowGenerators[0] = shadowGeneratorsConnectedPoint.value as FrameGraphShadowGeneratorTask;\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n }\r\n}\r\n"]}
|
|
@@ -62,6 +62,10 @@ export declare class NodeRenderGraphBaseShadowGeneratorBlock extends NodeRenderG
|
|
|
62
62
|
* Gets the objects input component
|
|
63
63
|
*/
|
|
64
64
|
get objects(): NodeRenderGraphConnectionPoint;
|
|
65
|
+
/**
|
|
66
|
+
* Gets the camera input component
|
|
67
|
+
*/
|
|
68
|
+
get camera(): NodeRenderGraphConnectionPoint;
|
|
65
69
|
/**
|
|
66
70
|
* Gets the shadow generator component
|
|
67
71
|
*/
|
|
@@ -23,6 +23,8 @@ export class NodeRenderGraphBaseShadowGeneratorBlock extends NodeRenderGraphBloc
|
|
|
23
23
|
super(name, frameGraph, scene);
|
|
24
24
|
this.registerInput("light", NodeRenderGraphBlockConnectionPointTypes.ShadowLight);
|
|
25
25
|
this.registerInput("objects", NodeRenderGraphBlockConnectionPointTypes.ObjectList);
|
|
26
|
+
this.registerInput("camera", NodeRenderGraphBlockConnectionPointTypes.Camera);
|
|
27
|
+
this._addDependenciesInput();
|
|
26
28
|
this.registerOutput("generator", NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator);
|
|
27
29
|
this.registerOutput("output", NodeRenderGraphBlockConnectionPointTypes.Texture);
|
|
28
30
|
}
|
|
@@ -122,6 +124,12 @@ export class NodeRenderGraphBaseShadowGeneratorBlock extends NodeRenderGraphBloc
|
|
|
122
124
|
get objects() {
|
|
123
125
|
return this._inputs[1];
|
|
124
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Gets the camera input component
|
|
129
|
+
*/
|
|
130
|
+
get camera() {
|
|
131
|
+
return this._inputs[2];
|
|
132
|
+
}
|
|
125
133
|
/**
|
|
126
134
|
* Gets the shadow generator component
|
|
127
135
|
*/
|
|
@@ -138,6 +146,7 @@ export class NodeRenderGraphBaseShadowGeneratorBlock extends NodeRenderGraphBloc
|
|
|
138
146
|
super._buildBlock(state);
|
|
139
147
|
this._frameGraphTask.light = this.light.connectedPoint?.value;
|
|
140
148
|
this._frameGraphTask.objectList = this.objects.connectedPoint?.value;
|
|
149
|
+
this._frameGraphTask.camera = this.camera.connectedPoint?.value;
|
|
141
150
|
// Important: the shadow generator object is created by the task when we set the light, that's why we must set generator.value after setting the light!
|
|
142
151
|
this.generator.value = this._frameGraphTask;
|
|
143
152
|
this.output.value = this._frameGraphTask.outputTexture;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseShadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph, IShadowLight, FrameGraphObjectList, FrameGraphShadowGeneratorTask } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { ShadowGenerator } from \"../../../../Lights/Shadows/shadowGenerator\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseShadowGeneratorBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphShadowGeneratorTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseShadowGeneratorBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"light\", NodeRenderGraphBlockConnectionPointTypes.ShadowLight);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n\r\n this.registerOutput(\"generator\", NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator);\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.Texture);\r\n }\r\n\r\n /** Sets the size of the shadow texture */\r\n @editableInPropertyPage(\"Map size\", PropertyTypeForEdition.List, \"PROPERTIES\", {\r\n options: [\r\n { label: \"128\", value: 128 },\r\n { label: \"256\", value: 256 },\r\n { label: \"512\", value: 512 },\r\n { label: \"1024\", value: 1024 },\r\n { label: \"2048\", value: 2048 },\r\n { label: \"4096\", value: 4096 },\r\n { label: \"8192\", value: 8192 },\r\n ],\r\n })\r\n public get mapSize() {\r\n return this._frameGraphTask.mapSize;\r\n }\r\n\r\n public set mapSize(value: number) {\r\n this._frameGraphTask.mapSize = value;\r\n }\r\n\r\n /** Sets the texture type to float (by default, half float is used if supported) */\r\n @editableInPropertyPage(\"Use 32 bits float texture type\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useFloat32TextureType() {\r\n return this._frameGraphTask.useFloat32TextureType;\r\n }\r\n\r\n public set useFloat32TextureType(value: boolean) {\r\n this._frameGraphTask.useFloat32TextureType = value;\r\n }\r\n\r\n /** Sets the texture type to Red */\r\n @editableInPropertyPage(\"Use red texture format\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useRedTextureFormat() {\r\n return this._frameGraphTask.useRedTextureFormat;\r\n }\r\n\r\n public set useRedTextureFormat(value: boolean) {\r\n this._frameGraphTask.useRedTextureFormat = value;\r\n }\r\n\r\n /** Sets the bias */\r\n @editableInPropertyPage(\"Bias\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get bias() {\r\n return this._frameGraphTask.bias;\r\n }\r\n\r\n public set bias(value: number) {\r\n this._frameGraphTask.bias = value;\r\n }\r\n\r\n /** Sets the normal bias */\r\n @editableInPropertyPage(\"Normal bias\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get normalBias() {\r\n return this._frameGraphTask.normalBias;\r\n }\r\n\r\n public set normalBias(value: number) {\r\n this._frameGraphTask.normalBias = value;\r\n }\r\n\r\n /** Sets the darkness of the shadows */\r\n @editableInPropertyPage(\"Darkness\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get darkness() {\r\n return this._frameGraphTask.darkness;\r\n }\r\n\r\n public set darkness(value: number) {\r\n this._frameGraphTask.darkness = value;\r\n }\r\n\r\n /** Sets the filter method */\r\n @editableInPropertyPage(\"Filter\", PropertyTypeForEdition.List, \"PROPERTIES\", {\r\n options: [\r\n { label: \"None\", value: ShadowGenerator.FILTER_NONE },\r\n { label: \"Exponential\", value: ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP },\r\n { label: \"Poisson Sampling\", value: ShadowGenerator.FILTER_POISSONSAMPLING },\r\n { label: \"Blur exponential\", value: ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP },\r\n { label: \"Close exponential\", value: ShadowGenerator.FILTER_CLOSEEXPONENTIALSHADOWMAP },\r\n { label: \"Blur close exponential\", value: ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP },\r\n { label: \"PCF\", value: ShadowGenerator.FILTER_PCF },\r\n { label: \"PCSS\", value: ShadowGenerator.FILTER_PCSS },\r\n ],\r\n })\r\n public get filter() {\r\n return this._frameGraphTask.filter;\r\n }\r\n\r\n public set filter(value: number) {\r\n this._frameGraphTask.filter = value;\r\n }\r\n\r\n /** Sets the filter quality (for PCF and PCSS) */\r\n @editableInPropertyPage(\"Filter quality\", PropertyTypeForEdition.List, \"PROPERTIES\", {\r\n options: [\r\n { label: \"Low\", value: ShadowGenerator.QUALITY_LOW },\r\n { label: \"Medium\", value: ShadowGenerator.QUALITY_MEDIUM },\r\n { label: \"High\", value: ShadowGenerator.QUALITY_HIGH },\r\n ],\r\n })\r\n public get filteringQuality() {\r\n return this._frameGraphTask.filteringQuality;\r\n }\r\n\r\n public set filteringQuality(value: number) {\r\n this._frameGraphTask.filteringQuality = value;\r\n }\r\n\r\n /** Gets or sets the ability to have transparent shadow */\r\n @editableInPropertyPage(\"Transparency shadow\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get transparencyShadow() {\r\n return this._frameGraphTask.transparencyShadow;\r\n }\r\n\r\n public set transparencyShadow(value: boolean) {\r\n this._frameGraphTask.transparencyShadow = value;\r\n }\r\n\r\n /** Enables or disables shadows with varying strength based on the transparency */\r\n @editableInPropertyPage(\"Enable soft transparent shadows\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get enableSoftTransparentShadow() {\r\n return this._frameGraphTask.enableSoftTransparentShadow;\r\n }\r\n\r\n public set enableSoftTransparentShadow(value: boolean) {\r\n this._frameGraphTask.enableSoftTransparentShadow = value;\r\n }\r\n\r\n /** If this is true, use the opacity texture's alpha channel for transparent shadows instead of the diffuse one */\r\n @editableInPropertyPage(\"Use opacity texture for transparent shadows\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useOpacityTextureForTransparentShadow() {\r\n return this._frameGraphTask.useOpacityTextureForTransparentShadow;\r\n }\r\n\r\n public set useOpacityTextureForTransparentShadow(value: boolean) {\r\n this._frameGraphTask.useOpacityTextureForTransparentShadow = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseShadowGeneratorBlock\";\r\n }\r\n\r\n /**\r\n * Gets the light input component\r\n */\r\n public get light(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the shadow generator component\r\n */\r\n public get generator(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output texture component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.light = this.light.connectedPoint?.value as IShadowLight;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n // Important: the shadow generator object is created by the task when we set the light, that's why we must set generator.value after setting the light!\r\n this.generator.value = this._frameGraphTask;\r\n this.output.value = this._frameGraphTask.outputTexture;\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.mapSize = ${this.mapSize};`);\r\n codes.push(`${this._codeVariableName}.useFloat32TextureType = ${this.useFloat32TextureType};`);\r\n codes.push(`${this._codeVariableName}.useRedTextureFormat = ${this.useRedTextureFormat};`);\r\n codes.push(`${this._codeVariableName}.bias = ${this.bias};`);\r\n codes.push(`${this._codeVariableName}.normalBias = ${this.normalBias};`);\r\n codes.push(`${this._codeVariableName}.darkness = ${this.darkness};`);\r\n codes.push(`${this._codeVariableName}.filter = ${this.filter};`);\r\n codes.push(`${this._codeVariableName}.filteringQuality = ${this.filteringQuality};`);\r\n codes.push(`${this._codeVariableName}.transparencyShadow = ${this.transparencyShadow};`);\r\n codes.push(`${this._codeVariableName}.enableSoftTransparentShadow = ${this.enableSoftTransparentShadow};`);\r\n codes.push(`${this._codeVariableName}.useOpacityTextureForTransparentShadow = ${this.useOpacityTextureForTransparentShadow};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.mapSize = this.mapSize;\r\n serializationObject.useFloat32TextureType = this.useFloat32TextureType;\r\n serializationObject.useRedTextureFormat = this.useRedTextureFormat;\r\n serializationObject.bias = this.bias;\r\n serializationObject.normalBias = this.normalBias;\r\n serializationObject.darkness = this.darkness;\r\n serializationObject.filter = this.filter;\r\n serializationObject.filteringQuality = this.filteringQuality;\r\n serializationObject.transparencyShadow = this.transparencyShadow;\r\n serializationObject.enableSoftTransparentShadow = this.enableSoftTransparentShadow;\r\n serializationObject.useOpacityTextureForTransparentShadow = this.useOpacityTextureForTransparentShadow;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.mapSize = serializationObject.mapSize;\r\n this.useFloat32TextureType = serializationObject.useFloat32TextureType;\r\n this.useRedTextureFormat = serializationObject.useRedTextureFormat;\r\n this.bias = serializationObject.bias;\r\n this.normalBias = serializationObject.normalBias;\r\n this.darkness = serializationObject.darkness;\r\n this.filter = serializationObject.filter;\r\n this.filteringQuality = serializationObject.filteringQuality;\r\n this.transparencyShadow = serializationObject.transparencyShadow;\r\n this.enableSoftTransparentShadow = serializationObject.enableSoftTransparentShadow;\r\n this.useOpacityTextureForTransparentShadow = serializationObject.useOpacityTextureForTransparentShadow;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"baseShadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\r\n NodeRenderGraphConnectionPoint,\r\n Scene,\r\n NodeRenderGraphBuildState,\r\n FrameGraph,\r\n IShadowLight,\r\n FrameGraphObjectList,\r\n FrameGraphShadowGeneratorTask,\r\n Camera,\r\n // eslint-disable-next-line import/no-internal-modules\r\n} from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { ShadowGenerator } from \"../../../../Lights/Shadows/shadowGenerator\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class NodeRenderGraphBaseShadowGeneratorBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphShadowGeneratorTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphBaseShadowGeneratorBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"light\", NodeRenderGraphBlockConnectionPointTypes.ShadowLight);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this._addDependenciesInput();\r\n\r\n this.registerOutput(\"generator\", NodeRenderGraphBlockConnectionPointTypes.ShadowGenerator);\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.Texture);\r\n }\r\n\r\n /** Sets the size of the shadow texture */\r\n @editableInPropertyPage(\"Map size\", PropertyTypeForEdition.List, \"PROPERTIES\", {\r\n options: [\r\n { label: \"128\", value: 128 },\r\n { label: \"256\", value: 256 },\r\n { label: \"512\", value: 512 },\r\n { label: \"1024\", value: 1024 },\r\n { label: \"2048\", value: 2048 },\r\n { label: \"4096\", value: 4096 },\r\n { label: \"8192\", value: 8192 },\r\n ],\r\n })\r\n public get mapSize() {\r\n return this._frameGraphTask.mapSize;\r\n }\r\n\r\n public set mapSize(value: number) {\r\n this._frameGraphTask.mapSize = value;\r\n }\r\n\r\n /** Sets the texture type to float (by default, half float is used if supported) */\r\n @editableInPropertyPage(\"Use 32 bits float texture type\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useFloat32TextureType() {\r\n return this._frameGraphTask.useFloat32TextureType;\r\n }\r\n\r\n public set useFloat32TextureType(value: boolean) {\r\n this._frameGraphTask.useFloat32TextureType = value;\r\n }\r\n\r\n /** Sets the texture type to Red */\r\n @editableInPropertyPage(\"Use red texture format\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useRedTextureFormat() {\r\n return this._frameGraphTask.useRedTextureFormat;\r\n }\r\n\r\n public set useRedTextureFormat(value: boolean) {\r\n this._frameGraphTask.useRedTextureFormat = value;\r\n }\r\n\r\n /** Sets the bias */\r\n @editableInPropertyPage(\"Bias\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get bias() {\r\n return this._frameGraphTask.bias;\r\n }\r\n\r\n public set bias(value: number) {\r\n this._frameGraphTask.bias = value;\r\n }\r\n\r\n /** Sets the normal bias */\r\n @editableInPropertyPage(\"Normal bias\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get normalBias() {\r\n return this._frameGraphTask.normalBias;\r\n }\r\n\r\n public set normalBias(value: number) {\r\n this._frameGraphTask.normalBias = value;\r\n }\r\n\r\n /** Sets the darkness of the shadows */\r\n @editableInPropertyPage(\"Darkness\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get darkness() {\r\n return this._frameGraphTask.darkness;\r\n }\r\n\r\n public set darkness(value: number) {\r\n this._frameGraphTask.darkness = value;\r\n }\r\n\r\n /** Sets the filter method */\r\n @editableInPropertyPage(\"Filter\", PropertyTypeForEdition.List, \"PROPERTIES\", {\r\n options: [\r\n { label: \"None\", value: ShadowGenerator.FILTER_NONE },\r\n { label: \"Exponential\", value: ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP },\r\n { label: \"Poisson Sampling\", value: ShadowGenerator.FILTER_POISSONSAMPLING },\r\n { label: \"Blur exponential\", value: ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP },\r\n { label: \"Close exponential\", value: ShadowGenerator.FILTER_CLOSEEXPONENTIALSHADOWMAP },\r\n { label: \"Blur close exponential\", value: ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP },\r\n { label: \"PCF\", value: ShadowGenerator.FILTER_PCF },\r\n { label: \"PCSS\", value: ShadowGenerator.FILTER_PCSS },\r\n ],\r\n })\r\n public get filter() {\r\n return this._frameGraphTask.filter;\r\n }\r\n\r\n public set filter(value: number) {\r\n this._frameGraphTask.filter = value;\r\n }\r\n\r\n /** Sets the filter quality (for PCF and PCSS) */\r\n @editableInPropertyPage(\"Filter quality\", PropertyTypeForEdition.List, \"PROPERTIES\", {\r\n options: [\r\n { label: \"Low\", value: ShadowGenerator.QUALITY_LOW },\r\n { label: \"Medium\", value: ShadowGenerator.QUALITY_MEDIUM },\r\n { label: \"High\", value: ShadowGenerator.QUALITY_HIGH },\r\n ],\r\n })\r\n public get filteringQuality() {\r\n return this._frameGraphTask.filteringQuality;\r\n }\r\n\r\n public set filteringQuality(value: number) {\r\n this._frameGraphTask.filteringQuality = value;\r\n }\r\n\r\n /** Gets or sets the ability to have transparent shadow */\r\n @editableInPropertyPage(\"Transparency shadow\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get transparencyShadow() {\r\n return this._frameGraphTask.transparencyShadow;\r\n }\r\n\r\n public set transparencyShadow(value: boolean) {\r\n this._frameGraphTask.transparencyShadow = value;\r\n }\r\n\r\n /** Enables or disables shadows with varying strength based on the transparency */\r\n @editableInPropertyPage(\"Enable soft transparent shadows\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get enableSoftTransparentShadow() {\r\n return this._frameGraphTask.enableSoftTransparentShadow;\r\n }\r\n\r\n public set enableSoftTransparentShadow(value: boolean) {\r\n this._frameGraphTask.enableSoftTransparentShadow = value;\r\n }\r\n\r\n /** If this is true, use the opacity texture's alpha channel for transparent shadows instead of the diffuse one */\r\n @editableInPropertyPage(\"Use opacity texture for transparent shadows\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useOpacityTextureForTransparentShadow() {\r\n return this._frameGraphTask.useOpacityTextureForTransparentShadow;\r\n }\r\n\r\n public set useOpacityTextureForTransparentShadow(value: boolean) {\r\n this._frameGraphTask.useOpacityTextureForTransparentShadow = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphBaseShadowGeneratorBlock\";\r\n }\r\n\r\n /**\r\n * Gets the light input component\r\n */\r\n public get light(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the shadow generator component\r\n */\r\n public get generator(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output texture component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.light = this.light.connectedPoint?.value as IShadowLight;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n\r\n // Important: the shadow generator object is created by the task when we set the light, that's why we must set generator.value after setting the light!\r\n this.generator.value = this._frameGraphTask;\r\n this.output.value = this._frameGraphTask.outputTexture;\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.mapSize = ${this.mapSize};`);\r\n codes.push(`${this._codeVariableName}.useFloat32TextureType = ${this.useFloat32TextureType};`);\r\n codes.push(`${this._codeVariableName}.useRedTextureFormat = ${this.useRedTextureFormat};`);\r\n codes.push(`${this._codeVariableName}.bias = ${this.bias};`);\r\n codes.push(`${this._codeVariableName}.normalBias = ${this.normalBias};`);\r\n codes.push(`${this._codeVariableName}.darkness = ${this.darkness};`);\r\n codes.push(`${this._codeVariableName}.filter = ${this.filter};`);\r\n codes.push(`${this._codeVariableName}.filteringQuality = ${this.filteringQuality};`);\r\n codes.push(`${this._codeVariableName}.transparencyShadow = ${this.transparencyShadow};`);\r\n codes.push(`${this._codeVariableName}.enableSoftTransparentShadow = ${this.enableSoftTransparentShadow};`);\r\n codes.push(`${this._codeVariableName}.useOpacityTextureForTransparentShadow = ${this.useOpacityTextureForTransparentShadow};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.mapSize = this.mapSize;\r\n serializationObject.useFloat32TextureType = this.useFloat32TextureType;\r\n serializationObject.useRedTextureFormat = this.useRedTextureFormat;\r\n serializationObject.bias = this.bias;\r\n serializationObject.normalBias = this.normalBias;\r\n serializationObject.darkness = this.darkness;\r\n serializationObject.filter = this.filter;\r\n serializationObject.filteringQuality = this.filteringQuality;\r\n serializationObject.transparencyShadow = this.transparencyShadow;\r\n serializationObject.enableSoftTransparentShadow = this.enableSoftTransparentShadow;\r\n serializationObject.useOpacityTextureForTransparentShadow = this.useOpacityTextureForTransparentShadow;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.mapSize = serializationObject.mapSize;\r\n this.useFloat32TextureType = serializationObject.useFloat32TextureType;\r\n this.useRedTextureFormat = serializationObject.useRedTextureFormat;\r\n this.bias = serializationObject.bias;\r\n this.normalBias = serializationObject.normalBias;\r\n this.darkness = serializationObject.darkness;\r\n this.filter = serializationObject.filter;\r\n this.filteringQuality = serializationObject.filteringQuality;\r\n this.transparencyShadow = serializationObject.transparencyShadow;\r\n this.enableSoftTransparentShadow = serializationObject.enableSoftTransparentShadow;\r\n this.useOpacityTextureForTransparentShadow = serializationObject.useOpacityTextureForTransparentShadow;\r\n }\r\n}\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Scene, FrameGraph
|
|
1
|
+
import type { Scene, FrameGraph } from "../../../../index.js";
|
|
2
2
|
import { NodeRenderGraphBaseShadowGeneratorBlock } from "./baseShadowGeneratorBlock";
|
|
3
3
|
import { FrameGraphCascadedShadowGeneratorTask } from "../../../Tasks/Rendering/csmShadowGeneratorTask";
|
|
4
4
|
/**
|
|
@@ -46,11 +46,6 @@ export declare class NodeRenderGraphCascadedShadowGeneratorBlock extends NodeRen
|
|
|
46
46
|
* @returns the class name
|
|
47
47
|
*/
|
|
48
48
|
getClassName(): string;
|
|
49
|
-
/**
|
|
50
|
-
* Gets the camera input component
|
|
51
|
-
*/
|
|
52
|
-
get camera(): NodeRenderGraphConnectionPoint;
|
|
53
|
-
protected _buildBlock(state: NodeRenderGraphBuildState): void;
|
|
54
49
|
protected _dumpPropertiesCode(): string;
|
|
55
50
|
serialize(): any;
|
|
56
51
|
_deserialize(serializationObject: any): void;
|
|
@@ -3,7 +3,6 @@ import { NodeRenderGraphBaseShadowGeneratorBlock } from "./baseShadowGeneratorBl
|
|
|
3
3
|
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
4
4
|
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
5
5
|
import { FrameGraphCascadedShadowGeneratorTask } from "../../../Tasks/Rendering/csmShadowGeneratorTask.js";
|
|
6
|
-
import { NodeRenderGraphBlockConnectionPointTypes } from "../../Types/nodeRenderGraphTypes.js";
|
|
7
6
|
/**
|
|
8
7
|
* Block that generates shadows through a shadow generator
|
|
9
8
|
*/
|
|
@@ -22,8 +21,6 @@ export class NodeRenderGraphCascadedShadowGeneratorBlock extends NodeRenderGraph
|
|
|
22
21
|
*/
|
|
23
22
|
constructor(name, frameGraph, scene) {
|
|
24
23
|
super(name, frameGraph, scene);
|
|
25
|
-
this.registerInput("camera", NodeRenderGraphBlockConnectionPointTypes.Camera);
|
|
26
|
-
this._addDependenciesInput();
|
|
27
24
|
this._frameGraphTask = new FrameGraphCascadedShadowGeneratorTask(this.name, frameGraph, scene);
|
|
28
25
|
}
|
|
29
26
|
/** Sets the number of cascades */
|
|
@@ -89,16 +86,6 @@ export class NodeRenderGraphCascadedShadowGeneratorBlock extends NodeRenderGraph
|
|
|
89
86
|
getClassName() {
|
|
90
87
|
return "NodeRenderGraphCascadedShadowGeneratorBlock";
|
|
91
88
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Gets the camera input component
|
|
94
|
-
*/
|
|
95
|
-
get camera() {
|
|
96
|
-
return this._inputs[2];
|
|
97
|
-
}
|
|
98
|
-
_buildBlock(state) {
|
|
99
|
-
super._buildBlock(state);
|
|
100
|
-
this._frameGraphTask.camera = this.camera.connectedPoint?.value;
|
|
101
|
-
}
|
|
102
89
|
_dumpPropertiesCode() {
|
|
103
90
|
const codes = [];
|
|
104
91
|
codes.push(`${this._codeVariableName}.numCascades = ${this.numCascades};`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csmShadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { Scene, FrameGraph, NodeRenderGraphConnectionPoint, NodeRenderGraphBuildState, Camera } from \"core/index\";\r\nimport { NodeRenderGraphBaseShadowGeneratorBlock } from \"./baseShadowGeneratorBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphCascadedShadowGeneratorTask } from \"../../../Tasks/Rendering/csmShadowGeneratorTask\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\n\r\n/**\r\n * Block that generates shadows through a shadow generator\r\n */\r\nexport class NodeRenderGraphCascadedShadowGeneratorBlock extends NodeRenderGraphBaseShadowGeneratorBlock {\r\n protected override _frameGraphTask: FrameGraphCascadedShadowGeneratorTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphCascadedShadowGeneratorBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this._addDependenciesInput();\r\n\r\n this._frameGraphTask = new FrameGraphCascadedShadowGeneratorTask(this.name, frameGraph, scene);\r\n }\r\n\r\n /** Sets the number of cascades */\r\n @editableInPropertyPage(\"Number of cascades\", PropertyTypeForEdition.List, \"CSM PROPERTIES\", {\r\n options: [\r\n { label: \"2\", value: 2 },\r\n { label: \"3\", value: 3 },\r\n { label: \"4\", value: 4 },\r\n ],\r\n })\r\n public get numCascades() {\r\n return this._frameGraphTask.numCascades;\r\n }\r\n\r\n public set numCascades(value: number) {\r\n this._frameGraphTask.numCascades = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should display the cascades. */\r\n @editableInPropertyPage(\"Debug mode\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get debug() {\r\n return this._frameGraphTask.debug;\r\n }\r\n\r\n public set debug(value: boolean) {\r\n this._frameGraphTask.debug = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should stabilize the cascades. */\r\n @editableInPropertyPage(\"Stabilize cascades\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get stabilizeCascades() {\r\n return this._frameGraphTask.stabilizeCascades;\r\n }\r\n\r\n public set stabilizeCascades(value: boolean) {\r\n this._frameGraphTask.stabilizeCascades = value;\r\n }\r\n\r\n /** Gets or sets the lambda parameter of the shadow generator. */\r\n @editableInPropertyPage(\"Lambda\", PropertyTypeForEdition.Float, \"CSM PROPERTIES\", { min: 0, max: 1 })\r\n public get lambda() {\r\n return this._frameGraphTask.lambda;\r\n }\r\n\r\n public set lambda(value: number) {\r\n this._frameGraphTask.lambda = value;\r\n }\r\n\r\n /** Gets or sets the cascade blend percentage. */\r\n @editableInPropertyPage(\"Cascade blend\", PropertyTypeForEdition.Float, \"CSM PROPERTIES\", { min: 0, max: 1 })\r\n public get cascadeBlendPercentage() {\r\n return this._frameGraphTask.cascadeBlendPercentage;\r\n }\r\n\r\n public set cascadeBlendPercentage(value: number) {\r\n this._frameGraphTask.cascadeBlendPercentage = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should use depth clamping. */\r\n @editableInPropertyPage(\"Depth clamp\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get depthClamp() {\r\n return this._frameGraphTask.depthClamp;\r\n }\r\n\r\n public set depthClamp(value: boolean) {\r\n this._frameGraphTask.depthClamp = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should automatically calculate the depth bounds. */\r\n @editableInPropertyPage(\"Auto-Calc depth bounds\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get autoCalcDepthBounds() {\r\n return this._frameGraphTask.autoCalcDepthBounds;\r\n }\r\n\r\n public set autoCalcDepthBounds(value: boolean) {\r\n this._frameGraphTask.autoCalcDepthBounds = value;\r\n }\r\n\r\n /** Gets or sets the maximum shadow Z value. */\r\n @editableInPropertyPage(\"Shadow maxZ\", PropertyTypeForEdition.Float, \"CSM PROPERTIES\")\r\n public get shadowMaxZ() {\r\n return this._frameGraphTask.shadowMaxZ;\r\n }\r\n\r\n public set shadowMaxZ(value: number) {\r\n this._frameGraphTask.shadowMaxZ = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphCascadedShadowGeneratorBlock\";\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.numCascades = ${this.numCascades};`);\r\n codes.push(`${this._codeVariableName}.debug = ${this.debug};`);\r\n codes.push(`${this._codeVariableName}.stabilizeCascades = ${this.stabilizeCascades};`);\r\n codes.push(`${this._codeVariableName}.lambda = ${this.lambda};`);\r\n codes.push(`${this._codeVariableName}.cascadeBlendPercentage = ${this.cascadeBlendPercentage};`);\r\n codes.push(`${this._codeVariableName}.depthClamp = ${this.depthClamp};`);\r\n codes.push(`${this._codeVariableName}.autoCalcDepthBounds = ${this.autoCalcDepthBounds};`);\r\n codes.push(`${this._codeVariableName}.shadowMaxZ = ${this.shadowMaxZ};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.numCascades = this.numCascades;\r\n serializationObject.debug = this.debug;\r\n serializationObject.stabilizeCascades = this.stabilizeCascades;\r\n serializationObject.lambda = this.lambda;\r\n serializationObject.cascadeBlendPercentage = this.cascadeBlendPercentage;\r\n serializationObject.depthClamp = this.depthClamp;\r\n serializationObject.autoCalcDepthBounds = this.autoCalcDepthBounds;\r\n serializationObject.shadowMaxZ = this.shadowMaxZ;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.numCascades = serializationObject.numCascades;\r\n this.debug = serializationObject.debug;\r\n this.stabilizeCascades = serializationObject.stabilizeCascades;\r\n this.lambda = serializationObject.lambda;\r\n this.cascadeBlendPercentage = serializationObject.cascadeBlendPercentage;\r\n this.depthClamp = serializationObject.depthClamp;\r\n this.autoCalcDepthBounds = serializationObject.autoCalcDepthBounds;\r\n this.shadowMaxZ = serializationObject.shadowMaxZ;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphCascadedShadowGeneratorBlock\", NodeRenderGraphCascadedShadowGeneratorBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"csmShadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { Scene, FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseShadowGeneratorBlock } from \"./baseShadowGeneratorBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphCascadedShadowGeneratorTask } from \"../../../Tasks/Rendering/csmShadowGeneratorTask\";\r\n\r\n/**\r\n * Block that generates shadows through a shadow generator\r\n */\r\nexport class NodeRenderGraphCascadedShadowGeneratorBlock extends NodeRenderGraphBaseShadowGeneratorBlock {\r\n protected override _frameGraphTask: FrameGraphCascadedShadowGeneratorTask;\r\n\r\n /**\r\n * Gets the frame graph task associated with this block\r\n */\r\n public override get task() {\r\n return this._frameGraphTask;\r\n }\r\n\r\n /**\r\n * Create a new NodeRenderGraphCascadedShadowGeneratorBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this._frameGraphTask = new FrameGraphCascadedShadowGeneratorTask(this.name, frameGraph, scene);\r\n }\r\n\r\n /** Sets the number of cascades */\r\n @editableInPropertyPage(\"Number of cascades\", PropertyTypeForEdition.List, \"CSM PROPERTIES\", {\r\n options: [\r\n { label: \"2\", value: 2 },\r\n { label: \"3\", value: 3 },\r\n { label: \"4\", value: 4 },\r\n ],\r\n })\r\n public get numCascades() {\r\n return this._frameGraphTask.numCascades;\r\n }\r\n\r\n public set numCascades(value: number) {\r\n this._frameGraphTask.numCascades = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should display the cascades. */\r\n @editableInPropertyPage(\"Debug mode\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get debug() {\r\n return this._frameGraphTask.debug;\r\n }\r\n\r\n public set debug(value: boolean) {\r\n this._frameGraphTask.debug = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should stabilize the cascades. */\r\n @editableInPropertyPage(\"Stabilize cascades\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get stabilizeCascades() {\r\n return this._frameGraphTask.stabilizeCascades;\r\n }\r\n\r\n public set stabilizeCascades(value: boolean) {\r\n this._frameGraphTask.stabilizeCascades = value;\r\n }\r\n\r\n /** Gets or sets the lambda parameter of the shadow generator. */\r\n @editableInPropertyPage(\"Lambda\", PropertyTypeForEdition.Float, \"CSM PROPERTIES\", { min: 0, max: 1 })\r\n public get lambda() {\r\n return this._frameGraphTask.lambda;\r\n }\r\n\r\n public set lambda(value: number) {\r\n this._frameGraphTask.lambda = value;\r\n }\r\n\r\n /** Gets or sets the cascade blend percentage. */\r\n @editableInPropertyPage(\"Cascade blend\", PropertyTypeForEdition.Float, \"CSM PROPERTIES\", { min: 0, max: 1 })\r\n public get cascadeBlendPercentage() {\r\n return this._frameGraphTask.cascadeBlendPercentage;\r\n }\r\n\r\n public set cascadeBlendPercentage(value: number) {\r\n this._frameGraphTask.cascadeBlendPercentage = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should use depth clamping. */\r\n @editableInPropertyPage(\"Depth clamp\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get depthClamp() {\r\n return this._frameGraphTask.depthClamp;\r\n }\r\n\r\n public set depthClamp(value: boolean) {\r\n this._frameGraphTask.depthClamp = value;\r\n }\r\n\r\n /** Gets or sets a value indicating whether the shadow generator should automatically calculate the depth bounds. */\r\n @editableInPropertyPage(\"Auto-Calc depth bounds\", PropertyTypeForEdition.Boolean, \"CSM PROPERTIES\")\r\n public get autoCalcDepthBounds() {\r\n return this._frameGraphTask.autoCalcDepthBounds;\r\n }\r\n\r\n public set autoCalcDepthBounds(value: boolean) {\r\n this._frameGraphTask.autoCalcDepthBounds = value;\r\n }\r\n\r\n /** Gets or sets the maximum shadow Z value. */\r\n @editableInPropertyPage(\"Shadow maxZ\", PropertyTypeForEdition.Float, \"CSM PROPERTIES\")\r\n public get shadowMaxZ() {\r\n return this._frameGraphTask.shadowMaxZ;\r\n }\r\n\r\n public set shadowMaxZ(value: number) {\r\n this._frameGraphTask.shadowMaxZ = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphCascadedShadowGeneratorBlock\";\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.numCascades = ${this.numCascades};`);\r\n codes.push(`${this._codeVariableName}.debug = ${this.debug};`);\r\n codes.push(`${this._codeVariableName}.stabilizeCascades = ${this.stabilizeCascades};`);\r\n codes.push(`${this._codeVariableName}.lambda = ${this.lambda};`);\r\n codes.push(`${this._codeVariableName}.cascadeBlendPercentage = ${this.cascadeBlendPercentage};`);\r\n codes.push(`${this._codeVariableName}.depthClamp = ${this.depthClamp};`);\r\n codes.push(`${this._codeVariableName}.autoCalcDepthBounds = ${this.autoCalcDepthBounds};`);\r\n codes.push(`${this._codeVariableName}.shadowMaxZ = ${this.shadowMaxZ};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.numCascades = this.numCascades;\r\n serializationObject.debug = this.debug;\r\n serializationObject.stabilizeCascades = this.stabilizeCascades;\r\n serializationObject.lambda = this.lambda;\r\n serializationObject.cascadeBlendPercentage = this.cascadeBlendPercentage;\r\n serializationObject.depthClamp = this.depthClamp;\r\n serializationObject.autoCalcDepthBounds = this.autoCalcDepthBounds;\r\n serializationObject.shadowMaxZ = this.shadowMaxZ;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.numCascades = serializationObject.numCascades;\r\n this.debug = serializationObject.debug;\r\n this.stabilizeCascades = serializationObject.stabilizeCascades;\r\n this.lambda = serializationObject.lambda;\r\n this.cascadeBlendPercentage = serializationObject.cascadeBlendPercentage;\r\n this.depthClamp = serializationObject.depthClamp;\r\n this.autoCalcDepthBounds = serializationObject.autoCalcDepthBounds;\r\n this.shadowMaxZ = serializationObject.shadowMaxZ;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphCascadedShadowGeneratorBlock\", NodeRenderGraphCascadedShadowGeneratorBlock);\r\n"]}
|
|
@@ -13,7 +13,6 @@ export class NodeRenderGraphShadowGeneratorBlock extends NodeRenderGraphBaseShad
|
|
|
13
13
|
*/
|
|
14
14
|
constructor(name, frameGraph, scene) {
|
|
15
15
|
super(name, frameGraph, scene);
|
|
16
|
-
this._addDependenciesInput();
|
|
17
16
|
this._frameGraphTask = new FrameGraphShadowGeneratorTask(this.name, frameGraph, scene);
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,uCAAuC;IAC5F;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"shadowGeneratorBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAE7F;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,uCAAuC;IAC5F;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,eAAe,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,qCAAqC,CAAC;IACjD,CAAC;CACJ;AAED,aAAa,CAAC,6CAA6C,EAAE,mCAAmC,CAAC,CAAC","sourcesContent":["// eslint-disable-next-line import/no-internal-modules\r\nimport type { Scene, FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseShadowGeneratorBlock } from \"./baseShadowGeneratorBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { FrameGraphShadowGeneratorTask } from \"../../../Tasks/Rendering/shadowGeneratorTask\";\r\n\r\n/**\r\n * Block that generate shadows through a shadow generator\r\n */\r\nexport class NodeRenderGraphShadowGeneratorBlock extends NodeRenderGraphBaseShadowGeneratorBlock {\r\n /**\r\n * Create a new NodeRenderGraphShadowGeneratorBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this._frameGraphTask = new FrameGraphShadowGeneratorTask(this.name, frameGraph, scene);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphShadowGeneratorBlock\";\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphShadowGeneratorBlock\", NodeRenderGraphShadowGeneratorBlock);\r\n"]}
|
|
@@ -3,6 +3,7 @@ export * from "./executeBlock";
|
|
|
3
3
|
export * from "./inputBlock";
|
|
4
4
|
export * from "./outputBlock";
|
|
5
5
|
export * from "./resourceContainerBlock";
|
|
6
|
+
export * from "./Layers/glowLayerBlock";
|
|
6
7
|
export * from "./PostProcesses/blackAndWhitePostProcessBlock";
|
|
7
8
|
export * from "./PostProcesses/bloomPostProcessBlock";
|
|
8
9
|
export * from "./PostProcesses/blurPostProcessBlock";
|