db9e6b6b25ef4e3b2ac7ed45ac6bb4256a841fc94a400d728a447babdf84d0b7.json 62 KB

1
  1. {"ast":null,"code":"import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask.js\";\n\n/**\n * Block that render geometry of objects to a multi render target\n */\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphGeometryRendererBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\n */\n constructor(name, frameGraph, scene, doNotChangeAspectRatio = true) {\n super(name, frameGraph, scene);\n // View depth\n this.viewDepthFormat = 6;\n this.viewDepthType = 2;\n // Screen depth\n this.screenDepthFormat = 6;\n this.screenDepthType = 2;\n // View normal\n this.viewNormalFormat = 5;\n this.viewNormalType = 0;\n // World normal\n this.worldNormalFormat = 5;\n this.worldNormalType = 0;\n // Local position\n this.localPositionFormat = 5;\n this.localPositionType = 2;\n // World Position\n this.worldPositionFormat = 5;\n this.worldPositionType = 2;\n // Albedo\n this.albedoFormat = 5;\n this.albedoType = 0;\n // Reflectivity\n this.reflectivityFormat = 5;\n this.reflectivityType = 0;\n // Velocity\n this.velocityFormat = 5;\n this.velocityType = 0;\n // Linear velocity\n this.linearVelocityFormat = 5;\n this.linearVelocityType = 0;\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment, true);\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\n this.depth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment);\n this.outputDepth._typeConnectionSource = this.depth;\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, {\n doNotChangeAspectRatio\n });\n }\n /** Indicates if depth testing must be enabled or disabled */\n get depthTest() {\n return this._frameGraphTask.depthTest;\n }\n set depthTest(value) {\n this._frameGraphTask.depthTest = value;\n }\n /** Indicates if depth writing must be enabled or disabled */\n get depthWrite() {\n return this._frameGraphTask.depthWrite;\n }\n set depthWrite(value) {\n this._frameGraphTask.depthWrite = value;\n }\n /** True (default) to not change the aspect ratio of the scene in the RTT */\n get doNotChangeAspectRatio() {\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\n }\n set doNotChangeAspectRatio(value) {\n this._frameGraphTask.dispose();\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, {\n doNotChangeAspectRatio: value\n });\n this._additionalConstructionParameters = [value];\n }\n /** Width of the geometry texture */\n get width() {\n return this._frameGraphTask.size.width;\n }\n set width(value) {\n this._frameGraphTask.size.width = value;\n }\n /** Height of the geometry texture */\n get height() {\n return this._frameGraphTask.size.height;\n }\n set height(value) {\n this._frameGraphTask.size.height = value;\n }\n /** Indicates if the geometry texture width and height are percentages or absolute values */\n get sizeInPercentage() {\n return this._frameGraphTask.sizeIsPercentage;\n }\n set sizeInPercentage(value) {\n this._frameGraphTask.sizeIsPercentage = value;\n }\n /** Number of samples of the geometry texture */\n get samples() {\n return this._frameGraphTask.samples;\n }\n set samples(value) {\n this._frameGraphTask.samples = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphGeometryRendererBlock\";\n }\n /**\n * Gets the depth texture input component\n */\n get depth() {\n return this._inputs[0];\n }\n /**\n * Gets the camera input component\n */\n get camera() {\n return this._inputs[1];\n }\n /**\n * Gets the objects input component\n */\n get objects() {\n return this._inputs[2];\n }\n /**\n * Gets the output depth component\n */\n get outputDepth() {\n return this._outputs[0];\n }\n /**\n * Gets the geometry view depth component\n */\n get geomViewDepth() {\n return this._outputs[1];\n }\n /**\n * Gets the geometry screen depth component\n */\n get geomScreenDepth() {\n return this._outputs[2];\n }\n /**\n * Gets the geometry view normal component\n */\n get geomViewNormal() {\n return this._outputs[3];\n }\n /**\n * Gets the world geometry normal component\n */\n get geomWorldNormal() {\n return this._outputs[4];\n }\n /**\n * Gets the geometry local position component\n */\n get geomLocalPosition() {\n return this._outputs[5];\n }\n /**\n * Gets the geometry world position component\n */\n get geomWorldPosition() {\n return this._outputs[6];\n }\n /**\n * Gets the geometry albedo component\n */\n get geomAlbedo() {\n return this._outputs[7];\n }\n /**\n * Gets the geometry reflectivity component\n */\n get geomReflectivity() {\n return this._outputs[8];\n }\n /**\n * Gets the geometry velocity component\n */\n get geomVelocity() {\n return this._outputs[9];\n }\n /**\n * Gets the geometry linear velocity component\n */\n get geomLinearVelocity() {\n return this._outputs[10];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const textureActivation = [this.geomViewDepth.isConnected, this.geomScreenDepth.isConnected, this.geomViewNormal.isConnected, this.geomWorldNormal.isConnected, this.geomLocalPosition.isConnected, this.geomWorldPosition.isConnected, this.geomAlbedo.isConnected, this.geomReflectivity.isConnected, this.geomVelocity.isConnected, this.geomLinearVelocity.isConnected];\n if (textureActivation.every(t => !t)) {\n throw new Error(\"NodeRenderGraphGeometryRendererBlock: At least one output geometry buffer must be connected\");\n }\n this._frameGraphTask.name = this.name;\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture;\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\n const depthConnectedPoint = this.depth.connectedPoint;\n if (depthConnectedPoint) {\n this._frameGraphTask.depthTexture = depthConnectedPoint.value;\n }\n const cameraConnectedPoint = this.camera.connectedPoint;\n if (cameraConnectedPoint) {\n this._frameGraphTask.camera = cameraConnectedPoint.value;\n }\n const objectsConnectedPoint = this.objects.connectedPoint;\n if (objectsConnectedPoint) {\n this._frameGraphTask.objectList = objectsConnectedPoint.value;\n }\n this._frameGraphTask.textureDescriptions = [];\n const textureFormats = [this.viewDepthFormat, this.screenDepthFormat, this.viewNormalFormat, this.worldNormalFormat, this.localPositionFormat, this.worldPositionFormat, this.albedoFormat, this.reflectivityFormat, this.velocityFormat, this.linearVelocityFormat];\n const textureTypes = [this.viewDepthType, this.screenDepthType, this.viewNormalType, this.worldNormalType, this.localPositionType, this.worldPositionType, this.albedoType, this.reflectivityType, this.velocityType, this.linearVelocityType];\n const bufferTypes = [5, 10, 6, 8, 9, 1, 12, 3, 2, 11];\n for (let i = 0; i < textureActivation.length; i++) {\n if (textureActivation[i]) {\n this._frameGraphTask.textureDescriptions.push({\n textureFormat: textureFormats[i],\n textureType: textureTypes[i],\n type: bufferTypes[i]\n });\n }\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.depthTest = this.depthTest;\n serializationObject.depthWrite = this.depthWrite;\n serializationObject.samples = this.samples;\n serializationObject.viewDepthFormat = this.viewDepthFormat;\n serializationObject.viewDepthType = this.viewDepthType;\n serializationObject.screenDepthFormat = this.screenDepthFormat;\n serializationObject.screenDepthType = this.screenDepthType;\n serializationObject.localPositionFormat = this.localPositionFormat;\n serializationObject.localPositionType = this.localPositionType;\n serializationObject.worldPositionFormat = this.worldPositionFormat;\n serializationObject.worldPositionType = this.worldPositionType;\n serializationObject.viewNormalFormat = this.viewNormalFormat;\n serializationObject.viewNormalType = this.viewNormalType;\n serializationObject.worldNormalFormat = this.worldNormalFormat;\n serializationObject.worldNormalType = this.worldNormalType;\n serializationObject.albedoFormat = this.albedoFormat;\n serializationObject.albedoType = this.albedoType;\n serializationObject.reflectivityFormat = this.reflectivityFormat;\n serializationObject.reflectivityType = this.reflectivityType;\n serializationObject.velocityFormat = this.velocityFormat;\n serializationObject.velocityType = this.velocityType;\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\n serializationObject.linearVelocityType = this.linearVelocityType;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.depthTest = serializationObject.depthTest;\n this.depthWrite = serializationObject.depthWrite;\n this.samples = serializationObject.samples;\n this.viewDepthFormat = serializationObject.viewDepthFormat;\n this.viewDepthType = serializationObject.viewDepthType;\n this.screenDepthFormat = serializationObject.screenDepthFormat;\n this.screenDepthType = serializationObject.screenDepthType;\n this.localPositionFormat = serializationObject.localPositionFormat;\n this.localPositionType = serializationObject.localPositionType;\n this.worldPositionFormat = serializationObject.worldPositionFormat;\n this.worldPositionType = serializationObject.worldPositionType;\n this.viewNormalFormat = serializationObject.viewNormalFormat;\n this.viewNormalType = serializationObject.viewNormalType;\n this.worldNormalFormat = serializationObject.worldNormalFormat;\n this.worldNormalType = serializationObject.worldNormalType;\n this.albedoFormat = serializationObject.albedoFormat;\n this.albedoType = serializationObject.albedoType;\n this.reflectivityFormat = serializationObject.reflectivityFormat;\n this.reflectivityType = serializationObject.reflectivityType;\n this.velocityFormat = serializationObject.velocityFormat;\n this.velocityType = serializationObject.velocityType;\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\n this.linearVelocityType = serializationObject.linearVelocityType;\n }\n}\n__decorate([editableInPropertyPage(\"Depth test\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")], NodeRenderGraphGeometryRendererBlock.prototype, \"depthTest\", null);\n__decorate([editableInPropertyPage(\"Depth write\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")], NodeRenderGraphGeometryRendererBlock.prototype, \"depthWrite\", null);\n__decorate([editableInPropertyPage(\"Do not change aspect ratio\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")], NodeRenderGraphGeometryRendererBlock.prototype, \"doNotChangeAspectRatio\", null);\n__decorate([editableInPropertyPage(\"Texture width\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\")], NodeRenderGraphGeometryRendererBlock.prototype, \"width\", null);\n__decorate([editableInPropertyPage(\"Texture height\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\")], NodeRenderGraphGeometryRendererBlock.prototype, \"height\", null);\n__decorate([editableInPropertyPage(\"Size is in percentage\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")], NodeRenderGraphGeometryRendererBlock.prototype, \"sizeInPercentage\", null);\n__decorate([editableInPropertyPage(\"Samples\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\", {\n min: 1,\n max: 8\n})], NodeRenderGraphGeometryRendererBlock.prototype, \"samples\", null);\n__decorate([editableInPropertyPage(\"View depth format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"viewDepthFormat\", void 0);\n__decorate([editableInPropertyPage(\"View depth type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"viewDepthType\", void 0);\n__decorate([editableInPropertyPage(\"Screen depth format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"screenDepthFormat\", void 0);\n__decorate([editableInPropertyPage(\"Screen depth type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"screenDepthType\", void 0);\n__decorate([editableInPropertyPage(\"View normal format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"viewNormalFormat\", void 0);\n__decorate([editableInPropertyPage(\"View normal type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"viewNormalType\", void 0);\n__decorate([editableInPropertyPage(\"World normal format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"worldNormalFormat\", void 0);\n__decorate([editableInPropertyPage(\"World normal type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"worldNormalType\", void 0);\n__decorate([editableInPropertyPage(\"Local position format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"localPositionFormat\", void 0);\n__decorate([editableInPropertyPage(\"Local position type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"localPositionType\", void 0);\n__decorate([editableInPropertyPage(\"World position format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"worldPositionFormat\", void 0);\n__decorate([editableInPropertyPage(\"World position type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"worldPositionType\", void 0);\n__decorate([editableInPropertyPage(\"Albedo format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"albedoFormat\", void 0);\n__decorate([editableInPropertyPage(\"Albedo type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"albedoType\", void 0);\n__decorate([editableInPropertyPage(\"Reflectivity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"reflectivityFormat\", void 0);\n__decorate([editableInPropertyPage(\"Reflectivity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"reflectivityType\", void 0);\n__decorate([editableInPropertyPage(\"Velocity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"velocityFormat\", void 0);\n__decorate([editableInPropertyPage(\"Velocity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"velocityType\", void 0);\n__decorate([editableInPropertyPage(\"Linear velocity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"linearVelocityFormat\", void 0);\n__decorate([editableInPropertyPage(\"Linear velocity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")], NodeRenderGraphGeometryRendererBlock.prototype, \"linearVelocityType\", void 0);\nRegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);","map":{"version":3,"names":["__decorate","NodeRenderGraphBlock","RegisterClass","NodeRenderGraphBlockConnectionPointTypes","editableInPropertyPage","FrameGraphGeometryRendererTask","NodeRenderGraphGeometryRendererBlock","task","_frameGraphTask","constructor","name","frameGraph","scene","doNotChangeAspectRatio","viewDepthFormat","viewDepthType","screenDepthFormat","screenDepthType","viewNormalFormat","viewNormalType","worldNormalFormat","worldNormalType","localPositionFormat","localPositionType","worldPositionFormat","worldPositionType","albedoFormat","albedoType","reflectivityFormat","reflectivityType","velocityFormat","velocityType","linearVelocityFormat","linearVelocityType","_additionalConstructionParameters","registerInput","TextureBackBufferDepthStencilAttachment","Camera","ObjectList","registerOutput","BasedOnInput","TextureViewDepth","TextureScreenDepth","TextureViewNormal","TextureLocalPosition","TextureWorldPosition","TextureAlbedo","TextureReflectivity","TextureVelocity","TextureLinearVelocity","depth","addAcceptedConnectionPointTypes","TextureDepthStencilAttachment","outputDepth","_typeConnectionSource","depthTest","value","depthWrite","objectRenderer","options","dispose","_frameGraph","_scene","width","size","height","sizeInPercentage","sizeIsPercentage","samples","getClassName","_inputs","camera","objects","_outputs","geomViewDepth","geomScreenDepth","geomViewNormal","geomWorldNormal","geomLocalPosition","geomWorldPosition","geomAlbedo","geomReflectivity","geomVelocity","geomLinearVelocity","_buildBlock","state","textureActivation","isConnected","every","t","Error","outputDepthTexture","geometryViewDepthTexture","geometryScreenDepthTexture","geometryViewNormalTexture","geometryWorldNormalTexture","geometryLocalPositionTexture","geometryWorldPositionTexture","geometryAlbedoTexture","geometryReflectivityTexture","geometryVelocityTexture","geometryLinearVelocityTexture","depthConnectedPoint","connectedPoint","depthTexture","cameraConnectedPoint","objectsConnectedPoint","objectList","textureDescriptions","textureFormats","textureTypes","bufferTypes","i","length","push","textureFormat","textureType","type","_dumpPropertiesCode","codes","_codeVariableName","join","serialize","serializationObject","_deserialize","prototype","min","max"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js"],"sourcesContent":["import { __decorate } from \"../../../../tslib.es6.js\";\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes.js\";\nimport { editableInPropertyPage } from \"../../../../Decorators/nodeDecorator.js\";\nimport { FrameGraphGeometryRendererTask } from \"../../../Tasks/Rendering/geometryRendererTask.js\";\n\n/**\n * Block that render geometry of objects to a multi render target\n */\nexport class NodeRenderGraphGeometryRendererBlock extends NodeRenderGraphBlock {\n /**\n * Gets the frame graph task associated with this block\n */\n get task() {\n return this._frameGraphTask;\n }\n /**\n * Create a new NodeRenderGraphGeometryRendererBlock\n * @param name defines the block name\n * @param frameGraph defines the hosting frame graph\n * @param scene defines the hosting scene\n * @param doNotChangeAspectRatio True (default) to not change the aspect ratio of the scene in the RTT\n */\n constructor(name, frameGraph, scene, doNotChangeAspectRatio = true) {\n super(name, frameGraph, scene);\n // View depth\n this.viewDepthFormat = 6;\n this.viewDepthType = 2;\n // Screen depth\n this.screenDepthFormat = 6;\n this.screenDepthType = 2;\n // View normal\n this.viewNormalFormat = 5;\n this.viewNormalType = 0;\n // World normal\n this.worldNormalFormat = 5;\n this.worldNormalType = 0;\n // Local position\n this.localPositionFormat = 5;\n this.localPositionType = 2;\n // World Position\n this.worldPositionFormat = 5;\n this.worldPositionType = 2;\n // Albedo\n this.albedoFormat = 5;\n this.albedoType = 0;\n // Reflectivity\n this.reflectivityFormat = 5;\n this.reflectivityType = 0;\n // Velocity\n this.velocityFormat = 5;\n this.velocityType = 0;\n // Linear velocity\n this.linearVelocityFormat = 5;\n this.linearVelocityType = 0;\n this._additionalConstructionParameters = [doNotChangeAspectRatio];\n this.registerInput(\"depth\", NodeRenderGraphBlockConnectionPointTypes.TextureBackBufferDepthStencilAttachment, true);\n this.registerInput(\"camera\", NodeRenderGraphBlockConnectionPointTypes.Camera);\n this.registerInput(\"objects\", NodeRenderGraphBlockConnectionPointTypes.ObjectList);\n this.registerOutput(\"outputDepth\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\n this.registerOutput(\"geomViewDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureViewDepth);\n this.registerOutput(\"geomScreenDepth\", NodeRenderGraphBlockConnectionPointTypes.TextureScreenDepth);\n this.registerOutput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\n this.registerOutput(\"geomWorldNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\n this.registerOutput(\"geomLocalPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureLocalPosition);\n this.registerOutput(\"geomWorldPosition\", NodeRenderGraphBlockConnectionPointTypes.TextureWorldPosition);\n this.registerOutput(\"geomAlbedo\", NodeRenderGraphBlockConnectionPointTypes.TextureAlbedo);\n this.registerOutput(\"geomReflectivity\", NodeRenderGraphBlockConnectionPointTypes.TextureReflectivity);\n this.registerOutput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureVelocity);\n this.registerOutput(\"geomLinearVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity);\n this.depth.addAcceptedConnectionPointTypes(NodeRenderGraphBlockConnectionPointTypes.TextureDepthStencilAttachment);\n this.outputDepth._typeConnectionSource = this.depth;\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, frameGraph, scene, { doNotChangeAspectRatio });\n }\n /** Indicates if depth testing must be enabled or disabled */\n get depthTest() {\n return this._frameGraphTask.depthTest;\n }\n set depthTest(value) {\n this._frameGraphTask.depthTest = value;\n }\n /** Indicates if depth writing must be enabled or disabled */\n get depthWrite() {\n return this._frameGraphTask.depthWrite;\n }\n set depthWrite(value) {\n this._frameGraphTask.depthWrite = value;\n }\n /** True (default) to not change the aspect ratio of the scene in the RTT */\n get doNotChangeAspectRatio() {\n return this._frameGraphTask.objectRenderer.options.doNotChangeAspectRatio;\n }\n set doNotChangeAspectRatio(value) {\n this._frameGraphTask.dispose();\n this._frameGraphTask = new FrameGraphGeometryRendererTask(this.name, this._frameGraph, this._scene, { doNotChangeAspectRatio: value });\n this._additionalConstructionParameters = [value];\n }\n /** Width of the geometry texture */\n get width() {\n return this._frameGraphTask.size.width;\n }\n set width(value) {\n this._frameGraphTask.size.width = value;\n }\n /** Height of the geometry texture */\n get height() {\n return this._frameGraphTask.size.height;\n }\n set height(value) {\n this._frameGraphTask.size.height = value;\n }\n /** Indicates if the geometry texture width and height are percentages or absolute values */\n get sizeInPercentage() {\n return this._frameGraphTask.sizeIsPercentage;\n }\n set sizeInPercentage(value) {\n this._frameGraphTask.sizeIsPercentage = value;\n }\n /** Number of samples of the geometry texture */\n get samples() {\n return this._frameGraphTask.samples;\n }\n set samples(value) {\n this._frameGraphTask.samples = value;\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"NodeRenderGraphGeometryRendererBlock\";\n }\n /**\n * Gets the depth texture input component\n */\n get depth() {\n return this._inputs[0];\n }\n /**\n * Gets the camera input component\n */\n get camera() {\n return this._inputs[1];\n }\n /**\n * Gets the objects input component\n */\n get objects() {\n return this._inputs[2];\n }\n /**\n * Gets the output depth component\n */\n get outputDepth() {\n return this._outputs[0];\n }\n /**\n * Gets the geometry view depth component\n */\n get geomViewDepth() {\n return this._outputs[1];\n }\n /**\n * Gets the geometry screen depth component\n */\n get geomScreenDepth() {\n return this._outputs[2];\n }\n /**\n * Gets the geometry view normal component\n */\n get geomViewNormal() {\n return this._outputs[3];\n }\n /**\n * Gets the world geometry normal component\n */\n get geomWorldNormal() {\n return this._outputs[4];\n }\n /**\n * Gets the geometry local position component\n */\n get geomLocalPosition() {\n return this._outputs[5];\n }\n /**\n * Gets the geometry world position component\n */\n get geomWorldPosition() {\n return this._outputs[6];\n }\n /**\n * Gets the geometry albedo component\n */\n get geomAlbedo() {\n return this._outputs[7];\n }\n /**\n * Gets the geometry reflectivity component\n */\n get geomReflectivity() {\n return this._outputs[8];\n }\n /**\n * Gets the geometry velocity component\n */\n get geomVelocity() {\n return this._outputs[9];\n }\n /**\n * Gets the geometry linear velocity component\n */\n get geomLinearVelocity() {\n return this._outputs[10];\n }\n _buildBlock(state) {\n super._buildBlock(state);\n const textureActivation = [\n this.geomViewDepth.isConnected,\n this.geomScreenDepth.isConnected,\n this.geomViewNormal.isConnected,\n this.geomWorldNormal.isConnected,\n this.geomLocalPosition.isConnected,\n this.geomWorldPosition.isConnected,\n this.geomAlbedo.isConnected,\n this.geomReflectivity.isConnected,\n this.geomVelocity.isConnected,\n this.geomLinearVelocity.isConnected,\n ];\n if (textureActivation.every((t) => !t)) {\n throw new Error(\"NodeRenderGraphGeometryRendererBlock: At least one output geometry buffer must be connected\");\n }\n this._frameGraphTask.name = this.name;\n this.outputDepth.value = this._frameGraphTask.outputDepthTexture;\n this.geomViewDepth.value = this._frameGraphTask.geometryViewDepthTexture;\n this.geomScreenDepth.value = this._frameGraphTask.geometryScreenDepthTexture;\n this.geomViewNormal.value = this._frameGraphTask.geometryViewNormalTexture;\n this.geomWorldNormal.value = this._frameGraphTask.geometryWorldNormalTexture;\n this.geomLocalPosition.value = this._frameGraphTask.geometryLocalPositionTexture;\n this.geomWorldPosition.value = this._frameGraphTask.geometryWorldPositionTexture;\n this.geomAlbedo.value = this._frameGraphTask.geometryAlbedoTexture;\n this.geomReflectivity.value = this._frameGraphTask.geometryReflectivityTexture;\n this.geomVelocity.value = this._frameGraphTask.geometryVelocityTexture;\n this.geomLinearVelocity.value = this._frameGraphTask.geometryLinearVelocityTexture;\n const depthConnectedPoint = this.depth.connectedPoint;\n if (depthConnectedPoint) {\n this._frameGraphTask.depthTexture = depthConnectedPoint.value;\n }\n const cameraConnectedPoint = this.camera.connectedPoint;\n if (cameraConnectedPoint) {\n this._frameGraphTask.camera = cameraConnectedPoint.value;\n }\n const objectsConnectedPoint = this.objects.connectedPoint;\n if (objectsConnectedPoint) {\n this._frameGraphTask.objectList = objectsConnectedPoint.value;\n }\n this._frameGraphTask.textureDescriptions = [];\n const textureFormats = [\n this.viewDepthFormat,\n this.screenDepthFormat,\n this.viewNormalFormat,\n this.worldNormalFormat,\n this.localPositionFormat,\n this.worldPositionFormat,\n this.albedoFormat,\n this.reflectivityFormat,\n this.velocityFormat,\n this.linearVelocityFormat,\n ];\n const textureTypes = [\n this.viewDepthType,\n this.screenDepthType,\n this.viewNormalType,\n this.worldNormalType,\n this.localPositionType,\n this.worldPositionType,\n this.albedoType,\n this.reflectivityType,\n this.velocityType,\n this.linearVelocityType,\n ];\n const bufferTypes = [\n 5,\n 10,\n 6,\n 8,\n 9,\n 1,\n 12,\n 3,\n 2,\n 11,\n ];\n for (let i = 0; i < textureActivation.length; i++) {\n if (textureActivation[i]) {\n this._frameGraphTask.textureDescriptions.push({\n textureFormat: textureFormats[i],\n textureType: textureTypes[i],\n type: bufferTypes[i],\n });\n }\n }\n }\n _dumpPropertiesCode() {\n const codes = [];\n codes.push(`${this._codeVariableName}.depthTest = ${this.depthTest};`);\n codes.push(`${this._codeVariableName}.depthWrite = ${this.depthWrite};`);\n codes.push(`${this._codeVariableName}.samples = ${this.samples};`);\n codes.push(`${this._codeVariableName}.viewDepthFormat = ${this.viewDepthFormat};`);\n codes.push(`${this._codeVariableName}.viewDepthType = ${this.viewDepthType};`);\n codes.push(`${this._codeVariableName}.screenDepthFormat = ${this.screenDepthFormat};`);\n codes.push(`${this._codeVariableName}.screenDepthType = ${this.screenDepthType};`);\n codes.push(`${this._codeVariableName}.localPositionFormat = ${this.localPositionFormat};`);\n codes.push(`${this._codeVariableName}.localPositionType = ${this.localPositionType};`);\n codes.push(`${this._codeVariableName}.worldPositionFormat = ${this.worldPositionFormat};`);\n codes.push(`${this._codeVariableName}.worldPositionType = ${this.worldPositionType};`);\n codes.push(`${this._codeVariableName}.viewNormalFormat = ${this.viewNormalFormat};`);\n codes.push(`${this._codeVariableName}.viewNormalType = ${this.viewNormalType};`);\n codes.push(`${this._codeVariableName}.worldNormalFormat = ${this.worldNormalFormat};`);\n codes.push(`${this._codeVariableName}.worldNormalType = ${this.worldNormalType};`);\n codes.push(`${this._codeVariableName}.albedoFormat = ${this.albedoFormat};`);\n codes.push(`${this._codeVariableName}.albedoType = ${this.albedoType};`);\n codes.push(`${this._codeVariableName}.reflectivityFormat = ${this.reflectivityFormat};`);\n codes.push(`${this._codeVariableName}.reflectivityType = ${this.reflectivityType};`);\n codes.push(`${this._codeVariableName}.velocityFormat = ${this.velocityFormat};`);\n codes.push(`${this._codeVariableName}.velocityType = ${this.velocityType};`);\n codes.push(`${this._codeVariableName}.linearVelocityFormat = ${this.linearVelocityFormat};`);\n codes.push(`${this._codeVariableName}.linearVelocityType = ${this.linearVelocityType};`);\n return super._dumpPropertiesCode() + codes.join(\"\\n\");\n }\n serialize() {\n const serializationObject = super.serialize();\n serializationObject.depthTest = this.depthTest;\n serializationObject.depthWrite = this.depthWrite;\n serializationObject.samples = this.samples;\n serializationObject.viewDepthFormat = this.viewDepthFormat;\n serializationObject.viewDepthType = this.viewDepthType;\n serializationObject.screenDepthFormat = this.screenDepthFormat;\n serializationObject.screenDepthType = this.screenDepthType;\n serializationObject.localPositionFormat = this.localPositionFormat;\n serializationObject.localPositionType = this.localPositionType;\n serializationObject.worldPositionFormat = this.worldPositionFormat;\n serializationObject.worldPositionType = this.worldPositionType;\n serializationObject.viewNormalFormat = this.viewNormalFormat;\n serializationObject.viewNormalType = this.viewNormalType;\n serializationObject.worldNormalFormat = this.worldNormalFormat;\n serializationObject.worldNormalType = this.worldNormalType;\n serializationObject.albedoFormat = this.albedoFormat;\n serializationObject.albedoType = this.albedoType;\n serializationObject.reflectivityFormat = this.reflectivityFormat;\n serializationObject.reflectivityType = this.reflectivityType;\n serializationObject.velocityFormat = this.velocityFormat;\n serializationObject.velocityType = this.velocityType;\n serializationObject.linearVelocityFormat = this.linearVelocityFormat;\n serializationObject.linearVelocityType = this.linearVelocityType;\n return serializationObject;\n }\n _deserialize(serializationObject) {\n super._deserialize(serializationObject);\n this.depthTest = serializationObject.depthTest;\n this.depthWrite = serializationObject.depthWrite;\n this.samples = serializationObject.samples;\n this.viewDepthFormat = serializationObject.viewDepthFormat;\n this.viewDepthType = serializationObject.viewDepthType;\n this.screenDepthFormat = serializationObject.screenDepthFormat;\n this.screenDepthType = serializationObject.screenDepthType;\n this.localPositionFormat = serializationObject.localPositionFormat;\n this.localPositionType = serializationObject.localPositionType;\n this.worldPositionFormat = serializationObject.worldPositionFormat;\n this.worldPositionType = serializationObject.worldPositionType;\n this.viewNormalFormat = serializationObject.viewNormalFormat;\n this.viewNormalType = serializationObject.viewNormalType;\n this.worldNormalFormat = serializationObject.worldNormalFormat;\n this.worldNormalType = serializationObject.worldNormalType;\n this.albedoFormat = serializationObject.albedoFormat;\n this.albedoType = serializationObject.albedoType;\n this.reflectivityFormat = serializationObject.reflectivityFormat;\n this.reflectivityType = serializationObject.reflectivityType;\n this.velocityFormat = serializationObject.velocityFormat;\n this.velocityType = serializationObject.velocityType;\n this.linearVelocityFormat = serializationObject.linearVelocityFormat;\n this.linearVelocityType = serializationObject.linearVelocityType;\n }\n}\n__decorate([\n editableInPropertyPage(\"Depth test\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"depthTest\", null);\n__decorate([\n editableInPropertyPage(\"Depth write\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"depthWrite\", null);\n__decorate([\n editableInPropertyPage(\"Do not change aspect ratio\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"doNotChangeAspectRatio\", null);\n__decorate([\n editableInPropertyPage(\"Texture width\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"width\", null);\n__decorate([\n editableInPropertyPage(\"Texture height\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"height\", null);\n__decorate([\n editableInPropertyPage(\"Size is in percentage\", 0 /* PropertyTypeForEdition.Boolean */, \"PROPERTIES\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"sizeInPercentage\", null);\n__decorate([\n editableInPropertyPage(\"Samples\", 2 /* PropertyTypeForEdition.Int */, \"PROPERTIES\", { min: 1, max: 8 })\n], NodeRenderGraphGeometryRendererBlock.prototype, \"samples\", null);\n__decorate([\n editableInPropertyPage(\"View depth format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewDepthFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"View depth type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewDepthType\", void 0);\n__decorate([\n editableInPropertyPage(\"Screen depth format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"screenDepthFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Screen depth type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"screenDepthType\", void 0);\n__decorate([\n editableInPropertyPage(\"View normal format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewNormalFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"View normal type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"viewNormalType\", void 0);\n__decorate([\n editableInPropertyPage(\"World normal format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldNormalFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"World normal type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldNormalType\", void 0);\n__decorate([\n editableInPropertyPage(\"Local position format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"localPositionFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Local position type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"localPositionType\", void 0);\n__decorate([\n editableInPropertyPage(\"World position format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldPositionFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"World position type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"worldPositionType\", void 0);\n__decorate([\n editableInPropertyPage(\"Albedo format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"albedoFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Albedo type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"albedoType\", void 0);\n__decorate([\n editableInPropertyPage(\"Reflectivity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"reflectivityFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Reflectivity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"reflectivityType\", void 0);\n__decorate([\n editableInPropertyPage(\"Velocity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"velocityFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Velocity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"velocityType\", void 0);\n__decorate([\n editableInPropertyPage(\"Linear velocity format\", 7 /* PropertyTypeForEdition.TextureFormat */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"linearVelocityFormat\", void 0);\n__decorate([\n editableInPropertyPage(\"Linear velocity type\", 8 /* PropertyTypeForEdition.TextureType */, \"GEOMETRY BUFFERS\")\n], NodeRenderGraphGeometryRendererBlock.prototype, \"linearVelocityType\", void 0);\nRegisterClass(\"BABYLON.NodeRenderGraphGeometryRendererBlock\", NodeRenderGraphGeometryRendererBlock);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}