@onerjs/core 8.27.1 → 8.27.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/Animations/runtimeAnimation.js +6 -1
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Cameras/camera.d.ts +2 -2
- package/Cameras/camera.js +2 -2
- package/Cameras/camera.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.d.ts +19 -2
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +72 -4
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +8 -3
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +34 -12
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.d.ts +0 -12
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js +0 -45
- package/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.d.ts +7 -3
- package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js +18 -32
- package/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +2 -1
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/Layers/layerSceneComponent.js +3 -3
- package/Layers/layerSceneComponent.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.d.ts +4 -1
- package/Lights/Clustered/clusteredLightContainer.js +17 -2
- package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
- package/Lights/index.d.ts +1 -0
- package/Lights/index.js +1 -0
- package/Lights/index.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +2 -0
- package/Materials/Textures/renderTargetTexture.js +3 -0
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Misc/index.d.ts +1 -0
- package/Misc/index.js +1 -0
- package/Misc/index.js.map +1 -1
- package/Navigation/INavigationEngine.d.ts +17 -5
- package/Navigation/INavigationEngine.js.map +1 -1
- package/Navigation/Plugins/recastJSPlugin.d.ts +3 -2
- package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +4 -0
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +10 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.d.ts +3 -1
- package/PostProcesses/motionBlurPostProcess.js +13 -4
- package/PostProcesses/motionBlurPostProcess.js.map +1 -1
- package/Rendering/objectRenderer.d.ts +2 -0
- package/Rendering/objectRenderer.js +13 -0
- package/Rendering/objectRenderer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometryRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph, FrameGraphTextureHandle, FrameGraphObjectList, Camera } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {\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 */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\r\n\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\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.depth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment\r\n );\r\n\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get doNotChangeAspectRatio() {\r\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\r\n }\r\n\r\n /** Indicates if layer mask check must be forced */\r\n @editableInPropertyPage(\"Force layer mask check\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get forceLayerMaskCheck() {\r\n return this._frameGraphTask.forceLayerMaskCheck;\r\n }\r\n\r\n public set forceLayerMaskCheck(value: boolean) {\r\n this._frameGraphTask.forceLayerMaskCheck = value;\r\n }\r\n\r\n public set doNotChangeAspectRatio(value: boolean) {\r\n const disabled = this._frameGraphTask.disabled;\r\n const depthTest = this.depthTest;\r\n const depthWrite = this.depthWrite;\r\n const width = this.width;\r\n const height = this.height;\r\n const sizeInPercentage = this.sizeInPercentage;\r\n const samples = this.samples;\r\n const reverseCulling = this.reverseCulling;\r\n const dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n\r\n this._frameGraphTask.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\r\n this._additionalConstructionParameters = [value];\r\n\r\n this.depthTest = depthTest;\r\n this.depthWrite = depthWrite;\r\n this.width = width;\r\n this.height = height;\r\n this.sizeInPercentage = sizeInPercentage;\r\n this.samples = samples;\r\n this.reverseCulling = reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this._frameGraphTask.disabled = disabled;\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\", { 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, \"PROPERTIES\")\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, \"PROPERTIES\")\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 // View depth\r\n @editableInPropertyPage(\"View depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"View depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n @editableInPropertyPage(\"Normalized view depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"Normalized view depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n @editableInPropertyPage(\"Screen depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"Screen depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n @editableInPropertyPage(\"View normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"View normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n @editableInPropertyPage(\"World normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n @editableInPropertyPage(\"Local position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Local position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n @editableInPropertyPage(\"World position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n @editableInPropertyPage(\"Albedo format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Albedo type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n @editableInPropertyPage(\"Reflectivity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Reflectivity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n @editableInPropertyPage(\"Velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n @editableInPropertyPage(\"Linear velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Linear velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public linearVelocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\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 depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\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[1];\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[2];\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[3];\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[4];\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[5];\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[6];\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[7];\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[8];\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[9];\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[10];\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[11];\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.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.outputDepth.value = this._frameGraphTask.outputDepthTexture;\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.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\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.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_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}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\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}.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 public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\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.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\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\nRegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"geometryRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph, FrameGraphTextureHandle, FrameGraphObjectList, Camera } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask\";\r\nimport { Constants } from \"core/Engines/constants\";\r\n\r\n/**\r\n * Block that render geometry of objects to a multi render target\r\n */\r\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {\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._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect, true);\r\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\r\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\r\n this._addDependenciesInput();\r\n\r\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\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.depth.addExcludedConnectionPointFromAllowedTypes(\r\n NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment | NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment\r\n );\r\n\r\n this.outputDepth._typeConnectionSource = this.depth;\r\n\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio, enableClusteredLights });\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth test\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthTest() {\r\n return this._frameGraphTask.depthTest;\r\n }\r\n\r\n public set depthTest(value: boolean) {\r\n this._frameGraphTask.depthTest = value;\r\n }\r\n\r\n /** Indicates if depth writing must be enabled or disabled */\r\n @editableInPropertyPage(\"Depth write\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get depthWrite() {\r\n return this._frameGraphTask.depthWrite;\r\n }\r\n\r\n public set depthWrite(value: boolean) {\r\n this._frameGraphTask.depthWrite = value;\r\n }\r\n\r\n /** Indicates if layer mask check must be forced */\r\n @editableInPropertyPage(\"Force layer mask check\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get forceLayerMaskCheck() {\r\n return this._frameGraphTask.forceLayerMaskCheck;\r\n }\r\n\r\n public set forceLayerMaskCheck(value: boolean) {\r\n this._frameGraphTask.forceLayerMaskCheck = value;\r\n }\r\n\r\n protected _recreateFrameGraphObject(doNotChangeAspectRatio: boolean, enableClusteredLights: boolean): void {\r\n const disabled = this._frameGraphTask.disabled;\r\n const depthTest = this.depthTest;\r\n const depthWrite = this.depthWrite;\r\n const width = this.width;\r\n const height = this.height;\r\n const forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n const sizeInPercentage = this.sizeInPercentage;\r\n const samples = this.samples;\r\n const reverseCulling = this.reverseCulling;\r\n const dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\r\n\r\n this._frameGraphTask.dispose();\r\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: doNotChangeAspectRatio,\r\n enableClusteredLights: enableClusteredLights,\r\n });\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio, enableClusteredLights];\r\n\r\n this.depthTest = depthTest;\r\n this.depthWrite = depthWrite;\r\n this.width = width;\r\n this.height = height;\r\n this.forceLayerMaskCheck = forceLayerMaskCheck;\r\n this.sizeInPercentage = sizeInPercentage;\r\n this.samples = samples;\r\n this.reverseCulling = reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = dontRenderWhenMaterialDepthWriteIsDisabled;\r\n this._frameGraphTask.disabled = disabled;\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get doNotChangeAspectRatio() {\r\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\r\n }\r\n\r\n public set doNotChangeAspectRatio(value: boolean) {\r\n this._recreateFrameGraphObject(value, this.enableClusteredLights);\r\n }\r\n\r\n /** True (default) to enable clustered lights */\r\n @editableInPropertyPage(\"Enable clustered lights\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get enableClusteredLights() {\r\n return this._frameGraphTask.objectRenderer.options.enableClusteredLights;\r\n }\r\n\r\n public set enableClusteredLights(value: boolean) {\r\n this._recreateFrameGraphObject(this.doNotChangeAspectRatio, value);\r\n }\r\n\r\n /** Width of the geometry texture */\r\n @editableInPropertyPage(\"Texture width\", PropertyTypeForEdition.Int, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\")\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, \"PROPERTIES\", { 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, \"PROPERTIES\")\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, \"PROPERTIES\")\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 // View depth\r\n @editableInPropertyPage(\"View depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"View depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Normalized view depth\r\n @editableInPropertyPage(\"Normalized view depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public normalizedViewDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"Normalized view depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public normalizedViewDepthType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Screen depth\r\n @editableInPropertyPage(\"Screen depth format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public screenDepthFormat = Constants.TEXTUREFORMAT_RED;\r\n\r\n @editableInPropertyPage(\"Screen depth type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public screenDepthType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // View normal\r\n @editableInPropertyPage(\"View normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public viewNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"View normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public viewNormalType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World normal\r\n @editableInPropertyPage(\"World normal format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldNormalFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World normal type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldNormalType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Local position\r\n @editableInPropertyPage(\"Local position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public localPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Local position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public localPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // World Position\r\n @editableInPropertyPage(\"World position format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public worldPositionFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"World position type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public worldPositionType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n // Albedo\r\n @editableInPropertyPage(\"Albedo format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public albedoFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Albedo type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public albedoType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Reflectivity\r\n @editableInPropertyPage(\"Reflectivity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public reflectivityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Reflectivity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public reflectivityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Velocity\r\n @editableInPropertyPage(\"Velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public velocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public velocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\r\n\r\n // Linear velocity\r\n @editableInPropertyPage(\"Linear velocity format\", PropertyTypeForEdition.TextureFormat, \"GEOMETRY BUFFERS\")\r\n public linearVelocityFormat = Constants.TEXTUREFORMAT_RGBA;\r\n\r\n @editableInPropertyPage(\"Linear velocity type\", PropertyTypeForEdition.TextureType, \"GEOMETRY BUFFERS\")\r\n public linearVelocityType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\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 depth texture input component\r\n */\r\n public get depth(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the camera input component\r\n */\r\n public get camera(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the objects input component\r\n */\r\n public get objects(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the output depth component\r\n */\r\n public get outputDepth(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\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[1];\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[2];\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[3];\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[4];\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[5];\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[6];\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[7];\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[8];\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[9];\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[10];\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[11];\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.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.outputDepth.value = this._frameGraphTask.outputDepthTexture;\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.depthTexture = this.depth.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.camera = this.camera.connectedPoint?.value as Camera;\r\n this._frameGraphTask.objectList = this.objects.connectedPoint?.value as FrameGraphObjectList;\r\n\r\n this._frameGraphTask.textureDescriptions = [];\r\n\r\n const textureFormats = [\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.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_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}.depthTest = ${this.depthTest};`);\r\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\r\n codes.push(`${this._codeVariableName}.forceLayerMaskCheck = ${this.forceLayerMaskCheck};`);\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}.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 public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n serializationObject.depthTest = this.depthTest;\r\n serializationObject.depthWrite = this.depthWrite;\r\n serializationObject.forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n serializationObject.samples = this.samples;\r\n serializationObject.reverseCulling = this.reverseCulling;\r\n serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled = this.dontRenderWhenMaterialDepthWriteIsDisabled;\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.depthTest = serializationObject.depthTest;\r\n this.depthWrite = serializationObject.depthWrite;\r\n this.forceLayerMaskCheck = !!serializationObject.forceLayerMaskCheck;\r\n this.samples = serializationObject.samples;\r\n this.reverseCulling = serializationObject.reverseCulling;\r\n this.dontRenderWhenMaterialDepthWriteIsDisabled = serializationObject.dontRenderWhenMaterialDepthWriteIsDisabled;\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\nRegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\r\n"]}
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
import type { Scene, FrameGraph } from "../../../../index.js";
|
|
2
1
|
import { NodeRenderGraphBaseObjectRendererBlock } from "./baseObjectRendererBlock.js";
|
|
3
2
|
/**
|
|
4
3
|
* Block that render objects to a render target
|
|
5
4
|
*/
|
|
6
5
|
export declare class NodeRenderGraphObjectRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {
|
|
7
|
-
/**
|
|
8
|
-
* Create a new NodeRenderGraphObjectRendererBlock
|
|
9
|
-
* @param name defines the block name
|
|
10
|
-
* @param frameGraph defines the hosting frame graph
|
|
11
|
-
* @param scene defines the hosting scene
|
|
12
|
-
* @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT
|
|
13
|
-
*/
|
|
14
|
-
constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio?: boolean);
|
|
15
|
-
/** True (default) to not change the aspect ratio of the scene in the RTT */
|
|
16
|
-
get doNotChangeAspectRatio(): boolean;
|
|
17
|
-
set doNotChangeAspectRatio(value: boolean);
|
|
18
6
|
/**
|
|
19
7
|
* Gets the current class name
|
|
20
8
|
* @returns the class name
|
|
@@ -1,51 +1,9 @@
|
|
|
1
|
-
import { __decorate } from "../../../../tslib.es6.js";
|
|
2
1
|
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
3
|
-
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
4
|
-
import { FrameGraphObjectRendererTask } from "../../../Tasks/Rendering/objectRendererTask.js";
|
|
5
2
|
import { NodeRenderGraphBaseObjectRendererBlock } from "./baseObjectRendererBlock.js";
|
|
6
3
|
/**
|
|
7
4
|
* Block that render objects to a render target
|
|
8
5
|
*/
|
|
9
6
|
export class NodeRenderGraphObjectRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {
|
|
10
|
-
/**
|
|
11
|
-
* Create a new NodeRenderGraphObjectRendererBlock
|
|
12
|
-
* @param name defines the block name
|
|
13
|
-
* @param frameGraph defines the hosting frame graph
|
|
14
|
-
* @param scene defines the hosting scene
|
|
15
|
-
* @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT
|
|
16
|
-
*/
|
|
17
|
-
constructor(name, frameGraph, scene, doNotChangeAspectRatio = true) {
|
|
18
|
-
super(name, frameGraph, scene);
|
|
19
|
-
this._additionalConstructionParameters = [doNotChangeAspectRatio];
|
|
20
|
-
this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });
|
|
21
|
-
}
|
|
22
|
-
/** True (default) to not change the aspect ratio of the scene in the RTT */
|
|
23
|
-
get doNotChangeAspectRatio() {
|
|
24
|
-
return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;
|
|
25
|
-
}
|
|
26
|
-
set doNotChangeAspectRatio(value) {
|
|
27
|
-
const disabled = this._frameGraphTask.disabled;
|
|
28
|
-
const depthTest = this.depthTest;
|
|
29
|
-
const depthWrite = this.depthWrite;
|
|
30
|
-
const disableShadows = this.disableShadows;
|
|
31
|
-
const renderInLinearSpace = this.renderInLinearSpace;
|
|
32
|
-
const renderParticles = this.renderParticles;
|
|
33
|
-
const renderSprites = this.renderSprites;
|
|
34
|
-
const forceLayerMaskCheck = this.forceLayerMaskCheck;
|
|
35
|
-
const enableBoundingBoxRendering = this.enableBoundingBoxRendering;
|
|
36
|
-
this._frameGraphTask.dispose();
|
|
37
|
-
this._frameGraphTask = new FrameGraphObjectRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });
|
|
38
|
-
this._additionalConstructionParameters = [value];
|
|
39
|
-
this.depthTest = depthTest;
|
|
40
|
-
this.depthWrite = depthWrite;
|
|
41
|
-
this.disableShadows = disableShadows;
|
|
42
|
-
this.renderInLinearSpace = renderInLinearSpace;
|
|
43
|
-
this.renderParticles = renderParticles;
|
|
44
|
-
this.renderSprites = renderSprites;
|
|
45
|
-
this.forceLayerMaskCheck = forceLayerMaskCheck;
|
|
46
|
-
this.enableBoundingBoxRendering = enableBoundingBoxRendering;
|
|
47
|
-
this._frameGraphTask.disabled = disabled;
|
|
48
|
-
}
|
|
49
7
|
/**
|
|
50
8
|
* Gets the current class name
|
|
51
9
|
* @returns the class name
|
|
@@ -54,8 +12,5 @@ export class NodeRenderGraphObjectRendererBlock extends NodeRenderGraphBaseObjec
|
|
|
54
12
|
return "NodeRenderGraphObjectRendererBlock";
|
|
55
13
|
}
|
|
56
14
|
}
|
|
57
|
-
__decorate([
|
|
58
|
-
editableInPropertyPage("Do not change aspect ratio", 0 /* PropertyTypeForEdition.Boolean */, "PROPERTIES")
|
|
59
|
-
], NodeRenderGraphObjectRendererBlock.prototype, "doNotChangeAspectRatio", null);
|
|
60
15
|
RegisterClass("BABYLON.NodeRenderGraphObjectRendererBlock", NodeRenderGraphObjectRendererBlock);
|
|
61
16
|
//# sourceMappingURL=objectRendererBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"objectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/objectRendererBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAC;AAEnF;;GAEG;AACH,MAAM,OAAO,kCAAmC,SAAQ,sCAAsC;IAC1F;;;OAGG;IACa,YAAY;QACxB,OAAO,oCAAoC,CAAC;IAChD,CAAC;CACJ;AAED,aAAa,CAAC,4CAA4C,EAAE,kCAAkC,CAAC,CAAC","sourcesContent":["import { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\n\r\n/**\r\n * Block that render objects to a render target\r\n */\r\nexport class NodeRenderGraphObjectRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\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 \"NodeRenderGraphObjectRendererBlock\";\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphObjectRendererBlock\", NodeRenderGraphObjectRendererBlock);\r\n"]}
|
|
@@ -18,9 +18,13 @@ export declare class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGra
|
|
|
18
18
|
* @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT
|
|
19
19
|
*/
|
|
20
20
|
constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio?: boolean);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
protected _createFrameGraphObject(): void;
|
|
22
|
+
protected _saveState(state: {
|
|
23
|
+
[key: string]: any;
|
|
24
|
+
}): void;
|
|
25
|
+
protected _restoreState(state: {
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
}): void;
|
|
24
28
|
/** Number of accumulated samples */
|
|
25
29
|
get samples(): number;
|
|
26
30
|
set samples(value: number);
|
|
@@ -25,32 +25,24 @@ export class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGraphBaseOb
|
|
|
25
25
|
this._additionalConstructionParameters = [doNotChangeAspectRatio];
|
|
26
26
|
this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
this.depthWrite = depthWrite;
|
|
47
|
-
this.disableShadows = disableShadows;
|
|
48
|
-
this.renderInLinearSpace = renderInLinearSpace;
|
|
49
|
-
this.renderParticles = renderParticles;
|
|
50
|
-
this.renderSprites = renderSprites;
|
|
51
|
-
this.forceLayerMaskCheck = forceLayerMaskCheck;
|
|
52
|
-
this.enableBoundingBoxRendering = enableBoundingBoxRendering;
|
|
53
|
-
this._frameGraphTask.disabled = disabled;
|
|
28
|
+
_createFrameGraphObject() {
|
|
29
|
+
this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, this._frameGraph, this._scene, {
|
|
30
|
+
doNotChangeAspectRatio: this._additionalConstructionParameters[0],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
_saveState(state) {
|
|
34
|
+
super._saveState(state);
|
|
35
|
+
state.samples = this.samples;
|
|
36
|
+
state.factor = this.factor;
|
|
37
|
+
state.disableOnCameraMove = this.disableOnCameraMove;
|
|
38
|
+
state.disableTAA = this.disableTAA;
|
|
39
|
+
}
|
|
40
|
+
_restoreState(state) {
|
|
41
|
+
super._restoreState(state);
|
|
42
|
+
this.samples = state.samples;
|
|
43
|
+
this.factor = state.factor;
|
|
44
|
+
this.disableOnCameraMove = state.disableOnCameraMove;
|
|
45
|
+
this.disableTAA = state.disableTAA;
|
|
54
46
|
}
|
|
55
47
|
/** Number of accumulated samples */
|
|
56
48
|
get samples() {
|
|
@@ -89,7 +81,6 @@ export class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGraphBaseOb
|
|
|
89
81
|
}
|
|
90
82
|
_dumpPropertiesCode() {
|
|
91
83
|
const codes = [];
|
|
92
|
-
codes.push(`${this._codeVariableName}.doNotChangeAspectRatio = ${this.doNotChangeAspectRatio};`);
|
|
93
84
|
codes.push(`${this._codeVariableName}.samples = ${this.samples};`);
|
|
94
85
|
codes.push(`${this._codeVariableName}.factor = ${this.factor};`);
|
|
95
86
|
codes.push(`${this._codeVariableName}.disableOnCameraMove = ${this.disableOnCameraMove};`);
|
|
@@ -98,7 +89,6 @@ export class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGraphBaseOb
|
|
|
98
89
|
}
|
|
99
90
|
serialize() {
|
|
100
91
|
const serializationObject = super.serialize();
|
|
101
|
-
serializationObject.doNotChangeAspectRatio = this.doNotChangeAspectRatio;
|
|
102
92
|
serializationObject.samples = this.samples;
|
|
103
93
|
serializationObject.factor = this.factor;
|
|
104
94
|
serializationObject.disableOnCameraMove = this.disableOnCameraMove;
|
|
@@ -107,16 +97,12 @@ export class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGraphBaseOb
|
|
|
107
97
|
}
|
|
108
98
|
_deserialize(serializationObject) {
|
|
109
99
|
super._deserialize(serializationObject);
|
|
110
|
-
this.doNotChangeAspectRatio = serializationObject.doNotChangeAspectRatio;
|
|
111
100
|
this.samples = serializationObject.samples;
|
|
112
101
|
this.factor = serializationObject.factor;
|
|
113
102
|
this.disableOnCameraMove = serializationObject.disableOnCameraMove;
|
|
114
103
|
this.disableTAA = serializationObject.disableTAA;
|
|
115
104
|
}
|
|
116
105
|
}
|
|
117
|
-
__decorate([
|
|
118
|
-
editableInPropertyPage("Do not change aspect ratio", 0 /* PropertyTypeForEdition.Boolean */, "PROPERTIES")
|
|
119
|
-
], NodeRenderGraphTAAObjectRendererBlock.prototype, "doNotChangeAspectRatio", null);
|
|
120
106
|
__decorate([
|
|
121
107
|
editableInPropertyPage("Samples", 2 /* PropertyTypeForEdition.Int */, "TEMPORAL ANTI-ALIASING")
|
|
122
108
|
], NodeRenderGraphTAAObjectRendererBlock.prototype, "samples", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taaObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scene, FrameGraph } from \"core/index\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphTAAObjectRendererTask } from \"core/FrameGraph/Tasks/Rendering/taaObjectRendererTask\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\n\r\n/**\r\n * Block that render objects with temporal anti-aliasing to a render target\r\n */\r\nexport class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphTAAObjectRendererTask;\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 NodeRenderGraphTAAObjectRendererBlock\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 */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\r\n\r\n this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\r\n }\r\n\r\n /** True (default) to not change the aspect ratio of the scene in the RTT */\r\n @editableInPropertyPage(\"Do not change aspect ratio\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get doNotChangeAspectRatio() {\r\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\r\n }\r\n\r\n public set doNotChangeAspectRatio(value: boolean) {\r\n const disabled = this._frameGraphTask.disabled;\r\n const depthTest = this.depthTest;\r\n const depthWrite = this.depthWrite;\r\n const disableShadows = this.disableShadows;\r\n const renderInLinearSpace = this.renderInLinearSpace;\r\n const renderParticles = this.renderParticles;\r\n const renderSprites = this.renderSprites;\r\n const forceLayerMaskCheck = this.forceLayerMaskCheck;\r\n const enableBoundingBoxRendering = this.enableBoundingBoxRendering;\r\n\r\n this._frameGraphTask.dispose();\r\n this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\r\n this._additionalConstructionParameters = [value];\r\n\r\n this.depthTest = depthTest;\r\n this.depthWrite = depthWrite;\r\n this.disableShadows = disableShadows;\r\n this.renderInLinearSpace = renderInLinearSpace;\r\n this.renderParticles = renderParticles;\r\n this.renderSprites = renderSprites;\r\n this.forceLayerMaskCheck = forceLayerMaskCheck;\r\n this.enableBoundingBoxRendering = enableBoundingBoxRendering;\r\n this._frameGraphTask.disabled = disabled;\r\n }\r\n\r\n /** Number of accumulated samples */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"TEMPORAL ANTI-ALIASING\")\r\n public get samples() {\r\n return this._frameGraphTask.postProcess.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.postProcess.samples = value;\r\n }\r\n\r\n /** The factor used to blend the history frame with current frame */\r\n @editableInPropertyPage(\"Factor\", PropertyTypeForEdition.Float, \"TEMPORAL ANTI-ALIASING\")\r\n public get factor() {\r\n return this._frameGraphTask.postProcess.factor;\r\n }\r\n\r\n public set factor(value: number) {\r\n this._frameGraphTask.postProcess.factor = value;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable on camera move\", PropertyTypeForEdition.Boolean, \"TEMPORAL ANTI-ALIASING\")\r\n public get disableOnCameraMove() {\r\n return this._frameGraphTask.postProcess.disableOnCameraMove;\r\n }\r\n\r\n public set disableOnCameraMove(value: boolean) {\r\n this._frameGraphTask.postProcess.disableOnCameraMove = value;\r\n }\r\n\r\n /** Indicates if TAA must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable TAA\", PropertyTypeForEdition.Boolean, \"TEMPORAL ANTI-ALIASING\")\r\n public get disableTAA() {\r\n return this._frameGraphTask.postProcess.disabled;\r\n }\r\n\r\n public set disableTAA(value: boolean) {\r\n this._frameGraphTask.postProcess.disabled = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphTAAObjectRendererBlock\";\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.doNotChangeAspectRatio = ${this.doNotChangeAspectRatio};`);\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.factor = ${this.factor};`);\r\n codes.push(`${this._codeVariableName}.disableOnCameraMove = ${this.disableOnCameraMove};`);\r\n codes.push(`${this._codeVariableName}.disableTAA = ${this.disableTAA};`);\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.doNotChangeAspectRatio = this.doNotChangeAspectRatio;\r\n serializationObject.samples = this.samples;\r\n serializationObject.factor = this.factor;\r\n serializationObject.disableOnCameraMove = this.disableOnCameraMove;\r\n serializationObject.disableTAA = this.disableTAA;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.doNotChangeAspectRatio = serializationObject.doNotChangeAspectRatio;\r\n this.samples = serializationObject.samples;\r\n this.factor = serializationObject.factor;\r\n this.disableOnCameraMove = serializationObject.disableOnCameraMove;\r\n this.disableTAA = serializationObject.disableTAA;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphTAAObjectRendererBlock\", NodeRenderGraphTAAObjectRendererBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"taaObjectRendererBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Rendering/taaObjectRendererBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scene, FrameGraph } from \"core/index\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphTAAObjectRendererTask } from \"core/FrameGraph/Tasks/Rendering/taaObjectRendererTask\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"./baseObjectRendererBlock\";\r\n\r\n/**\r\n * Block that render objects with temporal anti-aliasing to a render target\r\n */\r\nexport class NodeRenderGraphTAAObjectRendererBlock extends NodeRenderGraphBaseObjectRendererBlock {\r\n protected override _frameGraphTask: FrameGraphTAAObjectRendererTask;\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 NodeRenderGraphTAAObjectRendererBlock\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 */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, doNotChangeAspectRatio = true) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\r\n\r\n this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\r\n }\r\n\r\n protected override _createFrameGraphObject(): void {\r\n this._frameGraphTask = new FrameGraphTAAObjectRendererTask(this.name, this._frameGraph, this._scene, {\r\n doNotChangeAspectRatio: this._additionalConstructionParameters![0] 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.samples = this.samples;\r\n state.factor = this.factor;\r\n state.disableOnCameraMove = this.disableOnCameraMove;\r\n state.disableTAA = this.disableTAA;\r\n }\r\n\r\n protected override _restoreState(state: { [key: string]: any }) {\r\n super._restoreState(state);\r\n this.samples = state.samples;\r\n this.factor = state.factor;\r\n this.disableOnCameraMove = state.disableOnCameraMove;\r\n this.disableTAA = state.disableTAA;\r\n }\r\n\r\n /** Number of accumulated samples */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"TEMPORAL ANTI-ALIASING\")\r\n public get samples() {\r\n return this._frameGraphTask.postProcess.samples;\r\n }\r\n\r\n public set samples(value: number) {\r\n this._frameGraphTask.postProcess.samples = value;\r\n }\r\n\r\n /** The factor used to blend the history frame with current frame */\r\n @editableInPropertyPage(\"Factor\", PropertyTypeForEdition.Float, \"TEMPORAL ANTI-ALIASING\")\r\n public get factor() {\r\n return this._frameGraphTask.postProcess.factor;\r\n }\r\n\r\n public set factor(value: number) {\r\n this._frameGraphTask.postProcess.factor = value;\r\n }\r\n\r\n /** Indicates if depth testing must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable on camera move\", PropertyTypeForEdition.Boolean, \"TEMPORAL ANTI-ALIASING\")\r\n public get disableOnCameraMove() {\r\n return this._frameGraphTask.postProcess.disableOnCameraMove;\r\n }\r\n\r\n public set disableOnCameraMove(value: boolean) {\r\n this._frameGraphTask.postProcess.disableOnCameraMove = value;\r\n }\r\n\r\n /** Indicates if TAA must be enabled or disabled */\r\n @editableInPropertyPage(\"Disable TAA\", PropertyTypeForEdition.Boolean, \"TEMPORAL ANTI-ALIASING\")\r\n public get disableTAA() {\r\n return this._frameGraphTask.postProcess.disabled;\r\n }\r\n\r\n public set disableTAA(value: boolean) {\r\n this._frameGraphTask.postProcess.disabled = value;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"NodeRenderGraphTAAObjectRendererBlock\";\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\r\n codes.push(`${this._codeVariableName}.factor = ${this.factor};`);\r\n codes.push(`${this._codeVariableName}.disableOnCameraMove = ${this.disableOnCameraMove};`);\r\n codes.push(`${this._codeVariableName}.disableTAA = ${this.disableTAA};`);\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.samples = this.samples;\r\n serializationObject.factor = this.factor;\r\n serializationObject.disableOnCameraMove = this.disableOnCameraMove;\r\n serializationObject.disableTAA = this.disableTAA;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.samples = serializationObject.samples;\r\n this.factor = serializationObject.factor;\r\n this.disableOnCameraMove = serializationObject.disableOnCameraMove;\r\n this.disableTAA = serializationObject.disableTAA;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphTAAObjectRendererBlock\", NodeRenderGraphTAAObjectRendererBlock);\r\n"]}
|
|
@@ -12,6 +12,7 @@ import { Tools } from "../../Misc/tools.js";
|
|
|
12
12
|
import { Engine } from "../../Engines/engine.js";
|
|
13
13
|
import { NodeRenderGraphBlockConnectionPointTypes } from "./Types/nodeRenderGraphTypes.js";
|
|
14
14
|
import { NodeRenderGraphClearBlock } from "./Blocks/Textures/clearBlock.js";
|
|
15
|
+
import { NodeRenderGraphBaseObjectRendererBlock } from "./Blocks/Rendering/baseObjectRendererBlock.js";
|
|
15
16
|
import { NodeRenderGraphObjectRendererBlock } from "./Blocks/Rendering/objectRendererBlock.js";
|
|
16
17
|
import { NodeRenderGraphBuildState } from "./nodeRenderGraphBuildState.js";
|
|
17
18
|
import { NodeRenderGraphCullObjectsBlock } from "./Blocks/cullObjectsBlock.js";
|
|
@@ -213,7 +214,7 @@ export class NodeRenderGraph {
|
|
|
213
214
|
this._autoFillExternalInputs();
|
|
214
215
|
}
|
|
215
216
|
// Make sure that one of the object renderer is flagged as the main object renderer
|
|
216
|
-
const objectRendererBlocks = this.getBlocksByPredicate((block) => block instanceof
|
|
217
|
+
const objectRendererBlocks = this.getBlocksByPredicate((block) => block instanceof NodeRenderGraphBaseObjectRendererBlock);
|
|
217
218
|
if (objectRendererBlocks.length > 0 && !objectRendererBlocks.find((block) => block.isMainObjectRenderer)) {
|
|
218
219
|
objectRendererBlocks[0].isMainObjectRenderer = true;
|
|
219
220
|
}
|