# ProgressivePipeline
Pipeline -> ProgressivePipeline
Abstract class that extends the abstract Pipeline and provides builtin functionality for progressive rendering. Progressive pipelines define three stages for themselves:
- Dynamic
- Progressive
- Passthrough
Each stage will typically have it's own list of GPass, bu they can share pass instances between them if necessary
At any given time the pipeline can be in one of these stages. Dynamic stage is when the pipeline needs to render dynamic content like for example when the camera is in motion. Progressive stage is when the pipeline has reached a stationary point and progressive rendering can start and accumulate. Passthrough stage is when the pipeline needs to render, without restarting an already existing progressive result. The progressive rendering resulti is passed through as is.
# Constructors
constructor |
---|
# Properties
accumulating | accumulationFrameCount | accumulationFrameIndex | dynamicStage |
---|---|---|---|
passthroughStage | progressiveStage |
# Accessors
passes |
---|
# Methods
onStationaryBegin | onStationaryEnd | onAccumulationComplete |
---|
# Constructors
# constructor
constructor(speckleRenderer: SpeckleRenderer)
Parameters
- speckleRenderer: The hosting renderer as SpeckleRenderer
# Properties
# accumulating
protected accumulating: boolean;
Flag that indicates whether the pipeline is in the process of accumulating samples or not
# accumulationFrameCount
protected accumulationFrameCount: number;
The pipeline's desired accumulation frames count. Defaults to 16
# accumulationFrameIndex
protected accumulationFrameIndex: number;
The pipeline's current accumulation frame index, 0
if not in the progressive stage
# dynamicStage
protected dynamicStage: Array<GPass>;
The pipeline's dynamic rendering stage pass list.
TIP
These passes will be used for rendering in dynamic scenarios, like when the camera is moving
# progressiveStage
protected progressiveStage: Array<GPass>;
The pipeline's progressive rendering stage pass list.
TIP
These passes will be used for rendering in static scenarios, like when the camera has stopped and the pipeline needs to accumulate progressive samples
# passthroughStage
protected passthroughStage: Array<GPass>;
The pipeline's passthrough rendering stage pass list.
TIP
These passes will be used for rendering in scenarios where the pipeline needs to render, however it wants to keep it's last progressive render result and just pass it through
# Accessors
# passes
get passes(): Array<GPass>;
Gets the pipeline's passes by combining all three of it's stages passes in the following order: dynamic, progressive and passthrough.
Returns: Array<GPass>
# Methods
# onStationaryBegin
onStationaryBegin(): void
Callback for when the pipeline is switching from dynamic/passthrough stage to progressive
Returns: void
# onStationaryEnd
onStationaryEnd(): void
Callback for when the pipeline is switching from progressive stage to dynamic
Returns: void
# onAccumulationComplete
onAccumulationComplete(): void
Callback for when the pipeline has finished accumulating and is switching from progressive to passthrough
Returns: void