pub struct AutoExposurePassDesc {
pub output_average_luminance: ResourceId,
pub input_hdr: ResourceId,
pub min_log_luminance: f32,
pub max_log_luminance: f32,
pub adaptation_speed_up: f32,
pub adaptation_speed_down: f32,
pub histogram_bins: u32,
pub metered_area: Vec4,
pub eye_adaptation_type: EyeAdaptation,
}Fields§
§output_average_luminance: ResourceId§input_hdr: ResourceId§min_log_luminance: f32§max_log_luminance: f32§adaptation_speed_up: f32§adaptation_speed_down: f32§histogram_bins: u32§metered_area: Vec4§eye_adaptation_type: EyeAdaptationImplementations§
Source§impl AutoExposurePassDesc
impl AutoExposurePassDesc
pub fn default() -> Self
Sourcepub fn luminance_to_bin(&self, lum: f32) -> u32
pub fn luminance_to_bin(&self, lum: f32) -> u32
Compute the log luminance bin index for a given luminance value
Sourcepub fn ev100_from_average_luminance(avg_lum: f32) -> f32
pub fn ev100_from_average_luminance(avg_lum: f32) -> f32
Compute exposure from average luminance (EV100)
Sourcepub fn adapt_exposure(
&self,
current_ev: f32,
target_ev: f32,
delta_time: f32,
) -> f32
pub fn adapt_exposure( &self, current_ev: f32, target_ev: f32, delta_time: f32, ) -> f32
Adapt exposure over time (smooth interpolation)
Sourcepub fn percentile_from_histogram(histogram: &[u32], percentile: f32) -> f32
pub fn percentile_from_histogram(histogram: &[u32], percentile: f32) -> f32
Weighted histogram percentile exposure (e.g., 50th percentile)
Trait Implementations§
Source§impl Clone for AutoExposurePassDesc
impl Clone for AutoExposurePassDesc
Auto Trait Implementations§
impl Freeze for AutoExposurePassDesc
impl RefUnwindSafe for AutoExposurePassDesc
impl Send for AutoExposurePassDesc
impl Sync for AutoExposurePassDesc
impl Unpin for AutoExposurePassDesc
impl UnsafeUnpin for AutoExposurePassDesc
impl UnwindSafe for AutoExposurePassDesc
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
Mutably borrows from an owned value. Read more
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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.