Header menu logo Mibo

ForwardPipelineBase Type

Abstract staged forward 3D pipeline base for the raylib backend. Implements IRenderPipeline3D by dispatching Command3D values, split into reusable stages — ForwardPipelineBase.Execute (orchestration), the pre-scan gather, the shadow pass, and a virtual ForwardPipelineBase.Shade for per-draw shading. The default Shade routes the shaded draw kinds (mesh / skinned mesh / model / instanced) through the cached Cook-Torrance PBR shaders, so models and instanced geometry get PBR + point/spot lights + shadows automatically. When a user-effect scope is open (beginEffect/endEffect), the default Shade uploads the scene data to the user shader by name via SceneUpload.

Override Shade to plug a different shading strategy (toon, cel, custom). The scene gather, shadow pass, and forward-pass dispatch are inherited.

Register via:

 Renderer3D.create (ForwardPbrPipeline()) view

Constructors

Constructor Description

ForwardPipelineBase(?maxPointLights, ?maxSpotLights, ?shadowAtlasConfig, ?shadowBiasConfig)

Full Usage: ForwardPipelineBase(?maxPointLights, ?maxSpotLights, ?shadowAtlasConfig, ?shadowBiasConfig)

Parameters:
Returns: ForwardPipelineBase
?maxPointLights : int
?maxSpotLights : int
?shadowAtlasConfig : ShadowAtlasConfig
?shadowBiasConfig : ShadowBiasConfig
Returns: ForwardPipelineBase

Instance members

Instance member Description

this.Shade

Full Usage: this.Shade

Parameters:
    frame : ForwardFrame - The frame's scene bundle (lights, shadow slots, shadow output, time).
    activeEffect : Shader voption - ValueNone on the default PBR path; ValueSome shader when a user-effect scope is open.
    currentCamera : byref<Camera3D> - The active camera.
    draw : Command3D - The draw command to shade.

Modifiers: abstract

Per-draw shading hook for user-effect scopes (beginEffect/endEffect). Override to plug a custom shading strategy (toon, cel, wireframe) while inheriting the camera/light/shadow gather and forward-pass orchestration from ForwardPipelineBase.Execute.

The default PBR path is dispatched inline in Execute for performance and does not route through this virtual call. Shade is invoked for user-effect scopes (activeEffect = ValueSome). To intercept all draws including the default PBR path, override Execute instead.

frame : ForwardFrame

The frame's scene bundle (lights, shadow slots, shadow output, time).

activeEffect : Shader voption

ValueNone on the default PBR path; ValueSome shader when a user-effect scope is open.

currentCamera : byref<Camera3D>

The active camera.

draw : Command3D

The draw command to shade.

Type something to start searching.