Logo Mibo

Mibo.Elmish.Graphics3D.Pipelines Namespace

Type/Module Description

BlockLightSet (Type)

An immutable snapshot of a light set: the ambient slot plus the directional, point, and spot light arrays. Light-state semantics are per light type — each kind is an independent array, so a set may hold any number of directional lights.

BlockLightSet (Type)

An immutable snapshot of a light set: the ambient slot plus the directional, point, and spot light arrays. Light-state semantics are per light type — each kind is an independent array, so a set may hold any number of directional lights.

BlockPlan (Module)

Builds a BlockPlan from a render buffer.

BlockPlan (Module)

Builds a BlockPlan from a render buffer.

BlockPlan (Type)

The result of walking a RenderBuffer3D once: how many camera blocks the frame contains, the per-block light/shadow state, and the frame-default light set that blocks with their own light commands reset to.

BlockPlan (Type)

The result of walking a RenderBuffer3D once: how many camera blocks the frame contains, the per-block light/shadow state, and the frame-default light set that blocks with their own light commands reset to.

CameraBlockPlan (Type)

The plan for one camera block (BeginCamera/BeginCameraConfigEndCamera).

CameraBlockPlan (Type)

The plan for one camera block (BeginCamera/BeginCameraConfigEndCamera).

ForwardFrame (Type)

Per-frame scene state the PBR handlers read (passed byref, no allocation).

ForwardFrame (Type)

Per-frame scene state passed to ForwardPipelineBase.Shade.

ForwardPbrPipeline

The default raylib 3D forward PBR pipeline: a thin ForwardPipelineBase that inherits the camera/light/shadow gather and forward-pass orchestration unchanged, using the base's default Cook-Torrance PBR ForwardPipelineBase.Shade.

ForwardPipeline

The default MonoGame 3D forward pipeline: a thin ForwardPipelineBase that inherits the camera/light/shadow gather and forward-pass orchestration unchanged, using the base's default Cook-Torrance PBR ForwardPipelineBase.Shade.

ForwardPipelineBase (Type)

Staged forward 3D pipeline base for the MonoGame 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 (model / animated model / primitive / instanced) through the custom Cook-Torrance PBR effect (ForwardPbr.fx), so imported models and instanced geometry get PBR + point/spot lights + shadows automatically. The only native-effect paths left are the billboards/lines (unlit BasicEffect) and DrawMeshEffect (user-supplied effect escape hatch).

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.

ForwardState

Per-frame forward-rendering state, threaded byref through dispatch.

InstanceWorldCache

Per-frame cache of staged per-instance world rows (VertexInstanceWorldPalette: world matrix + chunk-local palette row) for skinned + instanced draws, SHARED by the shadow pass and the forward PBR pass on the palette-texture backends (DX11/Vulkan). Both passes stage the same rows every frame — the chunk plan is already shared via PaletteChunkCache, so chunk-local offsets match and one staging pass can serve both passes' vertex-buffer uploads (each pass still uploads into its OWN DynamicVertexBuffer — the two passes never share a buffer, preserving the no-race DX12 upload-ordering design).

LightBuffers (Module)

Convenience builders for LightBuffers.

LightBuffers (Module)

Convenience builders for LightBuffers.

LightBuffers (Type)

Per-pipeline light accumulator. Created once at construction; cleared and repopulated each frame (mirrors the canonical raylib LightBuffers double-scan pattern).

LightBuffers (Type)

Per-pipeline light accumulator. Created once at construction; cleared and repopulated each frame.

PaletteChunkCache

Per-frame cache of staged bone-palette texture chunks for skinned + instanced draws, SHARED by the shadow pass and the forward PBR pass: both passes stage the same palettes every frame, so doing it in each pass doubled the most expensive per-frame work (count * boneCount matrices at 64B each, staged + uploaded). The first pass to request a (palettes, boneCount, count) triple stages + uploads it; the second gets the same chunk textures back.

PaletteTexturePool

Pools Texture2D bone-palette textures (SurfaceFormat.Vector4) keyed by (width, height). Acquired textures stay checked out until PaletteTexturePool.ReleaseAll — called once per frame, mirroring RenderTargetPool3D's lifetime.

