Table of Contents

Namespace PopcorningGuineaPig.Engine.Rendering

Classes

CubemapSky

Cubemap sky loaded through IVirtualFileSystem. Six images, or one lat-long (raylib's LoadTextureCubemap has no lat-long layout, so the engine converts it). Drawn first inside BeginMode3D. The five-face Skybox stays for painted skies. IBL is a hemisphere taken from this image and is off until SetIbl(bool). See docs/architecture/skybox.md.

InstancedMeshDraw

Many copies of one mesh, one draw. The shader declares in mat4 instanceTransform. Each matrix is the DrawModelEx product: scale, then rotation, then translation. Copies share one material. A different tint is a different draw.

ModelSockets

Named attach points exported in a glTF/GLB. Raylib's LoadModel drops empties, so this reads the JSON chunk directly.

ParticlePool

Fixed CPU billboard pool. Technique from Banqi CaptureVfx and Sven ParticlePool. No per-particle heap, no Box3D, no PGPSCN nodes.

ParticlePresets

Tiny optional recipes. Game-specific bursts (feathers, axe slashes) stay in the games.

Skybox

Axis-aligned sky cube. XZ follows the camera; Y sits on the ground so the map is the floor. Six ordinary 2D textures, NegY optional. Depth-write off, drawn first inside BeginMode3D. See docs/architecture/skybox.md.

SkyboxGeometry

Cube that follows the camera in XZ and sits on GroundY. Raylib-free so tests can lock the invariant.

Structs

Frustum

Perspective camera as six inward planes. A box that crosses a plane stays visible. Near and far follow raylib BeginMode3D (DefaultNear, DefaultFar) unless the caller passes others. A default value, and an orthographic camera, accept every box.

Particle

One mote. Value type; the pool never boxes it. Games fill this via ParticleConfig or by constructing one and calling Emit(in Particle).

ParticleConfig

Spawn recipe for Emit(int, Vector3, in ParticleConfig). Velocity is a cone (yaw full circle, pitch range) plus an optional bias. Physics is velocity + gravity + drag — not Box3D.

Enums

ParticleBlend
ParticleFade
SkyboxFace