Header menu logo Mibo.Raylib

Draw3D Module

Pipe-friendly drawing DSL for 3D rendering. Each function takes a RenderBuffer3D as its last argument, adds the corresponding command, and returns the buffer for chaining.

Commands are built via Command3D and added to the buffer.

Usage:

 buffer
 |> Draw3D.beginCamera worldCamera
 |> Draw3D.drawModel model transform
 |> Draw3D.addPointLight { Position = pos; Color = Color.White; Intensity = 1f; Radius = 10f; CastsShadows = false; ShadowBias = ValueNone }
 |> Draw3D.endCamera
 |> Draw3D.drop
union case ValueOption.ValueNone: ValueOption<'T>

Functions and values

Function or value Description

addDirectionalLight light buffer

Full Usage: addDirectionalLight light buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Adds a directional light to the scene.

light : DirectionalLight3D
buffer : RenderBuffer3D
Returns: RenderBuffer3D

addPointLight light buffer

Full Usage: addPointLight light buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Adds a point light to the scene.

light : PointLight3D
buffer : RenderBuffer3D
Returns: RenderBuffer3D

addSpotLight light buffer

Full Usage: addSpotLight light buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Adds a spot light to the scene.

light : SpotLight3D
buffer : RenderBuffer3D
Returns: RenderBuffer3D

beginCamera camera buffer

Full Usage: beginCamera camera buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Begins a 3D camera transform.

camera : Camera3D
buffer : RenderBuffer3D
Returns: RenderBuffer3D

beginCameraWith config buffer

Full Usage: beginCameraWith config buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Begins a 3D camera with explicit rendering config (viewport, clear, post-process).

config : Camera3DConfig
buffer : RenderBuffer3D
Returns: RenderBuffer3D

disableShadows buffer

Full Usage: disableShadows buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Disables shadow casting for subsequent geometry until re-enabled.

buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawBillboard texture position size color buffer

Full Usage: drawBillboard texture position size color buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Draws a billboard (camera-facing quad) with a texture.

texture : Texture2D
position : Vector3
size : Vector2
color : Color
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawBillboardBatch textures positions sizes colors count buffer

Full Usage: drawBillboardBatch textures positions sizes colors count buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Draws multiple billboards in a single batch. Prefer this over individual drawBillboard calls for many sprites at once.

textures : Texture2D[]
positions : Vector3[]
sizes : Vector2[]
colors : Color[]
count : int
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawImmediate action buffer

Full Usage: drawImmediate action buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Flushes raylib's batch, exits camera, runs action, restores state.

action : unit -> unit
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawLine3D start finish color buffer

Full Usage: drawLine3D start finish color buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Draws a 3D line between two points.

start : Vector3
finish : Vector3
color : Color
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawMesh mesh transform material buffer

Full Usage: drawMesh mesh transform material buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Draws a mesh with a world transform and material.

mesh : Mesh
transform : Matrix4x4
material : Material3D
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawMeshInstanced mesh transforms material instanceCount buffer

Full Usage: drawMeshInstanced mesh transforms material instanceCount buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Draws multiple instances of the same mesh with different transforms. Prefer this over individual drawMesh calls for many copies of the same mesh.

mesh : Mesh
transforms : Matrix4x4[]
material : Material3D
instanceCount : int
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawModel model transform buffer

Full Usage: drawModel model transform buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Draws a raylib model with a world transform. Each sub-mesh is drawn with its corresponding raylib material, converted to Material3D automatically.

model : Model
transform : Matrix4x4
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drawSkinnedMesh mesh transform material bones buffer

Full Usage: drawSkinnedMesh mesh transform material bones buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Draws a skinned mesh with bone matrix data.

mesh : Mesh
transform : Matrix4x4
material : Material3D
bones : Matrix4x4[]
buffer : RenderBuffer3D
Returns: RenderBuffer3D

drop _buffer

Full Usage: drop _buffer

Parameters:
Modifiers: inline

Terminal function that discards the buffer, silencing the unused-value warning. Does nothing.

_buffer : RenderBuffer3D

enableShadows buffer

Full Usage: enableShadows buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Enables shadow casting for subsequent geometry until disabled.

buffer : RenderBuffer3D
Returns: RenderBuffer3D

endCamera buffer

Full Usage: endCamera buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Ends the current 3D camera transform.

buffer : RenderBuffer3D
Returns: RenderBuffer3D

setAmbientLight light buffer

Full Usage: setAmbientLight light buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Sets the ambient light for the scene.

light : AmbientLight3D
buffer : RenderBuffer3D
Returns: RenderBuffer3D

setShadowOrigin origin buffer

Full Usage: setShadowOrigin origin buffer

Parameters:
Returns: RenderBuffer3D
Modifiers: inline

Sets the shadow origin for this frame's shadow pass.

origin : Vector3
buffer : RenderBuffer3D
Returns: RenderBuffer3D

Type something to start searching.