SceneContext (Type)

The scene state passed to a Draw3D.drawImmediate callback: the raw graphics device plus everything the pipeline gathered for the current frame (active camera, lights, the shadow pass output, elapsed time). Use it for fully-custom draws that need both device control and the scene data — water/refraction, screen-space effects, multi-pass.

SceneContext (Type)

The scene state passed to a Draw3D.drawImmediate callback: everything the pipeline gathered for the current frame (active camera, view/projection matrices, lights, the shadow pass output, elapsed time). Use it for fully-custom draws that need the scene data — water/refraction, screen-space effects, multi-pass.

SceneUpload (Module)

Effect-agnostic scene-data upload: resolves uniform names on any Effect.

SceneUpload (Module)

Shader-agnostic scene-data upload: resolves uniform names on any Shader.

Shaders

Built-in GLSL shader generators for the Forward PBR pipeline.

ShadowAtlas (Type)

Manages a texture atlas for multiple shadow maps. MonoGame port of the canonical raylib ShadowAtlas.

ShadowAtlas (Type)

Manages a texture atlas for multiple shadow maps. Supports directional, point (cubemap), and spot light shadows.

ShadowAtlasConfig (Module)

Convenience values for ShadowAtlasConfig.

ShadowAtlasConfig (Module)

ShadowAtlasConfig (Type)

Configuration for the shadow atlas system.

ShadowAtlasConfig (Type)

Configuration for the shadow atlas system.

ShadowBiasConfig (Module)

Convenience values for ShadowBiasConfig.

ShadowBiasConfig (Module)

ShadowBiasConfig (Type)

Global shadow bias configuration.

ShadowBiasConfig (Type)

Global shadow bias configuration.

ShadowCasterData (Type)

Data for a single shadow caster in the atlas.

ShadowCasterData (Type)

Data for a single shadow caster in the atlas.

ShadowCasterId (Type)

Unique identifier for a shadow caster in the atlas.

ShadowCasterId (Type)

Unique identifier for a shadow caster in the atlas.

ShadowCasterType (Type)

Type of shadow caster determines projection and face count.

ShadowCasterType (Type)

Type of shadow caster determines projection and face count.

ShadowEffectParams

Cached EffectParameter handles for the depth-only shadow pass effect (DepthShadow.fx).

ShadowInstancedDraw

An instanced caster draw collected for the shadow pass.

ShadowMeshDraw

A mesh draw collected for the shadow pass (caster geometry).

ShadowModelPartDraw

A static ModelMeshPart caster collected for the shadow pass.

ShadowOriginStrategy (Type)

Strategy for determining the origin point of shadow maps.

ShadowOriginStrategy (Type)

Strategy for determining the origin point of shadow maps.

ShadowResources

Owns the shadow atlas + depth effect + pooled scratch the shadow pass needs, reused across frames. Constructed once by the pipeline; EnsureResources allocates the GPU atlas lazily against the real device on the first shadow pass.

ShadowResult (Type)

The shadow pass output for a frame: the atlas texture + the packed shadow-sampling uniforms a shader consumes. ShadowResult.Atlas is the depth atlas (sampler slot 5, PointClamp); the arrays are already sized to the active caster count.

ShadowResult (Type)

The shadow pass output for a frame: the atlas texture + the packed shadow-sampling uniforms a shader consumes. ShadowResult.Atlas is the depth atlas; the arrays are sized to the active caster count.

ShadowSkinnedDraw

A skinned caster draw collected for the shadow pass (B12).

ShadowSkinnedInstancedDraw

A skinned + instanced caster draw collected for the shadow pass.

TransparentDraw

A deferred transparent draw for the forward pass: a single model-mesh-part or primitive draw whose resolved material has 0 < Opacity < 1. Collected inline during the forward pass, sorted far-to-near by camera distance, and flushed after all opaque geometry with alpha blending + depth-read (opaque geometry already wrote depth; each successive transparent is nearer and passes the depth test). Transparent geometry is also excluded from the shadow and scene-depth gathers (see ShadowPass.collectCommand) — something that renders blended must not write shadow depth.

Type something to start searching.