@onerjs/core 8.55.9 → 8.56.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/AudioV2/webAudio/webAudioEngine.d.ts +7 -0
- package/AudioV2/webAudio/webAudioEngine.js +6 -5
- package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js +24 -0
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Culling/Helper/boundingInfoHelper.js +8 -4
- package/Culling/Helper/boundingInfoHelper.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.textureLoaders.d.ts +5 -1
- package/Engines/AbstractEngine/abstractEngine.textureLoaders.js +7 -3
- package/Engines/AbstractEngine/abstractEngine.textureLoaders.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.textureLoaders.pure.d.ts +6 -0
- package/Engines/AbstractEngine/abstractEngine.textureLoaders.pure.js +16 -0
- package/Engines/AbstractEngine/abstractEngine.textureLoaders.pure.js.map +1 -0
- package/Engines/AbstractEngine/pure.d.ts +1 -0
- package/Engines/AbstractEngine/pure.js +1 -0
- package/Engines/AbstractEngine/pure.js.map +1 -1
- package/Engines/IDrawContext.d.ts +2 -0
- package/Engines/IDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.d.ts +8 -0
- package/Engines/WebGPU/webgpuDrawContext.js +15 -0
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/abstractEngine.pure.js +2 -2
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/constants.d.ts +5 -0
- package/Engines/constants.js +5 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +11 -3
- package/Engines/webgpuEngine.d.ts +1 -0
- package/Engines/webgpuEngine.js +1 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +10 -0
- package/Engines/webgpuEngine.pure.js +15 -1
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.d.ts +4 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +12 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +2 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +2 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +2 -0
- package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +21 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +45 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +2 -5
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.d.ts +1 -0
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +18 -3
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +2 -0
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +5 -21
- package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/powBlock.pure.js +2 -1
- package/Materials/Node/Blocks/powBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.pure.js +14 -12
- package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.d.ts +11 -0
- package/Materials/Node/nodeMaterial.pure.js +11 -0
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +4 -3
- package/Materials/Node/nodeMaterialBuildState.js +7 -1
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/openpbrMaterial.pure.d.ts +4 -0
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +4 -0
- package/Materials/Textures/index.d.ts +1 -0
- package/Materials/Textures/index.js +1 -0
- package/Materials/Textures/index.js.map +1 -1
- package/Materials/Textures/textureProcessor.d.ts +29 -6
- package/Materials/Textures/textureProcessor.js +22 -16
- package/Materials/Textures/textureProcessor.js.map +1 -1
- package/Materials/drawWrapper.js +3 -0
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/imageProcessingConfiguration.defines.d.ts +3 -0
- package/Materials/imageProcessingConfiguration.defines.js +2 -0
- package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
- package/Materials/imageProcessingConfiguration.functions.js +3 -0
- package/Materials/imageProcessingConfiguration.functions.js.map +1 -1
- package/Materials/imageProcessingConfiguration.pure.d.ts +58 -0
- package/Materials/imageProcessingConfiguration.pure.js +123 -2
- package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +19 -0
- package/Materials/materialHelper.geometryrendering.js +29 -1
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/prepass.defines.d.ts +3 -0
- package/Materials/prepass.defines.js +3 -0
- package/Materials/prepass.defines.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +4 -0
- package/Materials/uniformBuffer.d.ts +29 -0
- package/Materials/uniformBuffer.js +146 -0
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/colorTemperature.functions.d.ts +29 -0
- package/Maths/colorTemperature.functions.js +196 -0
- package/Maths/colorTemperature.functions.js.map +1 -0
- package/Maths/index.d.ts +1 -0
- package/Maths/index.js +1 -0
- package/Maths/index.js.map +1 -1
- package/Maths/math.vector.pure.d.ts +1 -5
- package/Maths/math.vector.pure.js.map +1 -1
- package/Maths/pure.d.ts +1 -0
- package/Maths/pure.js +1 -0
- package/Maths/pure.js.map +1 -1
- package/Misc/filesInput.d.ts +15 -0
- package/Misc/filesInput.js +156 -74
- package/Misc/filesInput.js.map +1 -1
- package/Misc/observable.pure.js +1 -3
- package/Misc/observable.pure.js.map +1 -1
- package/Misc/tools.pure.js +1 -1
- package/Misc/tools.pure.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.d.ts +41 -1
- package/PostProcesses/imageProcessingPostProcess.js +41 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/thinImageProcessingPostProcess.d.ts +50 -0
- package/PostProcesses/thinImageProcessingPostProcess.js +65 -0
- package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsMaterialCompatibility.pure.d.ts +12 -0
- package/Rendering/IBLShadows/iblShadowsMaterialCompatibility.pure.js +22 -0
- package/Rendering/IBLShadows/iblShadowsMaterialCompatibility.pure.js.map +1 -0
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -0
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +39 -0
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +2 -4
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/pure.d.ts +1 -0
- package/Rendering/IBLShadows/pure.js +1 -0
- package/Rendering/IBLShadows/pure.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +11 -0
- package/Rendering/fluidRenderer/fluidRenderingObject.js +36 -14
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +5 -0
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +16 -3
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +5 -0
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +12 -0
- package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
- package/Rendering/geometryBufferRenderer.pure.d.ts +30 -0
- package/Rendering/geometryBufferRenderer.pure.js +84 -0
- package/Rendering/geometryBufferRenderer.pure.js.map +1 -1
- package/Rendering/iblCdfGenerator.js +10 -1
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +2 -2
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js +3 -0
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +3 -0
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/objectIdFunctions.d.ts +5 -0
- package/Shaders/ShadersInclude/objectIdFunctions.js +22 -0
- package/Shaders/ShadersInclude/objectIdFunctions.js.map +1 -0
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js +3 -0
- package/Shaders/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrDirectLighting.js +34 -4
- package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrIblFunctions.js +8 -2
- package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockPrePass.js +3 -0
- package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +5 -0
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.d.ts +1 -0
- package/Shaders/ShadersInclude/prePassDeclaration.js +5 -0
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/default.fragment.js +5 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js +7 -1
- package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleDiffuse.vertex.js +7 -1
- package/Shaders/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js +7 -1
- package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +9 -1
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/openpbr.fragment.js +2 -1
- package/Shaders/openpbr.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.js +2 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js +3 -0
- package/ShadersWGSL/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +3 -0
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/objectIdFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/objectIdFunctions.js +22 -0
- package/ShadersWGSL/ShadersInclude/objectIdFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js +3 -0
- package/ShadersWGSL/ShadersInclude/openpbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +35 -5
- package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +8 -2
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +3 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +5 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.d.ts +1 -0
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +5 -0
- package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/ShadersWGSL/default.fragment.js +5 -1
- package/ShadersWGSL/default.fragment.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js +16 -4
- package/ShadersWGSL/fluidRenderingParticleDepth.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js +15 -3
- package/ShadersWGSL/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js +15 -3
- package/ShadersWGSL/fluidRenderingParticleThickness.vertex.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.js +9 -1
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/openpbr.fragment.js +2 -1
- package/ShadersWGSL/openpbr.fragment.js.map +1 -1
- package/ShadersWGSL/pbr.fragment.js +2 -1
- package/ShadersWGSL/pbr.fragment.js.map +1 -1
- package/XR/features/Layers/WebXRCompositionLayer.d.ts +52 -0
- package/XR/features/Layers/WebXRCompositionLayer.js +80 -0
- package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.pure.js +2 -1
- package/XR/features/WebXRControllerPointerSelection.pure.js.map +1 -1
- package/XR/features/WebXRControllerTeleportation.pure.js +2 -1
- package/XR/features/WebXRControllerTeleportation.pure.js.map +1 -1
- package/XR/features/WebXRDepthSensing.pure.d.ts +21 -0
- package/XR/features/WebXRDepthSensing.pure.js +42 -0
- package/XR/features/WebXRDepthSensing.pure.js.map +1 -1
- package/XR/features/WebXRHandTracking.pure.js +2 -0
- package/XR/features/WebXRHandTracking.pure.js.map +1 -1
- package/XR/features/WebXRLayers.pure.d.ts +12 -0
- package/XR/features/WebXRLayers.pure.js +31 -1
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/features/WebXRTrackedSources.d.ts +5 -0
- package/XR/features/WebXRTrackedSources.js +8 -0
- package/XR/features/WebXRTrackedSources.js.map +1 -0
- package/XR/features/WebXRTrackedSources.pure.d.ts +70 -0
- package/XR/features/WebXRTrackedSources.pure.js +153 -0
- package/XR/features/WebXRTrackedSources.pure.js.map +1 -0
- package/XR/features/index.d.ts +1 -0
- package/XR/features/index.js +1 -0
- package/XR/features/index.js.map +1 -1
- package/XR/features/pure.d.ts +1 -0
- package/XR/features/pure.js +1 -0
- package/XR/features/pure.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.d.ts +53 -1
- package/XR/motionController/webXRAbstractMotionController.js +61 -0
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/webXRDefaultExperience.js +8 -4
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXRExperienceHelper.js +86 -44
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +9 -0
- package/XR/webXRFeaturesManager.js +4 -0
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRGraphicsBinding.d.ts +29 -0
- package/XR/webXRGraphicsBinding.js +40 -0
- package/XR/webXRGraphicsBinding.js.map +1 -1
- package/XR/webXRInputSource.js +1 -1
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +7 -5
- package/XR/webXRLayerWrapper.js +10 -7
- package/XR/webXRLayerWrapper.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +45 -0
- package/XR/webXRSessionManager.js +174 -29
- package/XR/webXRSessionManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -149,6 +149,10 @@ export declare class NodeRenderGraphGeometryRendererBlock extends NodeRenderGrap
|
|
|
149
149
|
* Gets the geometry linear velocity component
|
|
150
150
|
*/
|
|
151
151
|
get geomLinearVelocity(): NodeRenderGraphConnectionPoint;
|
|
152
|
+
/**
|
|
153
|
+
* Gets the geometry object ID component
|
|
154
|
+
*/
|
|
155
|
+
get geomObjectId(): NodeRenderGraphConnectionPoint;
|
|
152
156
|
protected _buildBlock(state: NodeRenderGraphBuildState): void;
|
|
153
157
|
protected _dumpPropertiesCode(): string;
|
|
154
158
|
/**
|
|
@@ -184,6 +184,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
184
184
|
this.registerOutput("geomReflectivity", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);
|
|
185
185
|
this.registerOutput("geomVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);
|
|
186
186
|
this.registerOutput("geomLinearVelocity", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);
|
|
187
|
+
this.registerOutput("geomObjectId", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);
|
|
187
188
|
this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });
|
|
188
189
|
}
|
|
189
190
|
_createFrameGraphObject() {
|
|
@@ -363,6 +364,12 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
363
364
|
get geomLinearVelocity() {
|
|
364
365
|
return this._outputs[14];
|
|
365
366
|
}
|
|
367
|
+
/**
|
|
368
|
+
* Gets the geometry object ID component
|
|
369
|
+
*/
|
|
370
|
+
get geomObjectId() {
|
|
371
|
+
return this._outputs[15];
|
|
372
|
+
}
|
|
366
373
|
_buildBlock(state) {
|
|
367
374
|
super._buildBlock(state);
|
|
368
375
|
const textureActivation = [
|
|
@@ -378,6 +385,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
378
385
|
this.geomReflectivity.isConnected,
|
|
379
386
|
this.geomVelocity.isConnected,
|
|
380
387
|
this.geomLinearVelocity.isConnected,
|
|
388
|
+
this.geomObjectId.isConnected,
|
|
381
389
|
];
|
|
382
390
|
this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;
|
|
383
391
|
this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;
|
|
@@ -391,6 +399,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
391
399
|
this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;
|
|
392
400
|
this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;
|
|
393
401
|
this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;
|
|
402
|
+
this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;
|
|
394
403
|
this._frameGraphTask.textureDescriptions = [];
|
|
395
404
|
const textureFormats = [
|
|
396
405
|
this.irradianceFormat,
|
|
@@ -405,6 +414,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
405
414
|
this.reflectivityFormat,
|
|
406
415
|
this.velocityFormat,
|
|
407
416
|
this.linearVelocityFormat,
|
|
417
|
+
5,
|
|
408
418
|
];
|
|
409
419
|
const textureTypes = [
|
|
410
420
|
this.irradianceType,
|
|
@@ -419,6 +429,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
419
429
|
this.reflectivityType,
|
|
420
430
|
this.velocityType,
|
|
421
431
|
this.linearVelocityType,
|
|
432
|
+
0,
|
|
422
433
|
];
|
|
423
434
|
const bufferTypes = [
|
|
424
435
|
14,
|
|
@@ -433,6 +444,7 @@ let NodeRenderGraphGeometryRendererBlock = (() => {
|
|
|
433
444
|
3,
|
|
434
445
|
2,
|
|
435
446
|
11,
|
|
447
|
+
15,
|
|
436
448
|
];
|
|
437
449
|
for (let i = 0; i < textureActivation.length; i++) {
|
|
438
450
|
if (textureActivation[i]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometryRendererBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { type NodeRenderGraphConnectionPoint, type Scene, type NodeRenderGraphBuildState, type FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphGeometryRendererTask;\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 NodeRenderGraphGeometryRendererBlock\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 doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this.getInputByName(\"target\")!.isOptional = true;\r\n\r\n this.registerOutput(\"geomIrradiance\", NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance);\r\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\r\n this.registerOutput(\"geomNormViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth);\r\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);\r\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\r\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\r\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\r\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\r\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });\r\n }\r\n\r\n protected override _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected override _saveState(state: { [key: string]: any }) {\r\n super._saveState(state);\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n\r\n state.width = this.width;\r\n state.height = this.height;\r\n state.sizeInPercentage = this.sizeInPercentage;\r\n state.samples = this.samples;\r\n state.reverseCulling = this.reverseCulling;\r\n state.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n state.disableDepthPrePass = this.disableDepthPrePass;\r\n }\r\n\r\n protected override _restoreState(state: { [key: string]: any }) {\r\n super._restoreState(state);\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n\r\n this.width = state.width;\r\n this.height = state.height;\r\n this.sizeInPercentage = state.sizeInPercentage;\r\n this.samples = state.samples;\r\n this.reverseCulling = state.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = state.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = state.disableDepthPrePass;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get width() {\r\n return this._frameGraphTask.size.width;\r\n }\r\n\r\n public set width(value: number) {\r\n this._frameGraphTask.size.width = value;\r\n }\r\n\r\n /** Height of the geometry texture */\r\n @editableInPropertyPage(\"Texture height\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get height() {\r\n return this._frameGraphTask.size.height;\r\n }\r\n\r\n public set height(value: number) {\r\n this._frameGraphTask.size.height = value;\r\n }\r\n\r\n /** Indicates if the geometry texture width and height are percentages or absolute values */\r\n @editableInPropertyPage(\"Size is in percentage\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get sizeInPercentage() {\r\n return this._frameGraphTask.sizeIsPercentage;\r\n }\r\n\r\n public set sizeInPercentage(value: boolean) {\r\n this._frameGraphTask.sizeIsPercentage = value;\r\n }\r\n\r\n /** Number of samples of the geometry texture */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"GEOMETRY\", { min: 1, max: 8 })\r\n public get samples() {\r\n return this._frameGraphTask.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.samples = value;\r\n }\r\n\r\n /** Indicates if culling must be reversed */\r\n @editableInPropertyPage(\"Reverse culling\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get reverseCulling() {\r\n return this._frameGraphTask.reverseCulling;\r\n }\r\n\r\n public set reverseCulling(value: boolean) {\r\n this._frameGraphTask.reverseCulling = value;\r\n }\r\n\r\n /** Indicates if a mesh shouldn't be rendered when its material has depth write disabled */\r\n @editableInPropertyPage(\"Don't render if material depth write is disabled\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get dontRenderWhenMaterialDepthWriteIsDisabled() {\r\n return this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n }\r\n\r\n public set dontRenderWhenMaterialDepthWriteIsDisabled(value: boolean) {\r\n this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled = value;\r\n }\r\n\r\n /** Indicates if depth pre-pass must be disabled */\r\n @editableInPropertyPage(\"Disable depth pre-pass\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get disableDepthPrePass() {\r\n return this._frameGraphTask.disableDepthPrePass;\r\n }\r\n\r\n public set disableDepthPrePass(value: boolean) {\r\n this._frameGraphTask.disableDepthPrePass = value;\r\n }\r\n\r\n // Irradiance\r\n /** The format of the irradiance output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - IRRADIANCE\")\r\n public irradianceFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the irradiance output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - IRRADIANCE\")\r\n public irradianceType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // View depth\r\n /** The format of the view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n /** The format of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n /** The format of the screen depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the screen depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n /** The format of the view normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the view normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n /** The format of the world normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n /** The format of the local position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the local position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n /** The format of the world position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n /** The format of the albedo output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - ALBEDO\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the albedo output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - ALBEDO\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n /** The format of the reflectivity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the reflectivity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n /** The format of the velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VELOCITY\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VELOCITY\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n /** The format of the linear velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the linear velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityType = Constants.TEXTURETYPE_HALF_FLOAT;\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 \"NodeRenderGraphGeometryRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the geometry irradiance component\r\n */\r\n public get geomIrradiance(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry view depth component\r\n */\r\n public get geomViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry normalized view depth component\r\n */\r\n public get geomNormViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry screen depth component\r\n */\r\n public get geomScreenDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n /**\r\n * Gets the geometry view normal component\r\n */\r\n public get geomViewNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[7];\r\n }\r\n\r\n /**\r\n * Gets the world geometry normal component\r\n */\r\n public get geomWorldNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[8];\r\n }\r\n\r\n /**\r\n * Gets the geometry local position component\r\n */\r\n public get geomLocalPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[9];\r\n }\r\n\r\n /**\r\n * Gets the geometry world position component\r\n */\r\n public get geomWorldPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[10];\r\n }\r\n\r\n /**\r\n * Gets the geometry albedo component\r\n */\r\n public get geomAlbedo(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[11];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[12];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[13];\r\n }\r\n\r\n /**\r\n * Gets the geometry linear velocity component\r\n */\r\n public get geomLinearVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[14];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n const textureActivation = [\r\n this.geomIrradiance.isConnected,\r\n this.geomViewDepth.isConnected,\r\n this.geomNormViewDepth.isConnected,\r\n this.geomScreenDepth.isConnected,\r\n this.geomViewNormal.isConnected,\r\n this.geomWorldNormal.isConnected,\r\n this.geomLocalPosition.isConnected,\r\n this.geomWorldPosition.isConnected,\r\n this.geomAlbedo.isConnected,\r\n this.geomReflectivity.isConnected,\r\n this.geomVelocity.isConnected,\r\n this.geomLinearVelocity.isConnected,\r\n ];\r\n\r\n this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;\r\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\r\n this.geomNormViewDepth.value = this._frameGraphTask.geometryNormViewDepthTexture;\r\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\r\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\r\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\r\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\r\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\r\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\r\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\r\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\r\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\r\n this.irradianceFormat,\r\n this.viewDepthFormat,\r\n this.normalizedViewDepthFormat,\r\n this.screenDepthFormat,\r\n this.viewNormalFormat,\r\n this.worldNormalFormat,\r\n this.localPositionFormat,\r\n this.worldPositionFormat,\r\n this.albedoFormat,\r\n this.reflectivityFormat,\r\n this.velocityFormat,\r\n this.linearVelocityFormat,\r\n ];\r\n const textureTypes = [\r\n this.irradianceType,\r\n this.viewDepthType,\r\n this.normalizedViewDepthType,\r\n this.screenDepthType,\r\n this.viewNormalType,\r\n this.worldNormalType,\r\n this.localPositionType,\r\n this.worldPositionType,\r\n this.albedoType,\r\n this.reflectivityType,\r\n this.velocityType,\r\n this.linearVelocityType,\r\n ];\r\n const bufferTypes = [\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_WORLD_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_LOCAL_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_TEXTURE_TYPE,\r\n Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE,\r\n ];\r\n\r\n for (let i = 0; i < textureActivation.length; i++) {\r\n if (textureActivation[i]) {\r\n this._frameGraphTask.textureDescriptions.push({\r\n textureFormat: textureFormats[i],\r\n textureType: textureTypes[i],\r\n type: bufferTypes[i],\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.size = { width: ${this.width}, height: ${this.height} };`);\r\n codes.push(`${this._codeVariableName}.sizeInPercentage = ${this.sizeInPercentage};`);\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.reverseCulling = ${this.reverseCulling};`);\r\n codes.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`);\r\n codes.push(`${this._codeVariableName}.disableDepthPrePass = ${this.disableDepthPrePass};`);\r\n codes.push(`${this._codeVariableName}.irradianceFormat = ${this.irradianceFormat};`);\r\n codes.push(`${this._codeVariableName}.irradianceType = ${this.irradianceType};`);\r\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthFormat = ${this.normalizedViewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthType = ${this.normalizedViewDepthType};`);\r\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\r\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\r\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\r\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\r\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\r\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\r\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\r\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\r\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\r\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\r\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @returns the serialized object\r\n */\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.sizeInPercentage = this.sizeInPercentage;\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n serializationObject.disableDepthPrePass = this.disableDepthPrePass;\r\n serializationObject.irradianceFormat = this.irradianceFormat;\r\n serializationObject.irradianceType = this.irradianceType;\r\n serializationObject.viewDepthFormat = this.viewDepthFormat;\r\n serializationObject.viewDepthType = this.viewDepthType;\r\n serializationObject.normalizedViewDepthFormat = this.normalizedViewDepthFormat;\r\n serializationObject.normalizedViewDepthType = this.normalizedViewDepthType;\r\n serializationObject.screenDepthFormat = this.screenDepthFormat;\r\n serializationObject.screenDepthType = this.screenDepthType;\r\n serializationObject.localPositionFormat = this.localPositionFormat;\r\n serializationObject.localPositionType = this.localPositionType;\r\n serializationObject.worldPositionFormat = this.worldPositionFormat;\r\n serializationObject.worldPositionType = this.worldPositionType;\r\n serializationObject.viewNormalFormat = this.viewNormalFormat;\r\n serializationObject.viewNormalType = this.viewNormalType;\r\n serializationObject.worldNormalFormat = this.worldNormalFormat;\r\n serializationObject.worldNormalType = this.worldNormalType;\r\n serializationObject.albedoFormat = this.albedoFormat;\r\n serializationObject.albedoType = this.albedoType;\r\n serializationObject.reflectivityFormat = this.reflectivityFormat;\r\n serializationObject.reflectivityType = this.reflectivityType;\r\n serializationObject.velocityFormat = this.velocityFormat;\r\n serializationObject.velocityType = this.velocityType;\r\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\r\n serializationObject.linearVelocityType = this.linearVelocityType;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.sizeInPercentage = !!serializationObject.sizeInPercentage;\r\n this.width = serializationObject.width ?? 100;\r\n this.height = serializationObject.height ?? 100;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = serializationObject.disableDepthPrePass ?? true;\r\n this.irradianceFormat = serializationObject.irradianceFormat ?? Constants.TEXTUREFORMAT_RGBA;\r\n this.irradianceType = serializationObject.irradianceType ?? Constants.TEXTURETYPE_HALF_FLOAT;\r\n this.viewDepthFormat = serializationObject.viewDepthFormat;\r\n this.viewDepthType = serializationObject.viewDepthType;\r\n this.normalizedViewDepthFormat = serializationObject.normalizedViewDepthFormat ?? Constants.TEXTUREFORMAT_RED;\r\n this.normalizedViewDepthType = serializationObject.normalizedViewDepthType ?? Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n this.screenDepthFormat = serializationObject.screenDepthFormat;\r\n this.screenDepthType = serializationObject.screenDepthType;\r\n this.localPositionFormat = serializationObject.localPositionFormat;\r\n this.localPositionType = serializationObject.localPositionType;\r\n this.worldPositionFormat = serializationObject.worldPositionFormat;\r\n this.worldPositionType = serializationObject.worldPositionType;\r\n this.viewNormalFormat = serializationObject.viewNormalFormat;\r\n this.viewNormalType = serializationObject.viewNormalType;\r\n this.worldNormalFormat = serializationObject.worldNormalFormat;\r\n this.worldNormalType = serializationObject.worldNormalType;\r\n this.albedoFormat = serializationObject.albedoFormat;\r\n this.albedoType = serializationObject.albedoType;\r\n this.reflectivityFormat = serializationObject.reflectivityFormat;\r\n this.reflectivityType = serializationObject.reflectivityType;\r\n this.velocityFormat = serializationObject.velocityFormat;\r\n this.velocityType = serializationObject.velocityType;\r\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\r\n this.linearVelocityType = serializationObject.linearVelocityType;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for geometryRendererBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterGeometryRendererBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"geometryRendererBlock.pure.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport { type NodeRenderGraphConnectionPoint, type Scene, type NodeRenderGraphBuildState, type FrameGraph } from \"core/index\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphGeometryRendererTask;\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 NodeRenderGraphGeometryRendererBlock\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 doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\r\n * @param enableClusteredLights True (default) to enable clustered lights\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true, enableClusteredLights = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this.getInputByName(\"target\")!.isOptional = true;\r\n\r\n this.registerOutput(\"geomIrradiance\", NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance);\r\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\r\n this.registerOutput(\"geomNormViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth);\r\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\r\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal);\r\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\r\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\r\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\r\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\r\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\r\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\r\n this.registerOutput(\"geomObjectId\", NodeRenderGraphBlockConnectionPointTypes.TextureObjectId);\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });\r\n }\r\n\r\n protected override _createFrameGraphObject(): void {\r\n this._frameGraphTask?.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] as boolean,\r\n enableClusteredLights: this._additionalConstructionParameters![1] as boolean,\r\n });\r\n }\r\n\r\n protected override _saveState(state: { [key: string]: any }) {\r\n super._saveState(state);\r\n state.disabled = this._frameGraphTask.disabled;\r\n state.isMainObjectRenderer = this.isMainObjectRenderer;\r\n state.depthTest = this.depthTest;\r\n state.depthWrite = this.depthWrite;\r\n state.disableShadows = this.disableShadows;\r\n state.renderInLinearSpace = this.renderInLinearSpace;\r\n state.renderParticles = this.renderParticles;\r\n state.renderSprites = this.renderSprites;\r\n state.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n state.enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n state.enableOutlineRendering = this.enableOutlineRendering;\r\n\r\n state.width = this.width;\r\n state.height = this.height;\r\n state.sizeInPercentage = this.sizeInPercentage;\r\n state.samples = this.samples;\r\n state.reverseCulling = this.reverseCulling;\r\n state.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n state.disableDepthPrePass = this.disableDepthPrePass;\r\n }\r\n\r\n protected override _restoreState(state: { [key: string]: any }) {\r\n super._restoreState(state);\r\n this._frameGraphTask.disabled = state.disabled;\r\n this.isMainObjectRenderer = state.isMainObjectRenderer;\r\n this.depthTest = state.depthTest;\r\n this.depthWrite = state.depthWrite;\r\n this.disableShadows = state.disableShadows;\r\n this.renderInLinearSpace = state.renderInLinearSpace;\r\n this.renderParticles = state.renderParticles;\r\n this.renderSprites = state.renderSprites;\r\n this.forceLayerMaskCheck = state.forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = state.enableBoundingBoxRendering;\r\n this.enableOutlineRendering = state.enableOutlineRendering;\r\n\r\n this.width = state.width;\r\n this.height = state.height;\r\n this.sizeInPercentage = state.sizeInPercentage;\r\n this.samples = state.samples;\r\n this.reverseCulling = state.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = state.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = state.disableDepthPrePass;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get width() {\r\n return this._frameGraphTask.size.width;\r\n }\r\n\r\n public set width(value: number) {\r\n this._frameGraphTask.size.width = value;\r\n }\r\n\r\n /** Height of the geometry texture */\r\n @editableInPropertyPage(\"Texture height\", PropertyTypeForEdition.Int, \"GEOMETRY\")\r\n public get height() {\r\n return this._frameGraphTask.size.height;\r\n }\r\n\r\n public set height(value: number) {\r\n this._frameGraphTask.size.height = value;\r\n }\r\n\r\n /** Indicates if the geometry texture width and height are percentages or absolute values */\r\n @editableInPropertyPage(\"Size is in percentage\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get sizeInPercentage() {\r\n return this._frameGraphTask.sizeIsPercentage;\r\n }\r\n\r\n public set sizeInPercentage(value: boolean) {\r\n this._frameGraphTask.sizeIsPercentage = value;\r\n }\r\n\r\n /** Number of samples of the geometry texture */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"GEOMETRY\", { min: 1, max: 8 })\r\n public get samples() {\r\n return this._frameGraphTask.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.samples = value;\r\n }\r\n\r\n /** Indicates if culling must be reversed */\r\n @editableInPropertyPage(\"Reverse culling\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get reverseCulling() {\r\n return this._frameGraphTask.reverseCulling;\r\n }\r\n\r\n public set reverseCulling(value: boolean) {\r\n this._frameGraphTask.reverseCulling = value;\r\n }\r\n\r\n /** Indicates if a mesh shouldn't be rendered when its material has depth write disabled */\r\n @editableInPropertyPage(\"Don't render if material depth write is disabled\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get dontRenderWhenMaterialDepthWriteIsDisabled() {\r\n return this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n }\r\n\r\n public set dontRenderWhenMaterialDepthWriteIsDisabled(value: boolean) {\r\n this._frameGraphTask.dontRenderWhenMaterialDepthWriteIsDisabled = value;\r\n }\r\n\r\n /** Indicates if depth pre-pass must be disabled */\r\n @editableInPropertyPage(\"Disable depth pre-pass\", PropertyTypeForEdition.Boolean, \"GEOMETRY\")\r\n public get disableDepthPrePass() {\r\n return this._frameGraphTask.disableDepthPrePass;\r\n }\r\n\r\n public set disableDepthPrePass(value: boolean) {\r\n this._frameGraphTask.disableDepthPrePass = value;\r\n }\r\n\r\n // Irradiance\r\n /** The format of the irradiance output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - IRRADIANCE\")\r\n public irradianceFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the irradiance output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - IRRADIANCE\")\r\n public irradianceType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // View depth\r\n /** The format of the view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW DEPTH\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n /** The format of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the normalized view depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - NORMALIZED VIEW DEPTH\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n /** The format of the screen depth output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n /** The type of the screen depth output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - SCREEN DEPTH\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n /** The format of the view normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the view normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VIEW NORMAL\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n /** The format of the world normal output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world normal output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD NORMAL\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n /** The format of the local position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the local position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LOCAL POSITION\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n /** The format of the world position output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the world position output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - WORLD POSITION\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n /** The format of the albedo output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - ALBEDO\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the albedo output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - ALBEDO\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n /** The format of the reflectivity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the reflectivity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - REFLECTIVITY\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n /** The format of the velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - VELOCITY\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - VELOCITY\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n /** The format of the linear velocity output texture */\r\n @editableInPropertyPage(\"Format\", PropertyTypeForEdition.TextureFormat, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n /** The type of the linear velocity output texture */\r\n @editableInPropertyPage(\"Type\", PropertyTypeForEdition.TextureType, \"OUTPUT - LINEAR VELOCITY\")\r\n public linearVelocityType = Constants.TEXTURETYPE_HALF_FLOAT;\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 \"NodeRenderGraphGeometryRendererBlock\";\r\n }\r\n\r\n /**\r\n * Gets the geometry irradiance component\r\n */\r\n public get geomIrradiance(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the geometry view depth component\r\n */\r\n public get geomViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the geometry normalized view depth component\r\n */\r\n public get geomNormViewDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the geometry screen depth component\r\n */\r\n public get geomScreenDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n /**\r\n * Gets the geometry view normal component\r\n */\r\n public get geomViewNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[7];\r\n }\r\n\r\n /**\r\n * Gets the world geometry normal component\r\n */\r\n public get geomWorldNormal(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[8];\r\n }\r\n\r\n /**\r\n * Gets the geometry local position component\r\n */\r\n public get geomLocalPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[9];\r\n }\r\n\r\n /**\r\n * Gets the geometry world position component\r\n */\r\n public get geomWorldPosition(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[10];\r\n }\r\n\r\n /**\r\n * Gets the geometry albedo component\r\n */\r\n public get geomAlbedo(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[11];\r\n }\r\n\r\n /**\r\n * Gets the geometry reflectivity component\r\n */\r\n public get geomReflectivity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[12];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[13];\r\n }\r\n\r\n /**\r\n * Gets the geometry linear velocity component\r\n */\r\n public get geomLinearVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[14];\r\n }\r\n\r\n /**\r\n * Gets the geometry object ID component\r\n */\r\n public get geomObjectId(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[15];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n const textureActivation = [\r\n this.geomIrradiance.isConnected,\r\n this.geomViewDepth.isConnected,\r\n this.geomNormViewDepth.isConnected,\r\n this.geomScreenDepth.isConnected,\r\n this.geomViewNormal.isConnected,\r\n this.geomWorldNormal.isConnected,\r\n this.geomLocalPosition.isConnected,\r\n this.geomWorldPosition.isConnected,\r\n this.geomAlbedo.isConnected,\r\n this.geomReflectivity.isConnected,\r\n this.geomVelocity.isConnected,\r\n this.geomLinearVelocity.isConnected,\r\n this.geomObjectId.isConnected,\r\n ];\r\n\r\n this.geomIrradiance.value = this._frameGraphTask.geometryIrradianceTexture;\r\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\r\n this.geomNormViewDepth.value = this._frameGraphTask.geometryNormViewDepthTexture;\r\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\r\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\r\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\r\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\r\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\r\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\r\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\r\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\r\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\r\n this.geomObjectId.value = this._frameGraphTask.geometryObjectIdTexture;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\r\n this.irradianceFormat,\r\n this.viewDepthFormat,\r\n this.normalizedViewDepthFormat,\r\n this.screenDepthFormat,\r\n this.viewNormalFormat,\r\n this.worldNormalFormat,\r\n this.localPositionFormat,\r\n this.worldPositionFormat,\r\n this.albedoFormat,\r\n this.reflectivityFormat,\r\n this.velocityFormat,\r\n this.linearVelocityFormat,\r\n Constants.TEXTUREFORMAT_RGBA,\r\n ];\r\n const textureTypes = [\r\n this.irradianceType,\r\n this.viewDepthType,\r\n this.normalizedViewDepthType,\r\n this.screenDepthType,\r\n this.viewNormalType,\r\n this.worldNormalType,\r\n this.localPositionType,\r\n this.worldPositionType,\r\n this.albedoType,\r\n this.reflectivityType,\r\n this.velocityType,\r\n this.linearVelocityType,\r\n Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n ];\r\n const bufferTypes = [\r\n Constants.PREPASS_IRRADIANCE_TEXTURE_TYPE,\r\n Constants.PREPASS_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE,\r\n Constants.PREPASS_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_WORLD_NORMAL_TEXTURE_TYPE,\r\n Constants.PREPASS_LOCAL_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_POSITION_TEXTURE_TYPE,\r\n Constants.PREPASS_ALBEDO_TEXTURE_TYPE,\r\n Constants.PREPASS_REFLECTIVITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_TEXTURE_TYPE,\r\n Constants.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE,\r\n Constants.PREPASS_OBJECT_ID_TEXTURE_TYPE,\r\n ];\r\n\r\n for (let i = 0; i < textureActivation.length; i++) {\r\n if (textureActivation[i]) {\r\n this._frameGraphTask.textureDescriptions.push({\r\n textureFormat: textureFormats[i],\r\n textureType: textureTypes[i],\r\n type: bufferTypes[i],\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.size = { width: ${this.width}, height: ${this.height} };`);\r\n codes.push(`${this._codeVariableName}.sizeInPercentage = ${this.sizeInPercentage};`);\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.reverseCulling = ${this.reverseCulling};`);\r\n codes.push(`${this._codeVariableName}.dontRenderWhenMaterialDepthWriteIsDisabled = ${this.dontRenderWhenMaterialDepthWriteIsDisabled};`);\r\n codes.push(`${this._codeVariableName}.disableDepthPrePass = ${this.disableDepthPrePass};`);\r\n codes.push(`${this._codeVariableName}.irradianceFormat = ${this.irradianceFormat};`);\r\n codes.push(`${this._codeVariableName}.irradianceType = ${this.irradianceType};`);\r\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthFormat = ${this.normalizedViewDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.normalizedViewDepthType = ${this.normalizedViewDepthType};`);\r\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\r\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\r\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\r\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\r\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\r\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\r\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\r\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\r\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\r\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\r\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\r\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\r\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\r\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\r\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\r\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\r\n }\r\n\r\n /**\r\n * Serializes this block\r\n * @returns the serialized object\r\n */\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.sizeInPercentage = this.sizeInPercentage;\r\n serializationObject.width = this.width;\r\n serializationObject.height = this.height;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n serializationObject.disableDepthPrePass = this.disableDepthPrePass;\r\n serializationObject.irradianceFormat = this.irradianceFormat;\r\n serializationObject.irradianceType = this.irradianceType;\r\n serializationObject.viewDepthFormat = this.viewDepthFormat;\r\n serializationObject.viewDepthType = this.viewDepthType;\r\n serializationObject.normalizedViewDepthFormat = this.normalizedViewDepthFormat;\r\n serializationObject.normalizedViewDepthType = this.normalizedViewDepthType;\r\n serializationObject.screenDepthFormat = this.screenDepthFormat;\r\n serializationObject.screenDepthType = this.screenDepthType;\r\n serializationObject.localPositionFormat = this.localPositionFormat;\r\n serializationObject.localPositionType = this.localPositionType;\r\n serializationObject.worldPositionFormat = this.worldPositionFormat;\r\n serializationObject.worldPositionType = this.worldPositionType;\r\n serializationObject.viewNormalFormat = this.viewNormalFormat;\r\n serializationObject.viewNormalType = this.viewNormalType;\r\n serializationObject.worldNormalFormat = this.worldNormalFormat;\r\n serializationObject.worldNormalType = this.worldNormalType;\r\n serializationObject.albedoFormat = this.albedoFormat;\r\n serializationObject.albedoType = this.albedoType;\r\n serializationObject.reflectivityFormat = this.reflectivityFormat;\r\n serializationObject.reflectivityType = this.reflectivityType;\r\n serializationObject.velocityFormat = this.velocityFormat;\r\n serializationObject.velocityType = this.velocityType;\r\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\r\n serializationObject.linearVelocityType = this.linearVelocityType;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.sizeInPercentage = !!serializationObject.sizeInPercentage;\r\n this.width = serializationObject.width ?? 100;\r\n this.height = serializationObject.height ?? 100;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this.disableDepthPrePass = serializationObject.disableDepthPrePass ?? true;\r\n this.irradianceFormat = serializationObject.irradianceFormat ?? Constants.TEXTUREFORMAT_RGBA;\r\n this.irradianceType = serializationObject.irradianceType ?? Constants.TEXTURETYPE_HALF_FLOAT;\r\n this.viewDepthFormat = serializationObject.viewDepthFormat;\r\n this.viewDepthType = serializationObject.viewDepthType;\r\n this.normalizedViewDepthFormat = serializationObject.normalizedViewDepthFormat ?? Constants.TEXTUREFORMAT_RED;\r\n this.normalizedViewDepthType = serializationObject.normalizedViewDepthType ?? Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n this.screenDepthFormat = serializationObject.screenDepthFormat;\r\n this.screenDepthType = serializationObject.screenDepthType;\r\n this.localPositionFormat = serializationObject.localPositionFormat;\r\n this.localPositionType = serializationObject.localPositionType;\r\n this.worldPositionFormat = serializationObject.worldPositionFormat;\r\n this.worldPositionType = serializationObject.worldPositionType;\r\n this.viewNormalFormat = serializationObject.viewNormalFormat;\r\n this.viewNormalType = serializationObject.viewNormalType;\r\n this.worldNormalFormat = serializationObject.worldNormalFormat;\r\n this.worldNormalType = serializationObject.worldNormalType;\r\n this.albedoFormat = serializationObject.albedoFormat;\r\n this.albedoType = serializationObject.albedoType;\r\n this.reflectivityFormat = serializationObject.reflectivityFormat;\r\n this.reflectivityType = serializationObject.reflectivityType;\r\n this.velocityFormat = serializationObject.velocityFormat;\r\n this.velocityType = serializationObject.velocityType;\r\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\r\n this.linearVelocityType = serializationObject.linearVelocityType;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for geometryRendererBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterGeometryRendererBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n}\r\n"]}
|
|
@@ -63,7 +63,8 @@ let NodeRenderGraphInputBlock = (() => {
|
|
|
63
63
|
case NodeRenderGraphBlockConnectionPointTypes.TextureVelocity:
|
|
64
64
|
case NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity:
|
|
65
65
|
case NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance:
|
|
66
|
-
case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedoSqrt:
|
|
66
|
+
case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedoSqrt:
|
|
67
|
+
case NodeRenderGraphBlockConnectionPointTypes.TextureObjectId: {
|
|
67
68
|
const options = {
|
|
68
69
|
size: { width: 100, height: 100 },
|
|
69
70
|
options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputBlock.pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Blocks/inputBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport {\r\n type NodeRenderGraphConnectionPoint,\r\n type Scene,\r\n type FrameGraph,\r\n type NodeRenderGraphBuildState,\r\n type Camera,\r\n type InternalTexture,\r\n type Nullable,\r\n type FrameGraphTextureCreationOptions,\r\n type FrameGraphTextureHandle,\r\n type FrameGraphObjectList,\r\n type IShadowLight,\r\n} from \"core/index\";\r\nimport { Observable } from \"../../../Misc/observable.pure\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../Types/nodeRenderGraphTypes\";\r\nimport { NodeRenderGraphBlock } from \"../nodeRenderGraphBlock\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../Decorators/nodeDecorator\";\r\nimport { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"../../../FrameGraph/frameGraphTypes\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\n\r\nexport type NodeRenderGraphValueType = InternalTexture | Camera | FrameGraphObjectList | IShadowLight;\r\n\r\nexport type NodeRenderGraphInputCreationOptions = FrameGraphTextureCreationOptions;\r\n\r\n/**\r\n * Block used to expose an input value\r\n */\r\nexport class NodeRenderGraphInputBlock extends NodeRenderGraphBlock {\r\n private _storedValue: Nullable<NodeRenderGraphValueType> = null;\r\n private _type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined;\r\n\r\n /** Gets an observable raised when the value is changed */\r\n public onValueChangedObservable = new Observable<NodeRenderGraphInputBlock>();\r\n\r\n /** Indicates that the input is externally managed */\r\n @editableInPropertyPage(\"Is external\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public isExternal = false;\r\n\r\n /** Gets or sets the options to create the input value */\r\n public creationOptions: NodeRenderGraphInputCreationOptions;\r\n\r\n /**\r\n * Gets or sets the connection point type (default is Undefined)\r\n */\r\n public get type(): NodeRenderGraphBlockConnectionPointTypes {\r\n return this._type;\r\n }\r\n\r\n /**\r\n * Creates a new NodeRenderGraphInputBlock\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 type defines the type of the input (can be set to NodeRenderGraphBlockConnectionPointTypes.Undefined)\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined) {\r\n super(name, frameGraph, scene);\r\n\r\n this._type = type;\r\n this._isInput = true;\r\n this.registerOutput(\"output\", type);\r\n this.setDefaultValue();\r\n }\r\n\r\n /**\r\n * Set the input block to its default value (based on its type)\r\n */\r\n public setDefaultValue() {\r\n switch (this.type) {\r\n case NodeRenderGraphBlockConnectionPointTypes.Texture:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedoSqrt: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n targetTypes: [Constants.TEXTURE_2D],\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_RGBA],\r\n layerCounts: [0],\r\n samples: 1,\r\n useSRGBBuffers: [false],\r\n creationFlags: [0],\r\n },\r\n sizeIsPercentage: true,\r\n isHistoryTexture: false,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n targetTypes: [Constants.TEXTURE_2D],\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_DEPTH24_STENCIL8],\r\n layerCounts: [0],\r\n useSRGBBuffers: [false],\r\n creationFlags: [0],\r\n labels: [this.name],\r\n samples: 1,\r\n },\r\n sizeIsPercentage: true,\r\n isHistoryTexture: false,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.ObjectList:\r\n this.value = { meshes: null, particleSystems: null };\r\n this.isExternal = true;\r\n break;\r\n case NodeRenderGraphBlockConnectionPointTypes.Camera:\r\n this.value = this._scene.cameras[0];\r\n this.isExternal = true;\r\n break;\r\n default:\r\n this.isExternal = true;\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the value of that point.\r\n */\r\n public get value(): Nullable<NodeRenderGraphValueType> {\r\n return this._storedValue;\r\n }\r\n\r\n public set value(value: Nullable<NodeRenderGraphValueType>) {\r\n this._storedValue = value;\r\n this.output.value = undefined;\r\n this.onValueChangedObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Gets the value as a specific type\r\n * @returns the value as a specific type\r\n */\r\n public getTypedValue<T extends NodeRenderGraphValueType>(): T {\r\n return this._storedValue as T;\r\n }\r\n\r\n /**\r\n * Gets the value as an internal texture\r\n * @returns The internal texture stored in value if value is an internal texture, otherwise null\r\n */\r\n public getInternalTextureFromValue(): Nullable<InternalTexture> {\r\n if ((this._storedValue as InternalTexture)._swapAndDie) {\r\n return this._storedValue as InternalTexture;\r\n }\r\n return null;\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 \"NodeRenderGraphInputBlock\";\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 * Check if the block is a texture of any type\r\n * @returns true if the block is a texture\r\n */\r\n public isAnyTexture(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAll) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is the back buffer texture\r\n * @returns true if the connection point is the back buffer texture\r\n */\r\n public isBackBuffer() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBuffer) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is a depth/stencil attachment texture\r\n * @returns true if the connection point is a depth/stencil attachment texture\r\n */\r\n public isBackBufferDepthStencilAttachment() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a camera\r\n * @returns true if the block is a camera\r\n */\r\n public isCamera(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.Camera) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is an object list\r\n * @returns true if the block is an object list\r\n */\r\n public isObjectList(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ObjectList) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a shadow light\r\n * @returns true if the block is a shadow light\r\n */\r\n public isShadowLight(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ShadowLight) !== 0;\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (this.isExternal) {\r\n if (this.isBackBuffer()) {\r\n this.output.value = backbufferColorTextureHandle;\r\n } else if (this.isBackBufferDepthStencilAttachment()) {\r\n this.output.value = backbufferDepthStencilTextureHandle;\r\n } else if (this.isCamera()) {\r\n this.output.value = this.getTypedValue<Camera>();\r\n } else if (this.isObjectList()) {\r\n this.output.value = this.getTypedValue<FrameGraphObjectList>();\r\n } else if (this.isShadowLight()) {\r\n this.output.value = this.getTypedValue<IShadowLight>();\r\n } else {\r\n if (this._storedValue === undefined || this._storedValue === null) {\r\n throw new Error(`NodeRenderGraphInputBlock: External input \"${this.name}\" is not set`);\r\n }\r\n const texture = this.getInternalTextureFromValue();\r\n if (texture) {\r\n this.output.value = this._frameGraph.textureManager.importTexture(this.name, texture, this.output.value as FrameGraphTextureHandle);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if ((this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer) !== 0) {\r\n const textureCreateOptions = this.creationOptions;\r\n\r\n if (!textureCreateOptions) {\r\n throw new Error(`NodeRenderGraphInputBlock: Creation options are missing for texture \"${this.name}\"`);\r\n }\r\n\r\n this.output.value = this._frameGraph.textureManager.createRenderTargetTexture(this.name, textureCreateOptions);\r\n }\r\n }\r\n\r\n public override dispose() {\r\n this._storedValue = null;\r\n this.onValueChangedObservable.clear();\r\n super.dispose();\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.isExternal = ${this.isExternal};`);\r\n if (this.isAnyTexture()) {\r\n if (!this.isExternal) {\r\n codes.push(`${this._codeVariableName}.creationOptions = ${JSON.stringify(this.creationOptions)};`);\r\n } else {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_TEXTURE; // TODO: set the external texture`);\r\n }\r\n } else if (this.isCamera()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_CAMERA; // TODO: set the external camera`);\r\n } else if (this.isObjectList()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_OBJECT_LIST; // TODO: set the external object list`);\r\n } else if (this.isShadowLight()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_SHADOW_LIGHT; // TODO: set the external shadow light`);\r\n }\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.type = this.type;\r\n serializationObject.isExternal = this.isExternal;\r\n if (this.creationOptions) {\r\n serializationObject.creationOptions = this.creationOptions;\r\n }\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this._type = serializationObject.type;\r\n this.output.type = this._type;\r\n this.isExternal = serializationObject.isExternal;\r\n if (serializationObject.creationOptions) {\r\n if (serializationObject.creationOptions.options.depthTextureFormat !== undefined) {\r\n // Backward compatibility - remove this code in the future\r\n serializationObject.creationOptions.options.formats = [serializationObject.creationOptions.options.depthTextureFormat];\r\n }\r\n this.creationOptions = serializationObject.creationOptions;\r\n }\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for frameGraphNodeBlocksInputBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterFrameGraphNodeBlocksInputBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphInputBlock\", NodeRenderGraphInputBlock);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"inputBlock.pure.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Blocks/inputBlock.pure.ts"],"names":[],"mappings":"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","sourcesContent":["/** This file must only contain pure code and pure imports */\r\n\r\nimport {\r\n type NodeRenderGraphConnectionPoint,\r\n type Scene,\r\n type FrameGraph,\r\n type NodeRenderGraphBuildState,\r\n type Camera,\r\n type InternalTexture,\r\n type Nullable,\r\n type FrameGraphTextureCreationOptions,\r\n type FrameGraphTextureHandle,\r\n type FrameGraphObjectList,\r\n type IShadowLight,\r\n} from \"core/index\";\r\nimport { Observable } from \"../../../Misc/observable.pure\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../Types/nodeRenderGraphTypes\";\r\nimport { NodeRenderGraphBlock } from \"../nodeRenderGraphBlock\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../Decorators/nodeDecorator\";\r\nimport { backbufferColorTextureHandle, backbufferDepthStencilTextureHandle } from \"../../../FrameGraph/frameGraphTypes\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\n\r\nexport type NodeRenderGraphValueType = InternalTexture | Camera | FrameGraphObjectList | IShadowLight;\r\n\r\nexport type NodeRenderGraphInputCreationOptions = FrameGraphTextureCreationOptions;\r\n\r\n/**\r\n * Block used to expose an input value\r\n */\r\nexport class NodeRenderGraphInputBlock extends NodeRenderGraphBlock {\r\n private _storedValue: Nullable<NodeRenderGraphValueType> = null;\r\n private _type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined;\r\n\r\n /** Gets an observable raised when the value is changed */\r\n public onValueChangedObservable = new Observable<NodeRenderGraphInputBlock>();\r\n\r\n /** Indicates that the input is externally managed */\r\n @editableInPropertyPage(\"Is external\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public isExternal = false;\r\n\r\n /** Gets or sets the options to create the input value */\r\n public creationOptions: NodeRenderGraphInputCreationOptions;\r\n\r\n /**\r\n * Gets or sets the connection point type (default is Undefined)\r\n */\r\n public get type(): NodeRenderGraphBlockConnectionPointTypes {\r\n return this._type;\r\n }\r\n\r\n /**\r\n * Creates a new NodeRenderGraphInputBlock\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 type defines the type of the input (can be set to NodeRenderGraphBlockConnectionPointTypes.Undefined)\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, type: NodeRenderGraphBlockConnectionPointTypes = NodeRenderGraphBlockConnectionPointTypes.Undefined) {\r\n super(name, frameGraph, scene);\r\n\r\n this._type = type;\r\n this._isInput = true;\r\n this.registerOutput(\"output\", type);\r\n this.setDefaultValue();\r\n }\r\n\r\n /**\r\n * Set the input block to its default value (based on its type)\r\n */\r\n public setDefaultValue() {\r\n switch (this.type) {\r\n case NodeRenderGraphBlockConnectionPointTypes.Texture:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureNormalizedViewDepth:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldNormal:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureIrradiance:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureAlbedoSqrt:\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureObjectId: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n targetTypes: [Constants.TEXTURE_2D],\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_RGBA],\r\n layerCounts: [0],\r\n samples: 1,\r\n useSRGBBuffers: [false],\r\n creationFlags: [0],\r\n },\r\n sizeIsPercentage: true,\r\n isHistoryTexture: false,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment: {\r\n const options: FrameGraphTextureCreationOptions = {\r\n size: { width: 100, height: 100 },\r\n options: {\r\n createMipMaps: false,\r\n targetTypes: [Constants.TEXTURE_2D],\r\n types: [Constants.TEXTURETYPE_UNSIGNED_BYTE],\r\n formats: [Constants.TEXTUREFORMAT_DEPTH24_STENCIL8],\r\n layerCounts: [0],\r\n useSRGBBuffers: [false],\r\n creationFlags: [0],\r\n labels: [this.name],\r\n samples: 1,\r\n },\r\n sizeIsPercentage: true,\r\n isHistoryTexture: false,\r\n };\r\n this.creationOptions = options;\r\n break;\r\n }\r\n case NodeRenderGraphBlockConnectionPointTypes.ObjectList:\r\n this.value = { meshes: null, particleSystems: null };\r\n this.isExternal = true;\r\n break;\r\n case NodeRenderGraphBlockConnectionPointTypes.Camera:\r\n this.value = this._scene.cameras[0];\r\n this.isExternal = true;\r\n break;\r\n default:\r\n this.isExternal = true;\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the value of that point.\r\n */\r\n public get value(): Nullable<NodeRenderGraphValueType> {\r\n return this._storedValue;\r\n }\r\n\r\n public set value(value: Nullable<NodeRenderGraphValueType>) {\r\n this._storedValue = value;\r\n this.output.value = undefined;\r\n this.onValueChangedObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Gets the value as a specific type\r\n * @returns the value as a specific type\r\n */\r\n public getTypedValue<T extends NodeRenderGraphValueType>(): T {\r\n return this._storedValue as T;\r\n }\r\n\r\n /**\r\n * Gets the value as an internal texture\r\n * @returns The internal texture stored in value if value is an internal texture, otherwise null\r\n */\r\n public getInternalTextureFromValue(): Nullable<InternalTexture> {\r\n if ((this._storedValue as InternalTexture)._swapAndDie) {\r\n return this._storedValue as InternalTexture;\r\n }\r\n return null;\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 \"NodeRenderGraphInputBlock\";\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 * Check if the block is a texture of any type\r\n * @returns true if the block is a texture\r\n */\r\n public isAnyTexture(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAll) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is the back buffer texture\r\n * @returns true if the connection point is the back buffer texture\r\n */\r\n public isBackBuffer() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBuffer) !== 0;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating that the connection point is a depth/stencil attachment texture\r\n * @returns true if the connection point is a depth/stencil attachment texture\r\n */\r\n public isBackBufferDepthStencilAttachment() {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a camera\r\n * @returns true if the block is a camera\r\n */\r\n public isCamera(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.Camera) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is an object list\r\n * @returns true if the block is an object list\r\n */\r\n public isObjectList(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ObjectList) !== 0;\r\n }\r\n\r\n /**\r\n * Check if the block is a shadow light\r\n * @returns true if the block is a shadow light\r\n */\r\n public isShadowLight(): boolean {\r\n return (this.type & NodeRenderGraphBlockConnectionPointTypes.ShadowLight) !== 0;\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (this.isExternal) {\r\n if (this.isBackBuffer()) {\r\n this.output.value = backbufferColorTextureHandle;\r\n } else if (this.isBackBufferDepthStencilAttachment()) {\r\n this.output.value = backbufferDepthStencilTextureHandle;\r\n } else if (this.isCamera()) {\r\n this.output.value = this.getTypedValue<Camera>();\r\n } else if (this.isObjectList()) {\r\n this.output.value = this.getTypedValue<FrameGraphObjectList>();\r\n } else if (this.isShadowLight()) {\r\n this.output.value = this.getTypedValue<IShadowLight>();\r\n } else {\r\n if (this._storedValue === undefined || this._storedValue === null) {\r\n throw new Error(`NodeRenderGraphInputBlock: External input \"${this.name}\" is not set`);\r\n }\r\n const texture = this.getInternalTextureFromValue();\r\n if (texture) {\r\n this.output.value = this._frameGraph.textureManager.importTexture(this.name, texture, this.output.value as FrameGraphTextureHandle);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if ((this.type & NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer) !== 0) {\r\n const textureCreateOptions = this.creationOptions;\r\n\r\n if (!textureCreateOptions) {\r\n throw new Error(`NodeRenderGraphInputBlock: Creation options are missing for texture \"${this.name}\"`);\r\n }\r\n\r\n this.output.value = this._frameGraph.textureManager.createRenderTargetTexture(this.name, textureCreateOptions);\r\n }\r\n }\r\n\r\n public override dispose() {\r\n this._storedValue = null;\r\n this.onValueChangedObservable.clear();\r\n super.dispose();\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.isExternal = ${this.isExternal};`);\r\n if (this.isAnyTexture()) {\r\n if (!this.isExternal) {\r\n codes.push(`${this._codeVariableName}.creationOptions = ${JSON.stringify(this.creationOptions)};`);\r\n } else {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_TEXTURE; // TODO: set the external texture`);\r\n }\r\n } else if (this.isCamera()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_CAMERA; // TODO: set the external camera`);\r\n } else if (this.isObjectList()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_OBJECT_LIST; // TODO: set the external object list`);\r\n } else if (this.isShadowLight()) {\r\n codes.push(`${this._codeVariableName}.value = EXTERNAL_SHADOW_LIGHT; // TODO: set the external shadow light`);\r\n }\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.type = this.type;\r\n serializationObject.isExternal = this.isExternal;\r\n if (this.creationOptions) {\r\n serializationObject.creationOptions = this.creationOptions;\r\n }\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this._type = serializationObject.type;\r\n this.output.type = this._type;\r\n this.isExternal = serializationObject.isExternal;\r\n if (serializationObject.creationOptions) {\r\n if (serializationObject.creationOptions.options.depthTextureFormat !== undefined) {\r\n // Backward compatibility - remove this code in the future\r\n serializationObject.creationOptions.options.formats = [serializationObject.creationOptions.options.depthTextureFormat];\r\n }\r\n this.creationOptions = serializationObject.creationOptions;\r\n }\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Register side effects for frameGraphNodeBlocksInputBlock.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterFrameGraphNodeBlocksInputBlock(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.NodeRenderGraphInputBlock\", NodeRenderGraphInputBlock);\r\n}\r\n"]}
|
|
@@ -78,6 +78,8 @@ export declare enum NodeRenderGraphBlockConnectionPointTypes {
|
|
|
78
78
|
TextureLinearVelocity = 32768,
|
|
79
79
|
/** Normalied depth (in view space) geometry texture */
|
|
80
80
|
TextureNormalizedViewDepth = 65536,
|
|
81
|
+
/** Object ID geometry texture */
|
|
82
|
+
TextureObjectId = 131072,
|
|
81
83
|
/** Bit field for all textures but back buffer depth/stencil */
|
|
82
84
|
TextureAllButBackBufferDepthStencil = 1048571,
|
|
83
85
|
/** Bit field for all textures but back buffer color and depth/stencil */
|
|
@@ -37,6 +37,8 @@ export var NodeRenderGraphBlockConnectionPointTypes;
|
|
|
37
37
|
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureLinearVelocity"] = 32768] = "TextureLinearVelocity";
|
|
38
38
|
/** Normalied depth (in view space) geometry texture */
|
|
39
39
|
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureNormalizedViewDepth"] = 65536] = "TextureNormalizedViewDepth";
|
|
40
|
+
/** Object ID geometry texture */
|
|
41
|
+
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureObjectId"] = 131072] = "TextureObjectId";
|
|
40
42
|
/** Bit field for all textures but back buffer depth/stencil */
|
|
41
43
|
NodeRenderGraphBlockConnectionPointTypes[NodeRenderGraphBlockConnectionPointTypes["TextureAllButBackBufferDepthStencil"] = 1048571] = "TextureAllButBackBufferDepthStencil";
|
|
42
44
|
/** Bit field for all textures but back buffer color and depth/stencil */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeRenderGraphTypes.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Types/nodeRenderGraphTypes.ts"],"names":[],"mappings":"AAyDA;;GAEG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"nodeRenderGraphTypes.js","sourceRoot":"","sources":["../../../../../../dev/core/src/FrameGraph/Node/Types/nodeRenderGraphTypes.ts"],"names":[],"mappings":"AAyDA;;GAEG;AACH,MAAM,CAAN,IAAY,wCAkEX;AAlED,WAAY,wCAAwC;IAChD,8BAA8B;IAC9B,6GAAoB,CAAA;IACpB,gCAAgC;IAChC,iIAA8B,CAAA;IAC9B,2CAA2C;IAC3C,6KAAoD,CAAA;IACpD,+BAA+B;IAC/B,yJAA0C,CAAA;IAC1C,6CAA6C;IAC7C,gIAA6B,CAAA;IAC7B,8CAA8C;IAC9C,kIAA8B,CAAA;IAC9B,8BAA8B;IAC9B,0HAA0B,CAAA;IAC1B,oCAAoC;IACpC,uIAAgC,CAAA;IAChC,iDAAiD;IACjD,yIAAiC,CAAA;IACjC,gCAAgC;IAChC,+HAA4B,CAAA;IAC5B,kCAAkC;IAClC,oIAA8B,CAAA;IAC9B,qCAAqC;IACrC,oIAA8B,CAAA;IAC9B,+CAA+C;IAC/C,sIAA+B,CAAA;IAC/B,+CAA+C;IAC/C,sIAA+B,CAAA;IAC/B,iDAAiD;IACjD,2IAAiC,CAAA;IACjC,uCAAuC;IACvC,6IAAkC,CAAA;IAClC,uDAAuD;IACvD,uJAAuC,CAAA;IACvC,iCAAiC;IACjC,kIAA4B,CAAA;IAE5B,+DAA+D;IAC/D,2KAAgD,CAAA;IAChD,yEAAyE;IACzE,mJAAoC,CAAA;IACpC,iCAAiC;IACjC,yHAAuB,CAAA;IAEvB,yBAAyB;IACzB,uIAA8B,CAAA;IAC9B,uBAAuB;IACvB,mIAA4B,CAAA;IAC5B,YAAY;IACZ,2HAAwB,CAAA;IACxB,aAAa;IACb,kHAAmB,CAAA;IACnB,0DAA0D;IAC1D,0HAAuB,CAAA;IAEvB,sCAAsC;IACtC,2HAAuB,CAAA;IACvB,qDAAqD;IACrD,+HAAyB,CAAA;IACzB,gBAAgB;IAChB,0HAAsB,CAAA;IACtB,oBAAoB;IACpB,oHAAmB,CAAA;IACnB,2BAA2B;IAC3B,8GAAgB,CAAA;AACpB,CAAC,EAlEW,wCAAwC,KAAxC,wCAAwC,QAkEnD;AAED;;GAEG;AACH,MAAM,CAAN,IAAkB,iDAOjB;AAPD,WAAkB,iDAAiD;IAC/D,6BAA6B;IAC7B,qIAAU,CAAA;IACV,qDAAqD;IACrD,iJAAgB,CAAA;IAChB,sEAAsE;IACtE,6IAAc,CAAA;AAClB,CAAC,EAPiB,iDAAiD,KAAjD,iDAAiD,QAOlE;AAED;;GAEG;AACH,MAAM,CAAN,IAAkB,uCAKjB;AALD,WAAkB,uCAAuC;IACrD,YAAY;IACZ,uGAAK,CAAA;IACL,aAAa;IACb,yGAAM,CAAA;AACV,CAAC,EALiB,uCAAuC,KAAvC,uCAAuC,QAKxD","sourcesContent":["import {\r\n type Color4,\r\n type Scene,\r\n type FrameGraphTextureHandle,\r\n type Camera,\r\n type FrameGraphObjectList,\r\n type IShadowLight,\r\n type FrameGraphShadowGeneratorTask,\r\n type FrameGraphObjectRendererTask,\r\n type FrameGraph,\r\n type NodeRenderGraphBlock,\r\n} from \"core/index\";\r\n\r\n/**\r\n * Description of a custom block to be used in the node render graph editor\r\n */\r\nexport interface INodeRenderGraphCustomBlockDescription {\r\n /** Block name. It will be used as the block name in the left menu of the editor. Spaces must be replaced by underscores in the name. */\r\n name: string;\r\n /** Description (tooltip) of the block. */\r\n description: string;\r\n /** Category of the block. Spaces must be replaced by underscores in the category name. */\r\n menu: string;\r\n /** Factory function to create the block. */\r\n factory: (frameGraph: FrameGraph, scene: Scene) => NodeRenderGraphBlock;\r\n}\r\n\r\n/**\r\n * Interface used to configure the node render graph editor\r\n */\r\nexport interface INodeRenderGraphEditorOptions {\r\n /** Define the URL to load node editor script from */\r\n editorURL?: string;\r\n /** Additional configuration for the FGE */\r\n nodeRenderGraphEditorConfig?: {\r\n backgroundColor?: Color4;\r\n hostScene?: Scene;\r\n customBlockDescriptions?: INodeRenderGraphCustomBlockDescription[];\r\n };\r\n}\r\n\r\n/**\r\n * Options that can be passed to the node render graph build method\r\n */\r\nexport interface INodeRenderGraphCreateOptions {\r\n /** If true, textures created by the node render graph will be visible in the inspector, for easier debugging (default: false) */\r\n debugTextures?: boolean;\r\n /** Rebuild the node render graph when the screen is resized (default: true) */\r\n rebuildGraphOnEngineResize?: boolean;\r\n /** Defines if the build should log activity (default: false) */\r\n verbose?: boolean;\r\n /** Defines if the autoConfigure method should be called when initializing blocks (default: false) */\r\n autoConfigure?: boolean;\r\n /** If true, external inputs like object lists and cameras will be filled with default values, taken from the scene. Note that external textures are not concerned (default: true). */\r\n autoFillExternalInputs?: boolean;\r\n}\r\n\r\n/**\r\n * Defines the kind of connection point for node render graph nodes\r\n */\r\nexport enum NodeRenderGraphBlockConnectionPointTypes {\r\n /** General purpose texture */\r\n Texture = 0x00000001,\r\n /** Back buffer color texture */\r\n TextureBackBuffer = 0x00000002,\r\n /** Back buffer depth/stencil attachment */\r\n TextureBackBufferDepthStencilAttachment = 0x00000004,\r\n /** Depth/stencil attachment */\r\n TextureDepthStencilAttachment = 0x00000008,\r\n /** Depth (in view space) geometry texture */\r\n TextureViewDepth = 0x00000010,\r\n /** Normal (in view space) geometry texture */\r\n TextureViewNormal = 0x00000020,\r\n /** Albedo geometry texture */\r\n TextureAlbedo = 0x00000040,\r\n /** Reflectivity geometry texture */\r\n TextureReflectivity = 0x00000080,\r\n /** Position (in world space) geometry texture */\r\n TextureWorldPosition = 0x00000100,\r\n /** Velocity geometry texture */\r\n TextureVelocity = 0x00000200,\r\n /** Irradiance geometry texture */\r\n TextureIrradiance = 0x00000400,\r\n /** Albedo (sqrt) geometry texture */\r\n TextureAlbedoSqrt = 0x00000800,\r\n /** Depth (in screen space) geometry texture */\r\n TextureScreenDepth = 0x00001000,\r\n /** Normal (in world space) geometry texture */\r\n TextureWorldNormal = 0x00002000,\r\n /** Position (in local space) geometry texture */\r\n TextureLocalPosition = 0x00004000,\r\n /** Linear velocity geometry texture */\r\n TextureLinearVelocity = 0x00008000,\r\n /** Normalied depth (in view space) geometry texture */\r\n TextureNormalizedViewDepth = 0x00010000,\r\n /** Object ID geometry texture */\r\n TextureObjectId = 0x00020000,\r\n\r\n /** Bit field for all textures but back buffer depth/stencil */\r\n TextureAllButBackBufferDepthStencil = 0x000ffffb,\r\n /** Bit field for all textures but back buffer color and depth/stencil */\r\n TextureAllButBackBuffer = 0x000ffff9,\r\n /** Bit field for all textures */\r\n TextureAll = 0x000fffff,\r\n\r\n /** Resource container */\r\n ResourceContainer = 0x00100000,\r\n /** Shadow generator */\r\n ShadowGenerator = 0x00200000,\r\n /** Light */\r\n ShadowLight = 0x00400000,\r\n /** Camera */\r\n Camera = 0x01000000,\r\n /** List of objects (meshes, particle systems, sprites) */\r\n ObjectList = 0x02000000,\r\n\r\n /** Detect type based on connection */\r\n AutoDetect = 0x10000000,\r\n /** Output type that will be defined by input type */\r\n BasedOnInput = 0x20000000,\r\n /** Undefined */\r\n Undefined = 0x40000000,\r\n /** Custom object */\r\n Object = 0x80000000,\r\n /** Bitmask of all types */\r\n All = 0xffffffff,\r\n}\r\n\r\n/**\r\n * Enum used to define the compatibility state between two connection points\r\n */\r\nexport const enum NodeRenderGraphConnectionPointCompatibilityStates {\r\n /** Points are compatibles */\r\n Compatible,\r\n /** Points are incompatible because of their types */\r\n TypeIncompatible,\r\n /** Points are incompatible because they are in the same hierarchy **/\r\n HierarchyIssue,\r\n}\r\n\r\n/**\r\n * Defines the direction of a connection point\r\n */\r\nexport const enum NodeRenderGraphConnectionPointDirection {\r\n /** Input */\r\n Input,\r\n /** Output */\r\n Output,\r\n}\r\n\r\n/**\r\n * Defines the type of a connection point value\r\n */\r\nexport type NodeRenderGraphBlockConnectionPointValueType =\r\n FrameGraphTextureHandle | Camera | FrameGraphObjectList | IShadowLight | FrameGraphShadowGeneratorTask | FrameGraphObjectRendererTask;\r\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type FrameGraphTextureHandle, type Scene, type FrameGraph, type AbstractMesh, type ObjectRendererOptions, type FrameGraphRenderContext, type FrameGraphRenderPass, type ObjectRenderer } from "../../../index.js";
|
|
2
|
+
import { type GeometryRenderingObjectIdProvider } from "../../../Materials/materialHelper.geometryrendering.js";
|
|
2
3
|
import { FrameGraphObjectRendererTask } from "./objectRendererTask.js";
|
|
3
4
|
/**
|
|
4
5
|
* Description of a texture used by the geometry renderer task.
|
|
@@ -59,6 +60,20 @@ export declare class FrameGraphGeometryRendererTask extends FrameGraphObjectRend
|
|
|
59
60
|
* The list of texture descriptions used by the geometry renderer task.
|
|
60
61
|
*/
|
|
61
62
|
textureDescriptions: IFrameGraphGeometryRendererTextureDescription[];
|
|
63
|
+
private _objectIdProvider?;
|
|
64
|
+
/**
|
|
65
|
+
* Provides the object ID written for each rendered mesh.
|
|
66
|
+
*
|
|
67
|
+
* IDs must be integers between 0 and 0xFFFFFF for RGBA textures, or between 0 and 0xFF for RED textures.
|
|
68
|
+
* ID 0 is reserved for background or excluded meshes.
|
|
69
|
+
* By default, meshes use their unique ID.
|
|
70
|
+
* Instances use the ID of their source mesh. Default IDs are only stable for the lifetime of the current scene and should not be persisted.
|
|
71
|
+
* When using a RED texture, provide a custom ID if mesh unique IDs can exceed 0xFF.
|
|
72
|
+
* The provider runs in the render hot path and may be called multiple times for the same mesh in a frame.
|
|
73
|
+
* @see https://playground.babylonjs.com/#00T6WJ#0
|
|
74
|
+
*/
|
|
75
|
+
get objectIdProvider(): GeometryRenderingObjectIdProvider | undefined;
|
|
76
|
+
set objectIdProvider(value: GeometryRenderingObjectIdProvider | undefined);
|
|
62
77
|
/**
|
|
63
78
|
* The irradiance output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
|
|
64
79
|
*/
|
|
@@ -108,6 +123,12 @@ export declare class FrameGraphGeometryRendererTask extends FrameGraphObjectRend
|
|
|
108
123
|
* The linear velocity output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
|
|
109
124
|
*/
|
|
110
125
|
readonly geometryLinearVelocityTexture: FrameGraphTextureHandle;
|
|
126
|
+
/**
|
|
127
|
+
* The object ID output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
|
|
128
|
+
* RGBA unsigned byte textures store 24-bit IDs, while RED unsigned byte textures store 8-bit IDs.
|
|
129
|
+
* Decode RED values with `round(value * 255.0)`.
|
|
130
|
+
*/
|
|
131
|
+
readonly geometryObjectIdTexture: FrameGraphTextureHandle;
|
|
111
132
|
/**
|
|
112
133
|
* Gets or sets the name of the task.
|
|
113
134
|
*/
|