Skip to content

ludus::resources::SceneMaterial

Ludus Wiki · API overview · Browse API

Struct

Versioned RGB reflection, source optical parameters and authored emission.

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

#include <ludus/runtime/resources/scene.h>
struct ludus::resources::SceneMaterial final

Fields

Texture

uint32 ludus::resources::SceneMaterial::Texture = ~uint32{0}
Scene-local texture index; all ones means black untextured surface.

Related types: uint32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Repeat

bool ludus::resources::SceneMaterial::Repeat = false
Repeat UV addressing; false clamps at texture borders.

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Metallic

float32 ludus::resources::SceneMaterial::Metallic = 0
Metallic fraction in [0,1].

Related types: float32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Roughness

float32 ludus::resources::SceneMaterial::Roughness = .5F
Perceptual roughness in [0.045,1], matching renderer admission.

Related types: float32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Emission

foundation::math::Vector3 ludus::resources::SceneMaterial::Emission {}
Linear RGB nits in v3; legacy scene-linear emission otherwise.

Related types: foundation::math::Vector3

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

IsEmissionTwoSided

bool ludus::resources::SceneMaterial::IsEmissionTwoSided = true
Legacy v1/v2 defaults to two-sided; v3 uses its flags.

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

HasEmissionPower

bool ludus::resources::SceneMaterial::HasEmissionPower = false
Resolve EmissionPower independently per placed Shape.

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

AreaSourceId

uint64 ludus::resources::SceneMaterial::AreaSourceId =
0
Stable emitter group ID; derived from material order in legacy bundles; zero for nonemitters.

Related types: uint64

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

EmissionPower

float32 ludus::resources::SceneMaterial::EmissionPower = 0
Total lumens after scale; zero without HasEmissionPower.

Related types: float32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

IsAlphaMasked

bool ludus::resources::SceneMaterial::IsAlphaMasked = false
Discard surface points whose base texture alpha is below AlphaCutoff (v5 ALPHA_MASKED). False before v5 and for opaque v5 materials, which ignore texture alpha.

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

AlphaCutoff

float32 ludus::resources::SceneMaterial::AlphaCutoff = 0
Masked threshold in [0,1]; zero when IsAlphaMasked is false.

Related types: float32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

SurfaceTexture

uint32 ludus::resources::SceneMaterial::SurfaceTexture = ~uint32{0}
v6 linear surface map index (RG tangent normal, B roughness and A metallic multipliers), or all ones. It shares Texture's coordinates and addressing; see content::scene_format::MaterialRecordV6.

Related types: uint32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

EmissionTexture

uint32 ludus::resources::SceneMaterial::EmissionTexture = ~uint32{0}
v6 sRGB emission colour map index whose RGB multiplies Emission, or all ones.

Related types: uint32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

NormalScale

float32 ludus::resources::SceneMaterial::NormalScale = 0
Tangent-normal strength in [0,8]; zero without a surface map.

Related types: float32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Name

SceneMaterialName ludus::resources::SceneMaterial::Name
Original named material identity; empty for inline and legacy materials.

Related types: SceneMaterialName

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

SourceIdentity

uint32 ludus::resources::SceneMaterial::SourceIdentity = 0
Source command index plus one; zero for legacy assets.

Related types: uint32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Reflectance

foundation::math::Vector3 ludus::resources::SceneMaterial::Reflectance {1, 1, 1}
Linear RGB factor; legacy NO_TEXTURE remains black.

Related types: foundation::math::Vector3

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Scattering

content::scene_format::MaterialScattering ludus::resources::SceneMaterial::Scattering {}
Version 7 typed optical parameters.

Related types: content::scene_format::MaterialScattering

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

HasSourceMaterial

bool ludus::resources::SceneMaterial::HasSourceMaterial = false
Version 7 retains reflectance even without a texture.

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h