Skip to content

ludus::graphics::renderer::PanelLuminaire

Ludus Wiki · API overview · Browse API

Struct

Analytic directional luminaire: a square exit surface whose tiles emit position-dependent affine Gaussian beams, after Shlomi Steinberg, "Slice Sampling: Importance sampling with an auxiliary map" (draft, University of Waterloo), section 6.2. It is not scene geometry: camera rays do not see it and it does not occlude. Only scene shaders that read it, such as the slice-sampling-luminaire render-graph template, are lit by it; the raster, clustered and reference renderers ignore it. The template owns the per-tile tables; these values place the panel and scale its beams. See "Sample a directional luminaire with slice sampling" in docs/development/render-graph-authoring.md.

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

#include <ludus/graphics/renderer/light_selection.hpp>
struct ludus::graphics::renderer::PanelLuminaire final

Fields

SourceId

ludus::foundation::uint64 ludus::graphics::renderer::PanelLuminaire::SourceId = 0
Unique nonzero source identity within the submitted list; defines the stable order.

Related types: ludus::foundation::uint64

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

CenterWorld

ludus::foundation::math::Vector3 ludus::graphics::renderer::PanelLuminaire::CenterWorld {}
Panel center in metres, each component in [-MAX_PANEL_LUMINAIRE_COORDINATE,MAX_PANEL_LUMINAIRE_COORDINATE].

Related types: ludus::foundation::math::Vector3

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

TangentWorld

ludus::foundation::math::Vector3 ludus::graphics::renderer::PanelLuminaire::TangentWorld {1, 0, 0}
Nonzero finite panel tangent (the tiles' columns); normalized during admission.

Related types: ludus::foundation::math::Vector3

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

BitangentWorld

ludus::foundation::math::Vector3 ludus::graphics::renderer::PanelLuminaire::BitangentWorld {0, -1, 0}
Panel bitangent (the tiles' rows), not parallel to TangentWorld; admission makes it orthonormal to the tangent. The panel emits along cross(TangentWorld, BitangentWorld).

Related types: ludus::foundation::math::Vector3

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

HalfExtentWorld

ludus::foundation::float32 ludus::graphics::renderer::PanelLuminaire::HalfExtentWorld = DEFAULT_PANEL_LUMINAIRE_HALF_EXTENT
Half the panel side in metres, in [MIN_PANEL_LUMINAIRE_HALF_EXTENT,MAX_PANEL_LUMINAIRE_HALF_EXTENT].

Related types: ludus::foundation::float32

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

RadianceScale

ludus::foundation::float32 ludus::graphics::renderer::PanelLuminaire::RadianceScale = DEFAULT_PANEL_LUMINAIRE_RADIANCE_SCALE
Multiplies every tile's radiance, in [0,MAX_PANEL_LUMINAIRE_RADIANCE_SCALE]; it does not change sampling.

Related types: ludus::foundation::float32

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

BeamWidth

ludus::foundation::float32 ludus::graphics::renderer::PanelLuminaire::BeamWidth = DEFAULT_PANEL_LUMINAIRE_BEAM_WIDTH
Gaussian width scale of every tile's beams in slope units, in [MIN_PANEL_LUMINAIRE_BEAM_WIDTH,MAX_PANEL_LUMINAIRE_BEAM_WIDTH].

Related types: ludus::foundation::float32

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

BeamSteering

ludus::foundation::float32 ludus::graphics::renderer::PanelLuminaire::BeamSteering = DEFAULT_PANEL_LUMINAIRE_BEAM_STEERING
Slope offset of each tile's beams along its steering direction, in [0,MAX_PANEL_LUMINAIRE_BEAM_SLOPE].

Related types: ludus::foundation::float32

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

BeamSpread

ludus::foundation::float32 ludus::graphics::renderer::PanelLuminaire::BeamSpread = DEFAULT_PANEL_LUMINAIRE_BEAM_SPREAD
Slope change per half extent of panel position, in [0,MAX_PANEL_LUMINAIRE_BEAM_SLOPE]. Nonnegative spread and twist keep the beams from focusing into a caustic in front of the panel.

Related types: ludus::foundation::float32

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp

BeamTwist

ludus::foundation::float32 ludus::graphics::renderer::PanelLuminaire::BeamTwist = DEFAULT_PANEL_LUMINAIRE_BEAM_TWIST
Rotational slope change per half extent of panel position, in [0,MAX_PANEL_LUMINAIRE_BEAM_SLOPE].

Related types: ludus::foundation::float32

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/light_selection.hpp