Header menu logo Mibo

Camera3D Module

Helper functions for 3D Cameras (Perspective / Orthographic projection).

Use these for first-person, third-person, or any 3D game rendering.

The raylib Camera3D is a native mutable struct. screenPointToRay takes it by inref (use &camera); the config builders take it by value; the constructors (create/orbit) and modifiers (withUp/asOrthographic) return a new Camera3D.

Functions and values

Function or value Description

asOrthographic camera

Full Usage: asOrthographic camera

Parameters:
Returns: Camera3D
Modifiers: inline

Switch the camera to orthographic projection.

FovY is reinterpreted as the vertical view size in world units.

camera : Camera3D
Returns: Camera3D

create position target fovy

Full Usage: create position target fovy

Parameters:
    position : Vector3 - Camera position in world space.
    target : Vector3 - Point the camera is looking at.
    fovy : float32 - Vertical field of view in **degrees**.

Returns: Camera3D
Modifiers: inline

Creates a perspective Camera3D that looks at a target from a position.

Mirrors the MonoGame Camera3D.create capability, but returns the native raylib Camera3D struct. The field-of-view is in **degrees** (raylib convention), unlike MonoGame's radians. Near/far planes and aspect ratio are managed internally by raylib's BeginMode3D, so they are not parameters here. Up defaults to Vector3.UnitY; override with Camera3D.withUp.

position : Vector3

Camera position in world space.

target : Vector3

Point the camera is looking at.

fovy : float32

Vertical field of view in **degrees**.

Returns: Camera3D

orbit target yaw pitch radius fovy

Full Usage: orbit target yaw pitch radius fovy

Parameters:
    target : Vector3 - Point the camera orbits around.
    yaw : float32 - Horizontal rotation angle in radians.
    pitch : float32 - Vertical rotation angle in radians.
    radius : float32 - Distance from target.
    fovy : float32 - Vertical field of view in **degrees**.

Returns: Camera3D
Modifiers: inline

Creates an orbiting perspective Camera3D using spherical coordinates.

Useful for third-person cameras, inspection views, or editor cameras. The field-of-view is in **degrees** (raylib convention).

target : Vector3

Point the camera orbits around.

yaw : float32

Horizontal rotation angle in radians.

pitch : float32

Vertical rotation angle in radians.

radius : float32

Distance from target.

fovy : float32

Vertical field of view in **degrees**.

Returns: Camera3D

render camera

Full Usage: render camera

Parameters:
Returns: Camera3DConfig
Modifiers: inline

Create a rendering config from a raylib camera. Defaults: fullscreen, no clear.

camera : Camera3D
Returns: Camera3DConfig

screenPointToRay camera screenPos

Full Usage: screenPointToRay camera screenPos

Parameters:
    camera : inref<Camera3D> - Passed by read-only reference (&camera) to avoid copying the native struct.
    screenPos : Vector2 - The screen position in pixels.

Returns: Ray
Modifiers: inline

Creates a ray from screen coordinates for mouse/touch picking.

Thin wrapper over raylib's native Raylib.GetScreenToWorldRay, returning the native Raylib_cs.Ray so it composes with raylib's own picking/collision helpers. Mirrors the MonoGame Camera3D.screenPointToRay capability.

camera : inref<Camera3D>

Passed by read-only reference (&camera) to avoid copying the native struct.

screenPos : Vector2

The screen position in pixels.

Returns: Ray

splitScreenBottom camera clearColor

Full Usage: splitScreenBottom camera clearColor

Parameters:
Returns: Camera3DConfig
Modifiers: inline

Split-screen bottom half. Clears with given color.

camera : Camera3D
clearColor : Color
Returns: Camera3DConfig

splitScreenLeft camera clearColor

Full Usage: splitScreenLeft camera clearColor

Parameters:
Returns: Camera3DConfig
Modifiers: inline

Split-screen left half. Clears with given color.

camera : Camera3D
clearColor : Color
Returns: Camera3DConfig

splitScreenRight camera clearColor

Full Usage: splitScreenRight camera clearColor

Parameters:
Returns: Camera3DConfig
Modifiers: inline

Split-screen right half. Clears with given color.

camera : Camera3D
clearColor : Color
Returns: Camera3DConfig

splitScreenTop camera clearColor

Full Usage: splitScreenTop camera clearColor

Parameters:
Returns: Camera3DConfig
Modifiers: inline

Split-screen top half. Clears with given color.

camera : Camera3D
clearColor : Color
Returns: Camera3DConfig

withClear color config

Full Usage: withClear color config

Parameters:
Returns: Camera3DConfig
Modifiers: inline

Clear with this color before rendering.

color : Color
config : Camera3DConfig
Returns: Camera3DConfig

withUp up camera

Full Usage: withUp up camera

Parameters:
Returns: Camera3D
Modifiers: inline

Set the up vector (default is Vector3.UnitY).

up : Vector3
camera : Camera3D
Returns: Camera3D

withViewport viewport config

Full Usage: withViewport viewport config

Parameters:
Returns: Camera3DConfig
Modifiers: inline

Set viewport in normalized screen coordinates (0-1).

viewport : Rectangle
config : Camera3DConfig
Returns: Camera3DConfig

Type something to start searching.