Package-level declarations
Types
Screen-space ambient occlusion (SSAO).
Hoisted, observable playback state for a single glTF Animator, created with rememberAnimationState and passed to GltfInstance. It auto-advances on every frame and cross-fades smoothly whenever animationIndex changes, covering the common "play idle, blend into walk" case without dropping to the onUpdate escape hatch.
Anti-aliasing: MSAA (hardware), FXAA (post-process), and TAA (temporal).
Hoisted, observable camera state. Create with rememberCameraState and pass to io.github.erkko68.filament.compose.FilamentView for full control over the camera.
Color grading — exposure, white balance, contrast, tone mapping, etc.
Depth-of-field (bokeh). The camera's focus distance and aperture control the focal plane.
Dithering applied at tonemap time. View.Dithering.TEMPORAL (Filament's native default) hides 8-bit banding in dark gradients and bloom halos.
Dynamic resolution scaling — lowers internal resolution under GPU load and upscales.
A loaded image-based-lighting environment: the indirectLightState that lights the scene and an optional skyboxState background. Obtain via rememberKTXEnvironment (pre-baked KTX) or rememberHDREnvironment (raw .hdr) and feed the two states straight into io.github.erkko68.filament.compose.rememberFilamentScene:
A loaded glTF asset whose GPU resources are ready. Obtain via rememberGltfAsset.
Scope for interacting with a specific glTF instance via low-level Filament APIs.
Hoisted, observable Image-Based Lighting (IBL) state. Pass to io.github.erkko68.filament.compose.rememberFilamentScene via indirectLightState = ....
Per-view visual configuration: post-processing effects plus render-quality options. Pass to io.github.erkko68.filament.compose.FilamentView via postProcessing = ....
Camera projection. Pass an instance as the Camera.projection argument.
Precision of the view's HDR color buffer. View.Quality.HIGH (the native default) is RGBA16F where supported — needed for emissive values above 1.0 to survive into bloom.
Screen-space reflections (SSR).
Shadow rendering. type selects the algorithm; VSM/soft-shadow params apply only to their respective types (Filament ignores irrelevant options).
Source for a SkyboxState: either a solid color or a cubemap texture.
Hoisted, observable skybox state. Pass to io.github.erkko68.filament.compose.rememberFilamentScene via skyboxState = .... A null source removes the skybox entirely.
Spherical harmonics coefficients for diffuse irradiance.
Spot / focused-spot cone angles (half-angles in radians). innerAngle must be ≤ outerAngle.
Functions
Attaches a CameraState to the surrounding Group so the camera follows that group's world transform every frame — a declarative chase / first-person / mounted camera.
Places one copy of a GltfAsset in the scene.
Groups child scene composables under a single transform. Everything declared inside content is parented to a hidden transform entity, so moving/rotating/scaling the Group moves the whole assembly as a unit. Children's own position/rotation/scale become local to the group, and groups themselves nest cleanly inside other groups.
Adds a light to the scene. type is Filament's own LightManager.Type enum.
Creates and remembers an AnimationState. Initial values seed the state on first composition; afterwards mutate the returned object's fields to drive playback.
Creates and remembers a CameraState.
Builds an Environment from an equirectangular HDR image instead of pre-baked KTX — no cmgen step, just ship the .hdr. The reflection cubemap and skybox are prefiltered on the GPU at load via IBLPrefilterContext/EquirectangularToCubemap/SpecularFilter.
Creates and remembers an IndirectLightState.
Loads an IBL environment (and optional skybox) from KTX1 data and wires it into the scene's indirect-light/skybox state. This is the convenience path over hand-wiring KTX1Loader, texture lifetimes, and IndirectLightState/SkyboxState.
Creates and manages a MaterialInstance from a Material. The instance is destroyed when this leaves the composition.
Creates and remembers a SkyboxState.
Asynchronously loads and manages a Filament Texture. Returns null while loading and on failure — it never throws inside composition. Pass onError to react when load throws (missing file, network error) or the bytes can't be decoded on this platform. See rememberMaterial for the engine-hoisting pattern when calling outside rememberFilamentScene { }.