@onerjs/core 8.30.5 → 8.30.6
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/Actions/action.d.ts +5 -0
- package/Actions/action.js.map +1 -1
- package/Actions/actionManager.js +6 -2
- package/Actions/actionManager.js.map +1 -1
- package/Animations/runtimeAnimation.d.ts +0 -2
- package/Animations/runtimeAnimation.js +3 -5
- package/Animations/runtimeAnimation.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSound.js +1 -0
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/audioEngineV2.d.ts +2 -0
- package/AudioV2/abstractAudio/audioEngineV2.js +18 -8
- package/AudioV2/abstractAudio/audioEngineV2.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.js +8 -3
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/Collisions/gpuPicker.js +0 -1
- package/Collisions/gpuPicker.js.map +1 -1
- package/Decorators/nodeDecorator.d.ts +3 -1
- package/Decorators/nodeDecorator.js +2 -0
- package/Decorators/nodeDecorator.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +1 -1
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/nativeEngine.js +12 -13
- package/Engines/nativeEngine.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/anaglyphPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/anaglyphPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/anaglyphPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.d.ts +44 -0
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +152 -0
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/fxaaPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/fxaaPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/fxaaPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.js +3 -3
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.d.ts +3 -3
- package/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.js +3 -3
- package/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.js +4 -4
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.d.ts +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.d.ts +17 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js +70 -0
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.d.ts +7 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +8 -2
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/taaTask.d.ts +1 -1
- package/FrameGraph/Tasks/PostProcesses/taaTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +4 -4
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +3 -3
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.d.ts +7 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js +4 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js.map +1 -1
- package/FrameGraph/frameGraphContext.d.ts +8 -1
- package/FrameGraph/frameGraphContext.js +9 -0
- package/FrameGraph/frameGraphContext.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +4 -2
- package/FrameGraph/frameGraphRenderContext.js +11 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/frameGraphTask.d.ts +8 -0
- package/FrameGraph/frameGraphTask.js +12 -0
- package/FrameGraph/frameGraphTask.js.map +1 -1
- package/Materials/Textures/mirrorTexture.js +4 -1
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/clipPlaneMaterialHelper.js +11 -1
- package/Materials/clipPlaneMaterialHelper.js.map +1 -1
- package/Materials/floatingOriginMatrixOverrides.d.ts +4 -1
- package/Materials/floatingOriginMatrixOverrides.js +14 -2
- package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
- package/Materials/index.d.ts +1 -0
- package/Materials/index.js +1 -0
- package/Materials/index.js.map +1 -1
- package/Materials/shaderMaterial.js +1 -1
- package/Materials/shaderMaterial.js.map +1 -1
- package/Maths/math.vector.functions.d.ts +31 -5
- package/Maths/math.vector.functions.js +41 -4
- package/Maths/math.vector.functions.js.map +1 -1
- package/Misc/copyTextureToTexture.d.ts +10 -0
- package/Misc/copyTextureToTexture.js +15 -0
- package/Misc/copyTextureToTexture.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.js +7 -7
- package/Particles/Node/Blocks/Emitters/boxShapeBlock.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/createParticleBlock.d.ts +4 -0
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js +18 -2
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/customShapeBlock.js +7 -7
- package/Particles/Node/Blocks/Emitters/customShapeBlock.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js +8 -8
- package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.js +9 -9
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.js +6 -6
- package/Particles/Node/Blocks/Emitters/pointShapeBlock.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js +7 -7
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.d.ts +29 -1
- package/Particles/Node/Blocks/systemBlock.js +74 -3
- package/Particles/Node/Blocks/systemBlock.js.map +1 -1
- package/Particles/Node/nodeParticleBuildState.d.ts +2 -7
- package/Particles/Node/nodeParticleBuildState.js +7 -22
- package/Particles/Node/nodeParticleBuildState.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.helper.js +223 -58
- package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
- package/Particles/thinParticleSystem.js +1 -0
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Physics/v2/IPhysicsEnginePlugin.d.ts +1 -1
- package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.d.ts +27 -4
- package/Physics/v2/Plugins/havokPlugin.js +72 -8
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/physicsEngine.d.ts +12 -2
- package/Physics/v2/physicsEngine.js +15 -1
- package/Physics/v2/physicsEngine.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +3 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Shaders/picking.fragment.js +1 -1
- package/Shaders/picking.fragment.js.map +1 -1
- package/Shaders/picking.vertex.js +1 -1
- package/Shaders/picking.vertex.js.map +1 -1
- package/ShadersWGSL/iblVoxelGrid.vertex.js +1 -1
- package/ShadersWGSL/iblVoxelGrid.vertex.js.map +1 -1
- package/ShadersWGSL/picking.fragment.js +1 -1
- package/ShadersWGSL/picking.fragment.js.map +1 -1
- package/ShadersWGSL/picking.vertex.js +1 -1
- package/ShadersWGSL/picking.vertex.js.map +1 -1
- package/Sprites/spriteRenderer.js +10 -8
- package/Sprites/spriteRenderer.js.map +1 -1
- package/XR/features/WebXRLightEstimation.d.ts +8 -0
- package/XR/features/WebXRLightEstimation.js +6 -1
- package/XR/features/WebXRLightEstimation.js.map +1 -1
- package/assetContainer.d.ts +1 -1
- package/assetContainer.js +1 -1
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +5 -2
- package/scene.js +9 -14
- package/scene.js.map +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
2
2
|
import { FrameGraphPassCubeTask, FrameGraphPassTask } from "../../../Tasks/PostProcesses/passTask.js";
|
|
3
3
|
import { ThinPassCubePostProcess, ThinPassPostProcess } from "../../../../PostProcesses/thinPassPostProcess.js";
|
|
4
|
-
import {
|
|
4
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "././baseWithPropertiesPostProcessBlock.js";
|
|
5
5
|
/**
|
|
6
6
|
* Block that implements the pass post process
|
|
7
7
|
*/
|
|
8
|
-
export class NodeRenderGraphPassPostProcessBlock extends
|
|
8
|
+
export class NodeRenderGraphPassPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
9
9
|
/**
|
|
10
10
|
* Gets the frame graph task associated with this block
|
|
11
11
|
*/
|
|
@@ -35,7 +35,7 @@ RegisterClass("BABYLON.NodeRenderGraphPassPostProcessBlock", NodeRenderGraphPass
|
|
|
35
35
|
/**
|
|
36
36
|
* Block that implements the pass cube post process
|
|
37
37
|
*/
|
|
38
|
-
export class NodeRenderGraphPassCubePostProcessBlock extends
|
|
38
|
+
export class NodeRenderGraphPassCubePostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
39
39
|
/**
|
|
40
40
|
* Gets the frame graph task associated with this block
|
|
41
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iDAAqD;AAC1G,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,yDAA+C;AACtG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"passPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/passPostProcessBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iDAAqD;AAC1G,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,yDAA+C;AACtG,OAAO,EAAE,iDAAiD,EAAE,MAAM,wCAAwC,CAAC;AAE3G;;GAEG;AACH,MAAM,OAAO,mCAAoC,SAAQ,iDAAiD;IAGtG;;OAEG;IACH,IAAoB,IAAI;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,IAAI,CAAC,eAAe,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC3H,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,qCAAqC,CAAC;IACjD,CAAC;CACJ;AAED,aAAa,CAAC,6CAA6C,EAAE,mCAAmC,CAAC,CAAC;AAElG;;GAEG;AACH,MAAM,OAAO,uCAAwC,SAAQ,iDAAiD;IAG1G;;OAEG;IACH,IAAoB,IAAI;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnI,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,yCAAyC,CAAC;IACrD,CAAC;CACJ;AAED,aAAa,CAAC,iDAAiD,EAAE,uCAAuC,CAAC,CAAC","sourcesContent":["import type { Scene, FrameGraph } from \"core/index\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { FrameGraphPassCubeTask, FrameGraphPassTask } from \"core/FrameGraph/Tasks/PostProcesses/passTask\";\r\nimport { ThinPassCubePostProcess, ThinPassPostProcess } from \"core/PostProcesses/thinPassPostProcess\";\r\nimport { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from \"././baseWithPropertiesPostProcessBlock\";\r\n\r\n/**\r\n * Block that implements the pass post process\r\n */\r\nexport class NodeRenderGraphPassPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphPassTask;\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 NodeRenderGraphPassPostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphPassTask(this.name, frameGraph, new ThinPassPostProcess(name, scene.getEngine()));\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 \"NodeRenderGraphPassPostProcessBlock\";\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphPassPostProcessBlock\", NodeRenderGraphPassPostProcessBlock);\r\n\r\n/**\r\n * Block that implements the pass cube post process\r\n */\r\nexport class NodeRenderGraphPassCubePostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphPassCubeTask;\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 NodeRenderGraphPassCubePostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphPassCubeTask(this.name, frameGraph, new ThinPassCubePostProcess(name, scene.getEngine()));\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 \"NodeRenderGraphPassCubePostProcessBlock\";\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphPassCubePostProcessBlock\", NodeRenderGraphPassCubePostProcessBlock);\r\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph } from "../../../../index.js";
|
|
2
2
|
import { FrameGraphScreenSpaceCurvatureTask } from "../../../Tasks/PostProcesses/screenSpaceCurvatureTask.js";
|
|
3
|
-
import {
|
|
3
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
4
4
|
/**
|
|
5
5
|
* Block that implements the screen space curvature post process
|
|
6
6
|
*/
|
|
7
|
-
export declare class NodeRenderGraphScreenSpaceCurvaturePostProcessBlock extends
|
|
7
|
+
export declare class NodeRenderGraphScreenSpaceCurvaturePostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
8
8
|
protected _frameGraphTask: FrameGraphScreenSpaceCurvatureTask;
|
|
9
9
|
/**
|
|
10
10
|
* Gets the frame graph task associated with this block
|
|
@@ -4,11 +4,11 @@ import { NodeRenderGraphBlockConnectionPointTypes } from "../../Types/nodeRender
|
|
|
4
4
|
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
5
5
|
import { FrameGraphScreenSpaceCurvatureTask } from "../../../Tasks/PostProcesses/screenSpaceCurvatureTask.js";
|
|
6
6
|
import { ThinScreenSpaceCurvaturePostProcess } from "../../../../PostProcesses/thinScreenSpaceCurvaturePostProcess.js";
|
|
7
|
-
import {
|
|
7
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
8
8
|
/**
|
|
9
9
|
* Block that implements the screen space curvature post process
|
|
10
10
|
*/
|
|
11
|
-
export class NodeRenderGraphScreenSpaceCurvaturePostProcessBlock extends
|
|
11
|
+
export class NodeRenderGraphScreenSpaceCurvaturePostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
12
12
|
/**
|
|
13
13
|
* Gets the frame graph task associated with this block
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenSpaceCurvaturePostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,kCAAkC,EAAE,iEAAqE;AAClH,OAAO,EAAE,mCAAmC,EAAE,yEAA+D;AAC7G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"screenSpaceCurvaturePostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraphTextureHandle, FrameGraph } from \"core/index\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphScreenSpaceCurvatureTask } from \"core/FrameGraph/Tasks/PostProcesses/screenSpaceCurvatureTask\";\r\nimport { ThinScreenSpaceCurvaturePostProcess } from \"core/PostProcesses/thinScreenSpaceCurvaturePostProcess\";\r\nimport { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from \"./baseWithPropertiesPostProcessBlock\";\r\n\r\n/**\r\n * Block that implements the screen space curvature post process\r\n */\r\nexport class NodeRenderGraphScreenSpaceCurvaturePostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphScreenSpaceCurvatureTask;\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 NodeRenderGraphScreenSpaceCurvaturePostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"geomViewNormal\", NodeRenderGraphBlockConnectionPointTypes.TextureViewNormal);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphScreenSpaceCurvatureTask(this.name, frameGraph, new ThinScreenSpaceCurvaturePostProcess(name, scene.getEngine()));\r\n }\r\n\r\n /** Defines how much ridge the curvature effect displays. */\r\n @editableInPropertyPage(\"Ridge\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get ridge(): number {\r\n return this._frameGraphTask.postProcess.ridge;\r\n }\r\n\r\n public set ridge(value: number) {\r\n this._frameGraphTask.postProcess.ridge = value;\r\n }\r\n\r\n /** Defines how much valley the curvature effect displays. */\r\n @editableInPropertyPage(\"Valley\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 1 })\r\n public get valley(): number {\r\n return this._frameGraphTask.postProcess.valley;\r\n }\r\n\r\n public set valley(value: number) {\r\n this._frameGraphTask.postProcess.valley = 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 \"NodeRenderGraphScreenSpaceCurvaturePostProcessBlock\";\r\n }\r\n\r\n /**\r\n * Gets the geometry view normal input component\r\n */\r\n public get geomViewNormal(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.normalTexture = this.geomViewNormal.connectedPoint?.value as FrameGraphTextureHandle;\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.ridge = ${this.ridge};`);\r\n codes.push(`${this._codeVariableName}.valley = ${this.valley};`);\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.ridge = this.ridge;\r\n serializationObject.valley = this.valley;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.ridge = serializationObject.ridge;\r\n this.valley = serializationObject.valley;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphScreenSpaceCurvaturePostProcessBlock\", NodeRenderGraphScreenSpaceCurvaturePostProcessBlock);\r\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Scene, FrameGraph } from "../../../../index.js";
|
|
2
2
|
import { FrameGraphSharpenTask } from "../../../Tasks/PostProcesses/sharpenTask.js";
|
|
3
|
-
import {
|
|
3
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
4
4
|
/**
|
|
5
5
|
* Block that implements the sharpen post process
|
|
6
6
|
*/
|
|
7
|
-
export declare class NodeRenderGraphSharpenPostProcessBlock extends
|
|
7
|
+
export declare class NodeRenderGraphSharpenPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
8
8
|
protected _frameGraphTask: FrameGraphSharpenTask;
|
|
9
9
|
/**
|
|
10
10
|
* Gets the frame graph task associated with this block
|
|
@@ -3,11 +3,11 @@ import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
|
3
3
|
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
4
4
|
import { FrameGraphSharpenTask } from "../../../Tasks/PostProcesses/sharpenTask.js";
|
|
5
5
|
import { ThinSharpenPostProcess } from "../../../../PostProcesses/thinSharpenPostProcess.js";
|
|
6
|
-
import {
|
|
6
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
7
7
|
/**
|
|
8
8
|
* Block that implements the sharpen post process
|
|
9
9
|
*/
|
|
10
|
-
export class NodeRenderGraphSharpenPostProcessBlock extends
|
|
10
|
+
export class NodeRenderGraphSharpenPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
11
11
|
/**
|
|
12
12
|
* Gets the frame graph task associated with this block
|
|
13
13
|
*/
|
|
@@ -65,10 +65,10 @@ export class NodeRenderGraphSharpenPostProcessBlock extends NodeRenderGraphBaseP
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
__decorate([
|
|
68
|
-
editableInPropertyPage("Color Amount", 1 /* PropertyTypeForEdition.Float */, "PROPERTIES", { min: 0, max:
|
|
68
|
+
editableInPropertyPage("Color Amount", 1 /* PropertyTypeForEdition.Float */, "PROPERTIES", { min: 0, max: 3 })
|
|
69
69
|
], NodeRenderGraphSharpenPostProcessBlock.prototype, "colorAmount", null);
|
|
70
70
|
__decorate([
|
|
71
|
-
editableInPropertyPage("Edge Amount", 1 /* PropertyTypeForEdition.Float */, "PROPERTIES", { min: 0, max:
|
|
71
|
+
editableInPropertyPage("Edge Amount", 1 /* PropertyTypeForEdition.Float */, "PROPERTIES", { min: 0, max: 5 })
|
|
72
72
|
], NodeRenderGraphSharpenPostProcessBlock.prototype, "edgeAmount", null);
|
|
73
73
|
RegisterClass("BABYLON.NodeRenderGraphSharpenPostProcessBlock", NodeRenderGraphSharpenPostProcessBlock);
|
|
74
74
|
//# sourceMappingURL=sharpenPostProcessBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharpenPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,oDAAwD;AACxF,OAAO,EAAE,sBAAsB,EAAE,4DAAkD;AACnF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sharpenPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,oDAAwD;AACxF,OAAO,EAAE,sBAAsB,EAAE,4DAAkD;AACnF,OAAO,EAAE,iDAAiD,EAAE,MAAM,sCAAsC,CAAC;AAEzG;;GAEG;AACH,MAAM,OAAO,sCAAuC,SAAQ,iDAAiD;IAGzG;;OAEG;IACH,IAAoB,IAAI;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACjI,CAAC;IAED,uGAAuG;IAEvG,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC;IACxD,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;IACzD,CAAC;IAED,4CAA4C;IAE5C,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC;IACvD,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QAC/B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;IACxD,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,wCAAwC,CAAC;IACpD,CAAC;IAEkB,mBAAmB;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,kBAAkB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC,mBAAmB,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEe,SAAS;QACrB,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC9C,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACnD,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACjD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEe,YAAY,CAAC,mBAAwB;QACjD,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACrD,CAAC;CACJ;AA7CG;IADC,sBAAsB,CAAC,cAAc,wCAAgC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;yEAGtG;AAQD;IADC,sBAAsB,CAAC,aAAa,wCAAgC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;wEAGrG;AAmCL,aAAa,CAAC,gDAAgD,EAAE,sCAAsC,CAAC,CAAC","sourcesContent":["import type { Scene, FrameGraph } from \"core/index\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphSharpenTask } from \"core/FrameGraph/Tasks/PostProcesses/sharpenTask\";\r\nimport { ThinSharpenPostProcess } from \"core/PostProcesses/thinSharpenPostProcess\";\r\nimport { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from \"./baseWithPropertiesPostProcessBlock\";\r\n\r\n/**\r\n * Block that implements the sharpen post process\r\n */\r\nexport class NodeRenderGraphSharpenPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphSharpenTask;\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 sharpen post process block\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphSharpenTask(this.name, frameGraph, new ThinSharpenPostProcess(name, scene.getEngine()));\r\n }\r\n\r\n /** How much of the original color should be applied. Setting this to 0 will display edge detection. */\r\n @editableInPropertyPage(\"Color Amount\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 3 })\r\n public get colorAmount(): number {\r\n return this._frameGraphTask.postProcess.colorAmount;\r\n }\r\n\r\n public set colorAmount(value: number) {\r\n this._frameGraphTask.postProcess.colorAmount = value;\r\n }\r\n\r\n /** How much sharpness should be applied. */\r\n @editableInPropertyPage(\"Edge Amount\", PropertyTypeForEdition.Float, \"PROPERTIES\", { min: 0, max: 5 })\r\n public get edgeAmount(): number {\r\n return this._frameGraphTask.postProcess.edgeAmount;\r\n }\r\n\r\n public set edgeAmount(value: number) {\r\n this._frameGraphTask.postProcess.edgeAmount = 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 \"NodeRenderGraphSharpenPostProcessBlock\";\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.colorAmount = ${this.colorAmount};`);\r\n codes.push(`${this._codeVariableName}.edgeAmount = ${this.edgeAmount};`);\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.colorAmount = this.colorAmount;\r\n serializationObject.edgeAmount = this.edgeAmount;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.colorAmount = serializationObject.colorAmount;\r\n this.edgeAmount = serializationObject.edgeAmount;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphSharpenPostProcessBlock\", NodeRenderGraphSharpenPostProcessBlock);\r\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph } from "../../../../index.js";
|
|
2
2
|
import { FrameGraphTAATask } from "../../../Tasks/PostProcesses/taaTask.js";
|
|
3
|
-
import {
|
|
3
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
4
4
|
/**
|
|
5
5
|
* Block that implements the TAA post process
|
|
6
6
|
*/
|
|
7
|
-
export declare class NodeRenderGraphTAAPostProcessBlock extends
|
|
7
|
+
export declare class NodeRenderGraphTAAPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
8
8
|
protected _frameGraphTask: FrameGraphTAATask;
|
|
9
9
|
/**
|
|
10
10
|
* Gets the frame graph task associated with this block
|
|
@@ -3,13 +3,13 @@ import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
|
3
3
|
import { NodeRenderGraphBlockConnectionPointTypes } from "../../Types/nodeRenderGraphTypes.js";
|
|
4
4
|
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
5
5
|
import { FrameGraphTAATask } from "../../../Tasks/PostProcesses/taaTask.js";
|
|
6
|
-
import { NodeRenderGraphBasePostProcessBlock } from "./basePostProcessBlock.js";
|
|
7
6
|
import { NodeRenderGraphConnectionPointCustomObject } from "../../nodeRenderGraphConnectionPointCustomObject.js";
|
|
8
7
|
import { NodeRenderGraphBaseObjectRendererBlock } from "../Rendering/baseObjectRendererBlock.js";
|
|
8
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
9
9
|
/**
|
|
10
10
|
* Block that implements the TAA post process
|
|
11
11
|
*/
|
|
12
|
-
export class NodeRenderGraphTAAPostProcessBlock extends
|
|
12
|
+
export class NodeRenderGraphTAAPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
13
13
|
/**
|
|
14
14
|
* Gets the frame graph task associated with this block
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taaPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph, FrameGraphObjectRendererTask, FrameGraphTextureHandle } from \"core/index\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes, NodeRenderGraphConnectionPointDirection } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphTAATask } from \"core/FrameGraph/Tasks/PostProcesses/taaTask\";\r\nimport { NodeRenderGraphBasePostProcessBlock } from \"./basePostProcessBlock\";\r\nimport { NodeRenderGraphConnectionPointCustomObject } from \"../../nodeRenderGraphConnectionPointCustomObject\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"../Rendering/baseObjectRendererBlock\";\r\n\r\n/**\r\n * Block that implements the TAA post process\r\n */\r\nexport class NodeRenderGraphTAAPostProcessBlock extends NodeRenderGraphBasePostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphTAATask;\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 NodeRenderGraphTAAPostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\r\n \"objectRenderer\",\r\n NodeRenderGraphBlockConnectionPointTypes.Object,\r\n false,\r\n new NodeRenderGraphConnectionPointCustomObject(\r\n \"objectRenderer\",\r\n this,\r\n NodeRenderGraphConnectionPointDirection.Input,\r\n NodeRenderGraphBaseObjectRendererBlock,\r\n \"NodeRenderGraphBaseObjectRendererBlock\"\r\n )\r\n );\r\n this.registerInput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity, true);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphTAATask(this.name, frameGraph);\r\n }\r\n\r\n /** Number of accumulated samples */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"PROPERTIES\")\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, \"PROPERTIES\")\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 /** Enables reprojecting the history texture with a per-pixel velocity */\r\n @editableInPropertyPage(\"Reproject history\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get reprojectHistory() {\r\n return this._frameGraphTask.postProcess.reprojectHistory;\r\n }\r\n\r\n public set reprojectHistory(value: boolean) {\r\n this._frameGraphTask.postProcess.reprojectHistory = value;\r\n }\r\n\r\n /** Clamps the history pixel to the min and max of the 3x3 pixels surrounding the target pixel */\r\n @editableInPropertyPage(\"Clamp history\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get clampHistory() {\r\n return this._frameGraphTask.postProcess.clampHistory;\r\n }\r\n\r\n public set clampHistory(value: boolean) {\r\n this._frameGraphTask.postProcess.clampHistory = 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, \"PROPERTIES\")\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, \"PROPERTIES\")\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 \"NodeRenderGraphTAAPostProcessBlock\";\r\n }\r\n\r\n /**\r\n * Gets the object renderer input component\r\n */\r\n public get objectRenderer(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity input component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.objectRendererTask = this.objectRenderer.connectedPoint?.value as FrameGraphObjectRendererTask;\r\n this._frameGraphTask.velocityTexture = this.geomVelocity.connectedPoint?.value as FrameGraphTextureHandle;\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}.clampHistory = ${this.clampHistory};`);\r\n codes.push(`${this._codeVariableName}.reprojectHistory = ${this.reprojectHistory};`);\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.clampHistory = this.clampHistory;\r\n serializationObject.reprojectHistory = this.reprojectHistory;\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.clampHistory = serializationObject.clampHistory;\r\n this.reprojectHistory = serializationObject.reprojectHistory;\r\n this.disableOnCameraMove = serializationObject.disableOnCameraMove;\r\n this.disableTAA = serializationObject.disableTAA;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphTAAPostProcessBlock\", NodeRenderGraphTAAPostProcessBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"taaPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeRenderGraphConnectionPoint, Scene, NodeRenderGraphBuildState, FrameGraph, FrameGraphObjectRendererTask, FrameGraphTextureHandle } from \"core/index\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes, NodeRenderGraphConnectionPointDirection } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\nimport { FrameGraphTAATask } from \"core/FrameGraph/Tasks/PostProcesses/taaTask\";\r\nimport { NodeRenderGraphConnectionPointCustomObject } from \"../../nodeRenderGraphConnectionPointCustomObject\";\r\nimport { NodeRenderGraphBaseObjectRendererBlock } from \"../Rendering/baseObjectRendererBlock\";\r\nimport { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from \"./baseWithPropertiesPostProcessBlock\";\r\n\r\n/**\r\n * Block that implements the TAA post process\r\n */\r\nexport class NodeRenderGraphTAAPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphTAATask;\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 NodeRenderGraphTAAPostProcessBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\r\n \"objectRenderer\",\r\n NodeRenderGraphBlockConnectionPointTypes.Object,\r\n false,\r\n new NodeRenderGraphConnectionPointCustomObject(\r\n \"objectRenderer\",\r\n this,\r\n NodeRenderGraphConnectionPointDirection.Input,\r\n NodeRenderGraphBaseObjectRendererBlock,\r\n \"NodeRenderGraphBaseObjectRendererBlock\"\r\n )\r\n );\r\n this.registerInput(\"geomVelocity\", NodeRenderGraphBlockConnectionPointTypes.TextureLinearVelocity, true);\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphTAATask(this.name, frameGraph);\r\n }\r\n\r\n /** Number of accumulated samples */\r\n @editableInPropertyPage(\"Samples\", PropertyTypeForEdition.Int, \"PROPERTIES\")\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, \"PROPERTIES\")\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 /** Enables reprojecting the history texture with a per-pixel velocity */\r\n @editableInPropertyPage(\"Reproject history\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get reprojectHistory() {\r\n return this._frameGraphTask.postProcess.reprojectHistory;\r\n }\r\n\r\n public set reprojectHistory(value: boolean) {\r\n this._frameGraphTask.postProcess.reprojectHistory = value;\r\n }\r\n\r\n /** Clamps the history pixel to the min and max of the 3x3 pixels surrounding the target pixel */\r\n @editableInPropertyPage(\"Clamp history\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get clampHistory() {\r\n return this._frameGraphTask.postProcess.clampHistory;\r\n }\r\n\r\n public set clampHistory(value: boolean) {\r\n this._frameGraphTask.postProcess.clampHistory = 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, \"PROPERTIES\")\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, \"PROPERTIES\")\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 \"NodeRenderGraphTAAPostProcessBlock\";\r\n }\r\n\r\n /**\r\n * Gets the object renderer input component\r\n */\r\n public get objectRenderer(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the geometry velocity input component\r\n */\r\n public get geomVelocity(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[3];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._frameGraphTask.objectRendererTask = this.objectRenderer.connectedPoint?.value as FrameGraphObjectRendererTask;\r\n this._frameGraphTask.velocityTexture = this.geomVelocity.connectedPoint?.value as FrameGraphTextureHandle;\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}.clampHistory = ${this.clampHistory};`);\r\n codes.push(`${this._codeVariableName}.reprojectHistory = ${this.reprojectHistory};`);\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.clampHistory = this.clampHistory;\r\n serializationObject.reprojectHistory = this.reprojectHistory;\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.clampHistory = serializationObject.clampHistory;\r\n this.reprojectHistory = serializationObject.reprojectHistory;\r\n this.disableOnCameraMove = serializationObject.disableOnCameraMove;\r\n this.disableTAA = serializationObject.disableTAA;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphTAAPostProcessBlock\", NodeRenderGraphTAAPostProcessBlock);\r\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Scene, FrameGraph } from "../../../../index.js";
|
|
2
2
|
import { FrameGraphTonemapTask } from "../../../Tasks/PostProcesses/tonemapTask.js";
|
|
3
|
-
import { NodeRenderGraphBasePostProcessBlock } from "./basePostProcessBlock.js";
|
|
4
3
|
import { TonemappingOperator } from "../../../../PostProcesses/thinTonemapPostProcess.js";
|
|
4
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
5
5
|
/**
|
|
6
6
|
* Block that implements the tonemap post process
|
|
7
7
|
*/
|
|
8
|
-
export declare class NodeRenderGraphTonemapPostProcessBlock extends
|
|
8
|
+
export declare class NodeRenderGraphTonemapPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
9
9
|
protected _frameGraphTask: FrameGraphTonemapTask;
|
|
10
10
|
_additionalConstructionParameters: [TonemappingOperator];
|
|
11
11
|
/**
|
|
@@ -2,12 +2,12 @@ import { __decorate } from "../../../../tslib.es6.js";
|
|
|
2
2
|
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
3
3
|
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
4
4
|
import { FrameGraphTonemapTask } from "../../../Tasks/PostProcesses/tonemapTask.js";
|
|
5
|
-
import { NodeRenderGraphBasePostProcessBlock } from "./basePostProcessBlock.js";
|
|
6
5
|
import { ThinTonemapPostProcess } from "../../../../PostProcesses/thinTonemapPostProcess.js";
|
|
6
|
+
import { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from "./baseWithPropertiesPostProcessBlock.js";
|
|
7
7
|
/**
|
|
8
8
|
* Block that implements the tonemap post process
|
|
9
9
|
*/
|
|
10
|
-
export class NodeRenderGraphTonemapPostProcessBlock extends
|
|
10
|
+
export class NodeRenderGraphTonemapPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {
|
|
11
11
|
/**
|
|
12
12
|
* Gets the frame graph task associated with this block
|
|
13
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tonemapPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAA0B,MAAM,sCAAsC,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tonemapPostProcessBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.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 { FrameGraphTonemapTask } from \"../../../Tasks/PostProcesses/tonemapTask\";\r\nimport { ThinTonemapPostProcess, TonemappingOperator } from \"../../../../PostProcesses/thinTonemapPostProcess\";\r\nimport { NodeRenderGraphBaseWithPropertiesPostProcessBlock } from \"./baseWithPropertiesPostProcessBlock\";\r\n\r\n/**\r\n * Block that implements the tonemap post process\r\n */\r\nexport class NodeRenderGraphTonemapPostProcessBlock extends NodeRenderGraphBaseWithPropertiesPostProcessBlock {\r\n protected override _frameGraphTask: FrameGraphTonemapTask;\r\n\r\n public override _additionalConstructionParameters: [TonemappingOperator];\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 NodeRenderGraphTonemapPostProcessBlock\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 operator defines the operator to use (default: Reinhard)\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene, operator: TonemappingOperator = TonemappingOperator.Reinhard) {\r\n super(name, frameGraph, scene);\r\n\r\n this._additionalConstructionParameters = [operator];\r\n\r\n this._finalizeInputOutputRegistering();\r\n\r\n this._frameGraphTask = new FrameGraphTonemapTask(this.name, frameGraph, new ThinTonemapPostProcess(name, frameGraph.engine, { operator }));\r\n }\r\n\r\n private _createTask(operator: TonemappingOperator) {\r\n const sourceSamplingMode = this._frameGraphTask.sourceSamplingMode;\r\n const exposureAdjustment = this._frameGraphTask.postProcess.exposureAdjustment;\r\n\r\n this._frameGraphTask.dispose();\r\n\r\n this._frameGraphTask = new FrameGraphTonemapTask(this.name, this._frameGraph, new ThinTonemapPostProcess(this.name, this._frameGraph.engine, { operator }));\r\n this._frameGraphTask.sourceSamplingMode = sourceSamplingMode;\r\n this._frameGraphTask.postProcess.exposureAdjustment = exposureAdjustment;\r\n\r\n this._additionalConstructionParameters = [operator];\r\n }\r\n\r\n @editableInPropertyPage(\"Operator\", PropertyTypeForEdition.List, \"PROPERTIES\", {\r\n options: [\r\n { label: \"Hable\", value: TonemappingOperator.Hable },\r\n { label: \"Reinhard\", value: TonemappingOperator.Reinhard },\r\n { label: \"HejiDawson\", value: TonemappingOperator.HejiDawson },\r\n { label: \"Photographic\", value: TonemappingOperator.Photographic },\r\n ],\r\n })\r\n public get operator(): TonemappingOperator {\r\n return this._frameGraphTask.postProcess.operator;\r\n }\r\n\r\n public set operator(value: TonemappingOperator) {\r\n this._createTask(value);\r\n }\r\n\r\n /** Defines the required exposure adjustment */\r\n @editableInPropertyPage(\"Exposure adjustment\", PropertyTypeForEdition.Float, \"PROPERTIES\")\r\n public get exposureAdjustment(): number {\r\n return this._frameGraphTask.postProcess.exposureAdjustment;\r\n }\r\n\r\n public set exposureAdjustment(value: number) {\r\n this._frameGraphTask.postProcess.exposureAdjustment = 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 \"NodeRenderGraphTonemapPostProcessBlock\";\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.exposureAdjustment = ${this.exposureAdjustment};`);\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.exposureAdjustment = this.exposureAdjustment;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n this.exposureAdjustment = serializationObject.exposureAdjustment;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphTonemapPostProcessBlock\", NodeRenderGraphTonemapPostProcessBlock);\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NodeRenderGraphConnectionPoint, Scene, FrameGraph, NodeRenderGraphBuildState } from "../../../../index.js";
|
|
1
|
+
import type { NodeRenderGraphConnectionPoint, Scene, FrameGraph, NodeRenderGraphBuildState, IViewportLike } from "../../../../index.js";
|
|
2
2
|
import { NodeRenderGraphBlock } from "../../nodeRenderGraphBlock.js";
|
|
3
3
|
import { FrameGraphCopyToTextureTask } from "../../../Tasks/Texture/copyToTextureTask.js";
|
|
4
4
|
/**
|
|
@@ -6,6 +6,9 @@ import { FrameGraphCopyToTextureTask } from "../../../Tasks/Texture/copyToTextur
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBlock {
|
|
8
8
|
protected _frameGraphTask: FrameGraphCopyToTextureTask;
|
|
9
|
+
protected _useCurrentViewport: boolean;
|
|
10
|
+
protected _useFullScreenViewport: boolean;
|
|
11
|
+
protected _viewport: IViewportLike;
|
|
9
12
|
/**
|
|
10
13
|
* Gets the frame graph task associated with this block
|
|
11
14
|
*/
|
|
@@ -17,6 +20,16 @@ export declare class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBloc
|
|
|
17
20
|
* @param scene defines the hosting scene
|
|
18
21
|
*/
|
|
19
22
|
constructor(name: string, frameGraph: FrameGraph, scene: Scene);
|
|
23
|
+
private _setViewport;
|
|
24
|
+
/** If true, the current viewport will be left unchanged. */
|
|
25
|
+
get useCurrentViewport(): boolean;
|
|
26
|
+
set useCurrentViewport(value: boolean);
|
|
27
|
+
/** If true, a full screen viewport will be used. */
|
|
28
|
+
get useFullScreenViewport(): boolean;
|
|
29
|
+
set useFullScreenViewport(value: boolean);
|
|
30
|
+
/** The viewport to use. */
|
|
31
|
+
get viewport(): IViewportLike;
|
|
32
|
+
set viewport(value: IViewportLike);
|
|
20
33
|
/**
|
|
21
34
|
* Gets the current class name
|
|
22
35
|
* @returns the class name
|
|
@@ -35,4 +48,7 @@ export declare class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBloc
|
|
|
35
48
|
*/
|
|
36
49
|
get output(): NodeRenderGraphConnectionPoint;
|
|
37
50
|
protected _buildBlock(state: NodeRenderGraphBuildState): void;
|
|
51
|
+
protected _dumpPropertiesCode(): string;
|
|
52
|
+
serialize(): any;
|
|
53
|
+
_deserialize(serializationObject: any): void;
|
|
38
54
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { __decorate } from "../../../../tslib.es6.js";
|
|
1
2
|
import { NodeRenderGraphBlock } from "../../nodeRenderGraphBlock.js";
|
|
2
3
|
import { RegisterClass } from "../../../../Misc/typeStore.js";
|
|
3
4
|
import { NodeRenderGraphBlockConnectionPointTypes } from "../../Types/nodeRenderGraphTypes.js";
|
|
4
5
|
import { FrameGraphCopyToTextureTask } from "../../../Tasks/Texture/copyToTextureTask.js";
|
|
6
|
+
import { editableInPropertyPage } from "../../../../Decorators/nodeDecorator.js";
|
|
5
7
|
/**
|
|
6
8
|
* Block used to copy a texture
|
|
7
9
|
*/
|
|
@@ -20,6 +22,9 @@ export class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBlock {
|
|
|
20
22
|
*/
|
|
21
23
|
constructor(name, frameGraph, scene) {
|
|
22
24
|
super(name, frameGraph, scene);
|
|
25
|
+
this._useCurrentViewport = false;
|
|
26
|
+
this._useFullScreenViewport = true;
|
|
27
|
+
this._viewport = { x: 0, y: 0, width: 1, height: 1 };
|
|
23
28
|
this.registerInput("source", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);
|
|
24
29
|
this.registerInput("target", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);
|
|
25
30
|
this._addDependenciesInput();
|
|
@@ -29,6 +34,41 @@ export class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBlock {
|
|
|
29
34
|
this.output._typeConnectionSource = this.source;
|
|
30
35
|
this._frameGraphTask = new FrameGraphCopyToTextureTask(name, frameGraph);
|
|
31
36
|
}
|
|
37
|
+
_setViewport() {
|
|
38
|
+
if (this._useCurrentViewport) {
|
|
39
|
+
this._frameGraphTask.viewport = null;
|
|
40
|
+
}
|
|
41
|
+
else if (this._useFullScreenViewport) {
|
|
42
|
+
this._frameGraphTask.viewport = undefined;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this._frameGraphTask.viewport = this._viewport;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** If true, the current viewport will be left unchanged. */
|
|
49
|
+
get useCurrentViewport() {
|
|
50
|
+
return this._useCurrentViewport;
|
|
51
|
+
}
|
|
52
|
+
set useCurrentViewport(value) {
|
|
53
|
+
this._useCurrentViewport = value;
|
|
54
|
+
this._setViewport();
|
|
55
|
+
}
|
|
56
|
+
/** If true, a full screen viewport will be used. */
|
|
57
|
+
get useFullScreenViewport() {
|
|
58
|
+
return this._useFullScreenViewport;
|
|
59
|
+
}
|
|
60
|
+
set useFullScreenViewport(value) {
|
|
61
|
+
this._useFullScreenViewport = value;
|
|
62
|
+
this._setViewport();
|
|
63
|
+
}
|
|
64
|
+
/** The viewport to use. */
|
|
65
|
+
get viewport() {
|
|
66
|
+
return this._viewport;
|
|
67
|
+
}
|
|
68
|
+
set viewport(value) {
|
|
69
|
+
this._viewport = value;
|
|
70
|
+
this._setViewport();
|
|
71
|
+
}
|
|
32
72
|
/**
|
|
33
73
|
* Gets the current class name
|
|
34
74
|
* @returns the class name
|
|
@@ -60,6 +100,36 @@ export class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBlock {
|
|
|
60
100
|
this._frameGraphTask.sourceTexture = this.source.connectedPoint?.value;
|
|
61
101
|
this._frameGraphTask.targetTexture = this.target.connectedPoint?.value;
|
|
62
102
|
}
|
|
103
|
+
_dumpPropertiesCode() {
|
|
104
|
+
const codes = [];
|
|
105
|
+
codes.push(`${this._codeVariableName}.viewport = ${this._useCurrentViewport ? "null" : this._useFullScreenViewport ? "undefined" : JSON.stringify(this._viewport)};`);
|
|
106
|
+
return super._dumpPropertiesCode() + codes.join("\n");
|
|
107
|
+
}
|
|
108
|
+
serialize() {
|
|
109
|
+
const serializationObject = super.serialize();
|
|
110
|
+
serializationObject.useCurrentViewport = this._useCurrentViewport;
|
|
111
|
+
serializationObject.useFullScreenViewport = this._useFullScreenViewport;
|
|
112
|
+
serializationObject.viewport = this._viewport;
|
|
113
|
+
return serializationObject;
|
|
114
|
+
}
|
|
115
|
+
_deserialize(serializationObject) {
|
|
116
|
+
super._deserialize(serializationObject);
|
|
117
|
+
if (serializationObject.useCurrentViewport !== undefined) {
|
|
118
|
+
this._useCurrentViewport = serializationObject.useCurrentViewport;
|
|
119
|
+
this._useFullScreenViewport = serializationObject.useFullScreenViewport;
|
|
120
|
+
this._viewport = serializationObject.viewport;
|
|
121
|
+
}
|
|
122
|
+
this._setViewport();
|
|
123
|
+
}
|
|
63
124
|
}
|
|
125
|
+
__decorate([
|
|
126
|
+
editableInPropertyPage("Use currently active viewport", 0 /* PropertyTypeForEdition.Boolean */, "PROPERTIES")
|
|
127
|
+
], NodeRenderGraphCopyTextureBlock.prototype, "useCurrentViewport", null);
|
|
128
|
+
__decorate([
|
|
129
|
+
editableInPropertyPage("Use full screen viewport", 0 /* PropertyTypeForEdition.Boolean */, "PROPERTIES")
|
|
130
|
+
], NodeRenderGraphCopyTextureBlock.prototype, "useFullScreenViewport", null);
|
|
131
|
+
__decorate([
|
|
132
|
+
editableInPropertyPage("Viewport", 12 /* PropertyTypeForEdition.Viewport */, "PROPERTIES")
|
|
133
|
+
], NodeRenderGraphCopyTextureBlock.prototype, "viewport", null);
|
|
64
134
|
RegisterClass("BABYLON.NodeRenderGraphCopyTextureBlock", NodeRenderGraphCopyTextureBlock);
|
|
65
135
|
//# sourceMappingURL=copyTextureBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copyTextureBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Textures/copyTextureBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wCAAwC,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAEvF;;GAEG;AACH,MAAM,OAAO,+BAAgC,SAAQ,oBAAoB;IAGrE;;OAEG;IACH,IAAoB,IAAI;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,YAAmB,IAAY,EAAE,UAAsB,EAAE,KAAY;QACjE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,wCAAwC,CAAC,UAAU,CAAC,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,wCAAwC,CAAC,UAAU,CAAC,CAAC;QAClF,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,wCAAwC,CAAC,YAAY,CAAC,CAAC;QAErF,IAAI,CAAC,MAAM,CAAC,0CAA0C,CAAC,wCAAwC,CAAC,uBAAuB,CAAC,CAAC;QACzH,IAAI,CAAC,MAAM,CAAC,0CAA0C,CAAC,wCAAwC,CAAC,UAAU,CAAC,CAAC;QAC5G,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhD,IAAI,CAAC,eAAe,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,iCAAiC,CAAC;IAC7C,CAAC;IACD;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAEkB,WAAW,CAAC,KAAgC;QAC3D,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,+EAA+E;QAEvI,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAgC,CAAC;QAClG,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAgC,CAAC;IACtG,CAAC;CACJ;AAED,aAAa,CAAC,yCAAyC,EAAE,+BAA+B,CAAC,CAAC","sourcesContent":["import type { NodeRenderGraphConnectionPoint, Scene, FrameGraphTextureHandle, FrameGraph, NodeRenderGraphBuildState } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { FrameGraphCopyToTextureTask } from \"../../../Tasks/Texture/copyToTextureTask\";\r\n\r\n/**\r\n * Block used to copy a texture\r\n */\r\nexport class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphCopyToTextureTask;\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 NodeRenderGraphCopyTextureBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"target\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this._addDependenciesInput();\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this.source.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\r\n this.target.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\r\n this.output._typeConnectionSource = this.source;\r\n\r\n this._frameGraphTask = new FrameGraphCopyToTextureTask(name, frameGraph);\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 \"NodeRenderGraphCopyTextureBlock\";\r\n }\r\n /**\r\n * Gets the source input component\r\n */\r\n public get source(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the target input component\r\n */\r\n public get target(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n\r\n this._frameGraphTask.sourceTexture = this.source.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.targetTexture = this.target.connectedPoint?.value as FrameGraphTextureHandle;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphCopyTextureBlock\", NodeRenderGraphCopyTextureBlock);\r\n"]}
|
|
1
|
+
{"version":3,"file":"copyTextureBlock.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/FrameGraph/Node/Blocks/Textures/copyTextureBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeRenderGraphConnectionPoint, Scene, FrameGraphTextureHandle, FrameGraph, NodeRenderGraphBuildState, IViewportLike } from \"core/index\";\r\nimport { NodeRenderGraphBlock } from \"../../nodeRenderGraphBlock\";\r\nimport { RegisterClass } from \"../../../../Misc/typeStore\";\r\nimport { NodeRenderGraphBlockConnectionPointTypes } from \"../../Types/nodeRenderGraphTypes\";\r\nimport { FrameGraphCopyToTextureTask } from \"../../../Tasks/Texture/copyToTextureTask\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../../../../Decorators/nodeDecorator\";\r\n\r\n/**\r\n * Block used to copy a texture\r\n */\r\nexport class NodeRenderGraphCopyTextureBlock extends NodeRenderGraphBlock {\r\n protected override _frameGraphTask: FrameGraphCopyToTextureTask;\r\n\r\n protected _useCurrentViewport = false;\r\n protected _useFullScreenViewport = true;\r\n protected _viewport: IViewportLike = { x: 0, y: 0, width: 1, height: 1 };\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 NodeRenderGraphCopyTextureBlock\r\n * @param name defines the block name\r\n * @param frameGraph defines the hosting frame graph\r\n * @param scene defines the hosting scene\r\n */\r\n public constructor(name: string, frameGraph: FrameGraph, scene: Scene) {\r\n super(name, frameGraph, scene);\r\n\r\n this.registerInput(\"source\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this.registerInput(\"target\", NodeRenderGraphBlockConnectionPointTypes.AutoDetect);\r\n this._addDependenciesInput();\r\n this.registerOutput(\"output\", NodeRenderGraphBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this.source.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAllButBackBuffer);\r\n this.target.addExcludedConnectionPointFromAllowedTypes(NodeRenderGraphBlockConnectionPointTypes.TextureAll);\r\n this.output._typeConnectionSource = this.source;\r\n\r\n this._frameGraphTask = new FrameGraphCopyToTextureTask(name, frameGraph);\r\n }\r\n\r\n private _setViewport() {\r\n if (this._useCurrentViewport) {\r\n this._frameGraphTask.viewport = null;\r\n } else if (this._useFullScreenViewport) {\r\n this._frameGraphTask.viewport = undefined;\r\n } else {\r\n this._frameGraphTask.viewport = this._viewport;\r\n }\r\n }\r\n\r\n /** If true, the current viewport will be left unchanged. */\r\n @editableInPropertyPage(\"Use currently active viewport\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useCurrentViewport(): boolean {\r\n return this._useCurrentViewport;\r\n }\r\n\r\n public set useCurrentViewport(value: boolean) {\r\n this._useCurrentViewport = value;\r\n this._setViewport();\r\n }\r\n\r\n /** If true, a full screen viewport will be used. */\r\n @editableInPropertyPage(\"Use full screen viewport\", PropertyTypeForEdition.Boolean, \"PROPERTIES\")\r\n public get useFullScreenViewport(): boolean {\r\n return this._useFullScreenViewport;\r\n }\r\n\r\n public set useFullScreenViewport(value: boolean) {\r\n this._useFullScreenViewport = value;\r\n this._setViewport();\r\n }\r\n\r\n /** The viewport to use. */\r\n @editableInPropertyPage(\"Viewport\", PropertyTypeForEdition.Viewport, \"PROPERTIES\")\r\n public get viewport(): IViewportLike {\r\n return this._viewport;\r\n }\r\n\r\n public set viewport(value: IViewportLike) {\r\n this._viewport = value;\r\n this._setViewport();\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 \"NodeRenderGraphCopyTextureBlock\";\r\n }\r\n /**\r\n * Gets the source input component\r\n */\r\n public get source(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the target input component\r\n */\r\n public get target(): NodeRenderGraphConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeRenderGraphConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected override _buildBlock(state: NodeRenderGraphBuildState) {\r\n super._buildBlock(state);\r\n\r\n this.output.value = this._frameGraphTask.outputTexture; // the value of the output connection point is the \"output\" texture of the task\r\n\r\n this._frameGraphTask.sourceTexture = this.source.connectedPoint?.value as FrameGraphTextureHandle;\r\n this._frameGraphTask.targetTexture = this.target.connectedPoint?.value as FrameGraphTextureHandle;\r\n }\r\n\r\n protected override _dumpPropertiesCode() {\r\n const codes: string[] = [];\r\n codes.push(`${this._codeVariableName}.viewport = ${this._useCurrentViewport ? \"null\" : this._useFullScreenViewport ? \"undefined\" : JSON.stringify(this._viewport)};`);\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.useCurrentViewport = this._useCurrentViewport;\r\n serializationObject.useFullScreenViewport = this._useFullScreenViewport;\r\n serializationObject.viewport = this._viewport;\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n if (serializationObject.useCurrentViewport !== undefined) {\r\n this._useCurrentViewport = serializationObject.useCurrentViewport;\r\n this._useFullScreenViewport = serializationObject.useFullScreenViewport;\r\n this._viewport = serializationObject.viewport;\r\n }\r\n this._setViewport();\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.NodeRenderGraphCopyTextureBlock\", NodeRenderGraphCopyTextureBlock);\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FrameGraph, FrameGraphTextureHandle, DrawWrapper, FrameGraphRenderPass, FrameGraphRenderContext, EffectWrapper, IStencilState } from "../../../index.js";
|
|
1
|
+
import type { FrameGraph, FrameGraphTextureHandle, DrawWrapper, FrameGraphRenderPass, FrameGraphRenderContext, EffectWrapper, IStencilState, IViewportLike, Nullable } from "../../../index.js";
|
|
2
2
|
import { FrameGraphTask } from "../../frameGraphTask.js";
|
|
3
3
|
/**
|
|
4
4
|
* Task which applies a post process.
|
|
@@ -55,6 +55,12 @@ export declare class FrameGraphPostProcessTask extends FrameGraphTask {
|
|
|
55
55
|
* If depth testing should be enabled (default is true).
|
|
56
56
|
*/
|
|
57
57
|
depthTest: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* The viewport to use when applying the post process.
|
|
60
|
+
* If set to null, the currently active viewport is used.
|
|
61
|
+
* If undefined (default), the viewport is reset to a full screen viewport before applying the post process.
|
|
62
|
+
*/
|
|
63
|
+
viewport?: Nullable<IViewportLike>;
|
|
58
64
|
/**
|
|
59
65
|
* The output texture of the post process.
|
|
60
66
|
*/
|
|
@@ -88,13 +88,16 @@ export class FrameGraphPostProcessTask extends FrameGraphTask {
|
|
|
88
88
|
context.setTextureSamplingMode(this.sourceTexture, this.sourceSamplingMode);
|
|
89
89
|
}
|
|
90
90
|
additionalExecute?.(context);
|
|
91
|
+
if (this.viewport) {
|
|
92
|
+
context.setViewport(this.viewport);
|
|
93
|
+
}
|
|
91
94
|
context.applyFullScreenEffect(this._postProcessDrawWrapper, () => {
|
|
92
95
|
if (this.sourceTexture !== undefined) {
|
|
93
96
|
context.bindTextureHandle(this._postProcessDrawWrapper.effect, "textureSampler", this.sourceTexture);
|
|
94
97
|
}
|
|
95
98
|
additionalBindings?.(context);
|
|
96
99
|
this.postProcess.bind();
|
|
97
|
-
}, this.stencilState, this.disableColorWrite, this.drawBackFace, this.depthTest);
|
|
100
|
+
}, this.stencilState, this.disableColorWrite, this.drawBackFace, this.depthTest, this.viewport !== undefined);
|
|
98
101
|
});
|
|
99
102
|
if (!skipCreationOfDisabledPasses) {
|
|
100
103
|
const passDisabled = this._frameGraph.addRenderPass(this.name + "_disabled", true);
|
|
@@ -105,7 +108,10 @@ export class FrameGraphPostProcessTask extends FrameGraphTask {
|
|
|
105
108
|
passDisabled.setRenderTargetDepth(this.depthAttachmentTexture);
|
|
106
109
|
passDisabled.setExecuteFunc((context) => {
|
|
107
110
|
if (this.sourceTexture !== undefined) {
|
|
108
|
-
|
|
111
|
+
if (this.viewport) {
|
|
112
|
+
context.setViewport(this.viewport);
|
|
113
|
+
}
|
|
114
|
+
context.copyTexture(this.sourceTexture, undefined, this.viewport !== undefined);
|
|
109
115
|
}
|
|
110
116
|
});
|
|
111
117
|
}
|