pub struct AutoExposureSettings {
pub min_ev: f32,
pub max_ev: f32,
pub speed: f32,
pub target_log_lum: f32,
}Expand description
Clamped auto-exposure tunables resolved from the authored asset fields. Held
by the backend; the per-frame EMA in AutoExposureState::update reads them
to clamp the adapted EV and drive its adaptation rate.
Fields§
§min_ev: f32Lower bound on the adapted EV. Caps how bright a dim scene can ramp.
max_ev: f32Upper bound on the adapted EV. Caps how dark a bright scene can ramp.
speed: f32EMA rate (per second). The exponential 1 - exp(-speed * dt) step pulls
the current EV toward the target each frame; higher = faster adaptation.
target_log_lum: f32Log2 of the linear value AE aims the scene’s geometric-mean luminance
at. 0.0 = scene-white (legacy SDR + ACES default, ACES then squishes
scene-white back down to a comfortable display mid-tone).
HDR_MIDDLE_GREY_LOG2 ≈ -2.47 = perceptual middle-grey, the correct
target on the HDR path where there is no ACES compression. Resolved
from PostProcessConfig.hdr_display at asset time.
Implementations§
Source§impl AutoExposureSettings
impl AutoExposureSettings
Sourcepub fn resolve(
min_ev: f32,
max_ev: f32,
speed: f32,
hdr_aware: bool,
) -> AutoExposureSettings
pub fn resolve( min_ev: f32, max_ev: f32, speed: f32, hdr_aware: bool, ) -> AutoExposureSettings
Clamp the authored fields into a safe range. min_ev is forced to stay
at-or-below max_ev so the adapted EV’s clamp interval is non-empty.
hdr_aware shifts AE’s middle-grey pivot down so the average pixel
reads at perceptual middle-grey on the HDR output path; SDR worlds
keep the legacy scene-white pivot to preserve existing exposure
authoring.
Trait Implementations§
Source§impl Clone for AutoExposureSettings
impl Clone for AutoExposureSettings
Source§fn clone(&self) -> AutoExposureSettings
fn clone(&self) -> AutoExposureSettings
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for AutoExposureSettings
Source§impl Debug for AutoExposureSettings
impl Debug for AutoExposureSettings
Source§impl PartialEq for AutoExposureSettings
impl PartialEq for AutoExposureSettings
impl StructuralPartialEq for AutoExposureSettings
Auto Trait Implementations§
impl Freeze for AutoExposureSettings
impl RefUnwindSafe for AutoExposureSettings
impl Send for AutoExposureSettings
impl Sync for AutoExposureSettings
impl Unpin for AutoExposureSettings
impl UnsafeUnpin for AutoExposureSettings
impl UnwindSafe for AutoExposureSettings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more