1 |
- {"ast":null,"code":"import { __decorate } from \"../../../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize } from \"../../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../../Misc/decorators.serialization.js\";\nimport { PostProcess } from \"../../postProcess.js\";\nimport { PostProcessRenderPipeline } from \"../postProcessRenderPipeline.js\";\nimport { PostProcessRenderEffect } from \"../postProcessRenderEffect.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\nimport { PassPostProcess } from \"../../passPostProcess.js\";\nimport { ThinTAAPostProcess } from \"../../thinTAAPostProcess.js\";\nimport \"../postProcessRenderPipelineManagerSceneComponent.js\";\n/**\n * Simple implementation of Temporal Anti-Aliasing (TAA).\n * This can be used to improve image quality for still pictures (screenshots for e.g.).\n */\nexport class TAARenderingPipeline extends PostProcessRenderPipeline {\n /**\n * Number of accumulated samples (default: 16)\n */\n set samples(samples) {\n this._taaThinPostProcess.samples = samples;\n }\n get samples() {\n return this._taaThinPostProcess.samples;\n }\n /**\n * MSAA samples (default: 1)\n */\n set msaaSamples(samples) {\n if (this._msaaSamples === samples) {\n return;\n }\n this._msaaSamples = samples;\n if (this._taaPostProcess) {\n this._taaPostProcess.samples = samples;\n }\n }\n get msaaSamples() {\n return this._msaaSamples;\n }\n /**\n * The factor used to blend the history frame with current frame (default: 0.05)\n */\n get factor() {\n return this._taaThinPostProcess.factor;\n }\n set factor(value) {\n this._taaThinPostProcess.factor = value;\n }\n /**\n * Disable TAA on camera move (default: true).\n * You generally want to keep this enabled, otherwise you will get a ghost effect when the camera moves (but if it's what you want, go for it!)\n */\n get disableOnCameraMove() {\n return this._taaThinPostProcess.disableOnCameraMove;\n }\n set disableOnCameraMove(value) {\n this._taaThinPostProcess.disableOnCameraMove = value;\n }\n /**\n * Gets or sets a boolean indicating if the render pipeline is enabled (default: true).\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(value) {\n if (this._isEnabled === value) {\n return;\n }\n this._isEnabled = value;\n if (!value) {\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n this._cameras = this._camerasToBeAttached.slice();\n }\n } else if (value) {\n if (!this._isDirty) {\n if (this._cameras !== null) {\n this._taaThinPostProcess._reset();\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n } else {\n this._buildPipeline();\n }\n }\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Returns true if TAA is supported by the running hardware\n */\n get isSupported() {\n const caps = this._scene.getEngine().getCaps();\n return caps.texelFetch;\n }\n /**\n * Constructor of the TAA rendering pipeline\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param cameras The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\n * @param textureType The type of texture where the scene will be rendered (default: 0)\n */\n constructor(name, scene, cameras, textureType = 0) {\n const engine = scene.getEngine();\n super(engine, name);\n /**\n * The TAA PostProcess effect id in the pipeline\n */\n this.TAARenderEffect = \"TAARenderEffect\";\n /**\n * The pass PostProcess effect id in the pipeline\n */\n this.TAAPassEffect = \"TAAPassEffect\";\n this._msaaSamples = 1;\n this._isEnabled = true;\n this._isDirty = false;\n this._camerasToBeAttached = [];\n this._pingpong = 0;\n this._cameras = cameras || scene.cameras;\n this._cameras = this._cameras.slice();\n this._camerasToBeAttached = this._cameras.slice();\n this._scene = scene;\n this._textureType = textureType;\n this._taaThinPostProcess = new ThinTAAPostProcess(\"TAA\", this._scene.getEngine());\n if (this.isSupported) {\n this._createPingPongTextures(engine.getRenderWidth(), engine.getRenderHeight());\n scene.postProcessRenderPipelineManager.addPipeline(this);\n this._buildPipeline();\n }\n }\n /**\n * Get the class name\n * @returns \"TAARenderingPipeline\"\n */\n getClassName() {\n return \"TAARenderingPipeline\";\n }\n /**\n * Adds a camera to the pipeline\n * @param camera the camera to be added\n */\n addCamera(camera) {\n this._camerasToBeAttached.push(camera);\n this._buildPipeline();\n }\n /**\n * Removes a camera from the pipeline\n * @param camera the camera to remove\n */\n removeCamera(camera) {\n const index = this._camerasToBeAttached.indexOf(camera);\n this._camerasToBeAttached.splice(index, 1);\n this._buildPipeline();\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n */\n dispose() {\n this._disposePostProcesses();\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n this._ping.dispose();\n this._pong.dispose();\n super.dispose();\n }\n _createPingPongTextures(width, height) {\n var _this$_ping, _this$_pong;\n const engine = this._scene.getEngine();\n (_this$_ping = this._ping) === null || _this$_ping === void 0 || _this$_ping.dispose();\n (_this$_pong = this._pong) === null || _this$_pong === void 0 || _this$_pong.dispose();\n this._ping = engine.createRenderTargetTexture({\n width,\n height\n }, {\n generateMipMaps: false,\n generateDepthBuffer: false,\n type: 2,\n samplingMode: 1\n });\n this._pong = engine.createRenderTargetTexture({\n width,\n height\n }, {\n generateMipMaps: false,\n generateDepthBuffer: false,\n type: 2,\n samplingMode: 1\n });\n this._taaThinPostProcess.textureWidth = width;\n this._taaThinPostProcess.textureHeight = height;\n }\n _buildPipeline() {\n if (!this.isSupported) {\n return;\n }\n if (!this._isEnabled) {\n this._isDirty = true;\n return;\n }\n this._isDirty = false;\n const engine = this._scene.getEngine();\n this._disposePostProcesses();\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n // get back cameras to be used to reattach pipeline\n this._cameras = this._camerasToBeAttached.slice();\n }\n this._reset();\n this._createTAAPostProcess();\n this.addEffect(new PostProcessRenderEffect(engine, this.TAARenderEffect, () => {\n return this._taaPostProcess;\n }, true));\n this._createPassPostProcess();\n this.addEffect(new PostProcessRenderEffect(engine, this.TAAPassEffect, () => {\n return this._passPostProcess;\n }, true));\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n }\n _disposePostProcesses() {\n for (let i = 0; i < this._cameras.length; i++) {\n var _this$_taaPostProcess, _this$_passPostProces;\n const camera = this._cameras[i];\n (_this$_taaPostProcess = this._taaPostProcess) === null || _this$_taaPostProcess === void 0 || _this$_taaPostProcess.dispose(camera);\n (_this$_passPostProces = this._passPostProcess) === null || _this$_passPostProces === void 0 || _this$_passPostProces.dispose(camera);\n camera.getProjectionMatrix(true); // recompute the projection matrix\n }\n this._taaPostProcess = null;\n this._passPostProcess = null;\n }\n _createTAAPostProcess() {\n this._taaPostProcess = new PostProcess(\"TAA\", \"taa\", {\n uniforms: [\"factor\"],\n samplers: [\"historySampler\"],\n size: 1.0,\n engine: this._scene.getEngine(),\n textureType: this._textureType,\n effectWrapper: this._taaThinPostProcess\n });\n this._taaPostProcess.samples = this._msaaSamples;\n this._taaPostProcess.onActivateObservable.add(() => {\n var _this$_taaPostProcess2, _this$_taaPostProcess3;\n this._taaThinPostProcess.camera = this._scene.activeCamera;\n if (((_this$_taaPostProcess2 = this._taaPostProcess) === null || _this$_taaPostProcess2 === void 0 ? void 0 : _this$_taaPostProcess2.width) !== this._ping.width || ((_this$_taaPostProcess3 = this._taaPostProcess) === null || _this$_taaPostProcess3 === void 0 ? void 0 : _this$_taaPostProcess3.height) !== this._ping.height) {\n const engine = this._scene.getEngine();\n this._createPingPongTextures(engine.getRenderWidth(), engine.getRenderHeight());\n }\n this._taaThinPostProcess.updateProjectionMatrix();\n if (this._passPostProcess) {\n this._passPostProcess.inputTexture = this._pingpong ? this._ping : this._pong;\n }\n this._pingpong = this._pingpong ^ 1;\n });\n this._taaPostProcess.onApplyObservable.add(effect => {\n effect._bindTexture(\"historySampler\", this._pingpong ? this._ping.texture : this._pong.texture);\n });\n }\n _createPassPostProcess() {\n const engine = this._scene.getEngine();\n this._passPostProcess = new PassPostProcess(\"TAAPass\", 1, null, 1, engine);\n this._passPostProcess.inputTexture = this._ping;\n this._passPostProcess.autoClear = false;\n }\n /**\n * Serializes the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"TAARenderingPipeline\";\n return serializationObject;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(source, scene, rootUrl) {\n return SerializationHelper.Parse(() => new TAARenderingPipeline(source._name, scene, source._ratio), source, scene, rootUrl);\n }\n}\n__decorate([serialize(\"samples\")], TAARenderingPipeline.prototype, \"samples\", null);\n__decorate([serialize(\"msaaSamples\")], TAARenderingPipeline.prototype, \"_msaaSamples\", void 0);\n__decorate([serialize()], TAARenderingPipeline.prototype, \"factor\", null);\n__decorate([serialize()], TAARenderingPipeline.prototype, \"disableOnCameraMove\", null);\n__decorate([serialize(\"isEnabled\")], TAARenderingPipeline.prototype, \"_isEnabled\", void 0);\nRegisterClass(\"BABYLON.TAARenderingPipeline\", TAARenderingPipeline);","map":{"version":3,"names":["__decorate","serialize","SerializationHelper","PostProcess","PostProcessRenderPipeline","PostProcessRenderEffect","RegisterClass","PassPostProcess","ThinTAAPostProcess","TAARenderingPipeline","samples","_taaThinPostProcess","msaaSamples","_msaaSamples","_taaPostProcess","factor","value","disableOnCameraMove","isEnabled","_isEnabled","_cameras","_scene","postProcessRenderPipelineManager","detachCamerasFromRenderPipeline","_name","_camerasToBeAttached","slice","_isDirty","_reset","attachCamerasToRenderPipeline","_buildPipeline","scene","isSupported","caps","getEngine","getCaps","texelFetch","constructor","name","cameras","textureType","engine","TAARenderEffect","TAAPassEffect","_pingpong","_textureType","_createPingPongTextures","getRenderWidth","getRenderHeight","addPipeline","getClassName","addCamera","camera","push","removeCamera","index","indexOf","splice","dispose","_disposePostProcesses","_ping","_pong","width","height","_this$_ping","_this$_pong","createRenderTargetTexture","generateMipMaps","generateDepthBuffer","type","samplingMode","textureWidth","textureHeight","_createTAAPostProcess","addEffect","_createPassPostProcess","_passPostProcess","i","length","_this$_taaPostProcess","_this$_passPostProces","getProjectionMatrix","uniforms","samplers","size","effectWrapper","onActivateObservable","add","_this$_taaPostProcess2","_this$_taaPostProcess3","activeCamera","updateProjectionMatrix","inputTexture","onApplyObservable","effect","_bindTexture","texture","autoClear","serializationObject","Serialize","customType","Parse","source","rootUrl","_ratio","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.js"],"sourcesContent":["import { __decorate } from \"../../../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize } from \"../../../Misc/decorators.js\";\nimport { SerializationHelper } from \"../../../Misc/decorators.serialization.js\";\nimport { PostProcess } from \"../../postProcess.js\";\nimport { PostProcessRenderPipeline } from \"../postProcessRenderPipeline.js\";\nimport { PostProcessRenderEffect } from \"../postProcessRenderEffect.js\";\nimport { RegisterClass } from \"../../../Misc/typeStore.js\";\n\nimport { PassPostProcess } from \"../../passPostProcess.js\";\nimport { ThinTAAPostProcess } from \"../../thinTAAPostProcess.js\";\nimport \"../postProcessRenderPipelineManagerSceneComponent.js\";\n/**\n * Simple implementation of Temporal Anti-Aliasing (TAA).\n * This can be used to improve image quality for still pictures (screenshots for e.g.).\n */\nexport class TAARenderingPipeline extends PostProcessRenderPipeline {\n /**\n * Number of accumulated samples (default: 16)\n */\n set samples(samples) {\n this._taaThinPostProcess.samples = samples;\n }\n get samples() {\n return this._taaThinPostProcess.samples;\n }\n /**\n * MSAA samples (default: 1)\n */\n set msaaSamples(samples) {\n if (this._msaaSamples === samples) {\n return;\n }\n this._msaaSamples = samples;\n if (this._taaPostProcess) {\n this._taaPostProcess.samples = samples;\n }\n }\n get msaaSamples() {\n return this._msaaSamples;\n }\n /**\n * The factor used to blend the history frame with current frame (default: 0.05)\n */\n get factor() {\n return this._taaThinPostProcess.factor;\n }\n set factor(value) {\n this._taaThinPostProcess.factor = value;\n }\n /**\n * Disable TAA on camera move (default: true).\n * You generally want to keep this enabled, otherwise you will get a ghost effect when the camera moves (but if it's what you want, go for it!)\n */\n get disableOnCameraMove() {\n return this._taaThinPostProcess.disableOnCameraMove;\n }\n set disableOnCameraMove(value) {\n this._taaThinPostProcess.disableOnCameraMove = value;\n }\n /**\n * Gets or sets a boolean indicating if the render pipeline is enabled (default: true).\n */\n get isEnabled() {\n return this._isEnabled;\n }\n set isEnabled(value) {\n if (this._isEnabled === value) {\n return;\n }\n this._isEnabled = value;\n if (!value) {\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n this._cameras = this._camerasToBeAttached.slice();\n }\n }\n else if (value) {\n if (!this._isDirty) {\n if (this._cameras !== null) {\n this._taaThinPostProcess._reset();\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n }\n else {\n this._buildPipeline();\n }\n }\n }\n /**\n * Gets active scene\n */\n get scene() {\n return this._scene;\n }\n /**\n * Returns true if TAA is supported by the running hardware\n */\n get isSupported() {\n const caps = this._scene.getEngine().getCaps();\n return caps.texelFetch;\n }\n /**\n * Constructor of the TAA rendering pipeline\n * @param name The rendering pipeline name\n * @param scene The scene linked to this pipeline\n * @param cameras The array of cameras that the rendering pipeline will be attached to (default: scene.cameras)\n * @param textureType The type of texture where the scene will be rendered (default: 0)\n */\n constructor(name, scene, cameras, textureType = 0) {\n const engine = scene.getEngine();\n super(engine, name);\n /**\n * The TAA PostProcess effect id in the pipeline\n */\n this.TAARenderEffect = \"TAARenderEffect\";\n /**\n * The pass PostProcess effect id in the pipeline\n */\n this.TAAPassEffect = \"TAAPassEffect\";\n this._msaaSamples = 1;\n this._isEnabled = true;\n this._isDirty = false;\n this._camerasToBeAttached = [];\n this._pingpong = 0;\n this._cameras = cameras || scene.cameras;\n this._cameras = this._cameras.slice();\n this._camerasToBeAttached = this._cameras.slice();\n this._scene = scene;\n this._textureType = textureType;\n this._taaThinPostProcess = new ThinTAAPostProcess(\"TAA\", this._scene.getEngine());\n if (this.isSupported) {\n this._createPingPongTextures(engine.getRenderWidth(), engine.getRenderHeight());\n scene.postProcessRenderPipelineManager.addPipeline(this);\n this._buildPipeline();\n }\n }\n /**\n * Get the class name\n * @returns \"TAARenderingPipeline\"\n */\n getClassName() {\n return \"TAARenderingPipeline\";\n }\n /**\n * Adds a camera to the pipeline\n * @param camera the camera to be added\n */\n addCamera(camera) {\n this._camerasToBeAttached.push(camera);\n this._buildPipeline();\n }\n /**\n * Removes a camera from the pipeline\n * @param camera the camera to remove\n */\n removeCamera(camera) {\n const index = this._camerasToBeAttached.indexOf(camera);\n this._camerasToBeAttached.splice(index, 1);\n this._buildPipeline();\n }\n /**\n * Removes the internal pipeline assets and detaches the pipeline from the scene cameras\n */\n dispose() {\n this._disposePostProcesses();\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n this._ping.dispose();\n this._pong.dispose();\n super.dispose();\n }\n _createPingPongTextures(width, height) {\n const engine = this._scene.getEngine();\n this._ping?.dispose();\n this._pong?.dispose();\n this._ping = engine.createRenderTargetTexture({ width, height }, { generateMipMaps: false, generateDepthBuffer: false, type: 2, samplingMode: 1 });\n this._pong = engine.createRenderTargetTexture({ width, height }, { generateMipMaps: false, generateDepthBuffer: false, type: 2, samplingMode: 1 });\n this._taaThinPostProcess.textureWidth = width;\n this._taaThinPostProcess.textureHeight = height;\n }\n _buildPipeline() {\n if (!this.isSupported) {\n return;\n }\n if (!this._isEnabled) {\n this._isDirty = true;\n return;\n }\n this._isDirty = false;\n const engine = this._scene.getEngine();\n this._disposePostProcesses();\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name, this._cameras);\n // get back cameras to be used to reattach pipeline\n this._cameras = this._camerasToBeAttached.slice();\n }\n this._reset();\n this._createTAAPostProcess();\n this.addEffect(new PostProcessRenderEffect(engine, this.TAARenderEffect, () => {\n return this._taaPostProcess;\n }, true));\n this._createPassPostProcess();\n this.addEffect(new PostProcessRenderEffect(engine, this.TAAPassEffect, () => {\n return this._passPostProcess;\n }, true));\n if (this._cameras !== null) {\n this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name, this._cameras);\n }\n }\n _disposePostProcesses() {\n for (let i = 0; i < this._cameras.length; i++) {\n const camera = this._cameras[i];\n this._taaPostProcess?.dispose(camera);\n this._passPostProcess?.dispose(camera);\n camera.getProjectionMatrix(true); // recompute the projection matrix\n }\n this._taaPostProcess = null;\n this._passPostProcess = null;\n }\n _createTAAPostProcess() {\n this._taaPostProcess = new PostProcess(\"TAA\", \"taa\", {\n uniforms: [\"factor\"],\n samplers: [\"historySampler\"],\n size: 1.0,\n engine: this._scene.getEngine(),\n textureType: this._textureType,\n effectWrapper: this._taaThinPostProcess,\n });\n this._taaPostProcess.samples = this._msaaSamples;\n this._taaPostProcess.onActivateObservable.add(() => {\n this._taaThinPostProcess.camera = this._scene.activeCamera;\n if (this._taaPostProcess?.width !== this._ping.width || this._taaPostProcess?.height !== this._ping.height) {\n const engine = this._scene.getEngine();\n this._createPingPongTextures(engine.getRenderWidth(), engine.getRenderHeight());\n }\n this._taaThinPostProcess.updateProjectionMatrix();\n if (this._passPostProcess) {\n this._passPostProcess.inputTexture = this._pingpong ? this._ping : this._pong;\n }\n this._pingpong = this._pingpong ^ 1;\n });\n this._taaPostProcess.onApplyObservable.add((effect) => {\n effect._bindTexture(\"historySampler\", this._pingpong ? this._ping.texture : this._pong.texture);\n });\n }\n _createPassPostProcess() {\n const engine = this._scene.getEngine();\n this._passPostProcess = new PassPostProcess(\"TAAPass\", 1, null, 1, engine);\n this._passPostProcess.inputTexture = this._ping;\n this._passPostProcess.autoClear = false;\n }\n /**\n * Serializes the rendering pipeline (Used when exporting)\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = SerializationHelper.Serialize(this);\n serializationObject.customType = \"TAARenderingPipeline\";\n return serializationObject;\n }\n /**\n * Parse the serialized pipeline\n * @param source Source pipeline.\n * @param scene The scene to load the pipeline to.\n * @param rootUrl The URL of the serialized pipeline.\n * @returns An instantiated pipeline from the serialized object.\n */\n static Parse(source, scene, rootUrl) {\n return SerializationHelper.Parse(() => new TAARenderingPipeline(source._name, scene, source._ratio), source, scene, rootUrl);\n }\n}\n__decorate([\n serialize(\"samples\")\n], TAARenderingPipeline.prototype, \"samples\", null);\n__decorate([\n serialize(\"msaaSamples\")\n], TAARenderingPipeline.prototype, \"_msaaSamples\", void 0);\n__decorate([\n serialize()\n], TAARenderingPipeline.prototype, \"factor\", null);\n__decorate([\n serialize()\n], TAARenderingPipeline.prototype, \"disableOnCameraMove\", null);\n__decorate([\n serialize(\"isEnabled\")\n], TAARenderingPipeline.prototype, \"_isEnabled\", void 0);\nRegisterClass(\"BABYLON.TAARenderingPipeline\", TAARenderingPipeline);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|