pub struct GrainParams {
pub enabled: bool,
pub intensity: f32,
pub size: f32,
pub speed: f32,
pub luma_weight: f32,
pub color_grain: f32,
pub softness: f32,
}Expand description
Film grain pass parameters.
Fields§
§enabled: bool§intensity: f32Base grain strength (0.0 = none, 0.05 = subtle film grain, 0.15 = heavy).
size: f32Size of each grain sample in pixels (1.0 = per-pixel, 2.0 = chunky).
speed: f32Temporal animation speed (how fast the grain pattern changes). 1.0 = normal.
luma_weight: f32Luma weighting: 0.0 = flat grain everywhere, 1.0 = grain only in bright areas.
color_grain: f32Color grain mixing: 0.0 = monochrome grain, 1.0 = RGB channel-independent.
softness: f32Soft grain vs hard grain. 0.0 = hard (high contrast), 1.0 = soft (gaussian).
Implementations§
Source§impl GrainParams
impl GrainParams
Sourcepub fn digital_noise() -> Self
pub fn digital_noise() -> Self
Digital noise (hard, flat, color grain — like a low-light CMOS sensor).
Sourcepub fn chaos(entropy: f32) -> Self
pub fn chaos(entropy: f32) -> Self
Chaos distortion grain (used during high entropy events like Chaos Rift proximity).
Sourcepub fn lerp(a: &Self, b: &Self, t: f32) -> Self
pub fn lerp(a: &Self, b: &Self, t: f32) -> Self
Lerp between two grain settings for smooth transitions.
Sourcepub fn sample(&self, pixel: f32, seed: f32, uv_x: f32, uv_y: f32) -> f32
pub fn sample(&self, pixel: f32, seed: f32, uv_x: f32, uv_y: f32) -> f32
Simulate what this grain does to a single pixel value (CPU preview).
pixel is a linear luma value [0, 1].
seed is the current frame time (drives temporal variation).
uv is the screen UV coordinate for spatial variation.
Returns the additive grain value to add/subtract from the pixel.
Trait Implementations§
Source§impl Clone for GrainParams
impl Clone for GrainParams
Source§fn clone(&self) -> GrainParams
fn clone(&self) -> GrainParams
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GrainParams
impl Debug for GrainParams
Auto Trait Implementations§
impl Freeze for GrainParams
impl RefUnwindSafe for GrainParams
impl Send for GrainParams
impl Sync for GrainParams
impl Unpin for GrainParams
impl UnsafeUnpin for GrainParams
impl UnwindSafe for GrainParams
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
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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.