Skip to main content

TransparentView

Struct TransparentView 

Source
#[repr(C)]
pub struct TransparentView { pub vp: [[f32; 4]; 4], pub inv_vp: [[f32; 4]; 4], pub camera_pos: [f32; 4], pub viewport: [f32; 2], pub time: f32, pub prefilter_mip_count: f32, pub sky_rot: [[f32; 4]; 3], pub sun_dir: [f32; 4], pub sun_color: [f32; 4], }
Expand description

Per-frame view inputs shared by every draw in the transparent pass (water, glass), bound once for the whole pass. Matches TransparentView in shaders/glass.slang and shaders/water.slang. 240 bytes.

Fields§

§vp: [[f32; 4]; 4]

View-projection matrix, column-major.

§inv_vp: [[f32; 4]; 4]

Inverse view-projection matrix, column-major.

§camera_pos: [f32; 4]

World-space camera position (xyz). .w is ignored by the shader.

§viewport: [f32; 2]

Render-target width / height in pixels: the shader uses this to turn its fragment position into a normalised screen UV.

§time: f32

Wall-clock seconds since startup, fed to the Gerstner sum.

§prefilter_mip_count: f32

Mip count of the bound IBL prefilter cube; 0 signals “no environment map”, where the glass reflection falls back to a white rim. Per-frame state, so it rides the shared view rather than a per-draw params block.

§sky_rot: [[f32; 4]; 3]

Rows of the rotation taking a world-space direction into the environment cubemap’s baked frame, mirroring ViewUniforms.sky_rot so this pass’s sky taps turn with the main one. One float4 per row; w is unused.

§sun_dir: [f32; 4]

[x, y, z, _]: unit direction toward the scene’s sun, the first directional light. Zero when the world declares none.

§sun_color: [f32; 4]

[r, g, b, _]: that light’s colour times its intensity, which the water glint scales by. Zero when the world declares no directional light, and the shader draws no glint.

Trait Implementations§

Source§

impl Clone for TransparentView

Source§

fn clone(&self) -> TransparentView

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for TransparentView

Source§

impl NoUninit for TransparentView

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.