Skip to main content

IblBaker

Struct IblBaker 

Source
pub struct IblBaker { /* private fields */ }
Expand description

One-time IBL bake service. Registered as a shared resource at bootstrap and driven by the ibl_bake DataSystem, which calls ensure_baked every frame; the bake itself runs only on the first call.

Implementations§

Source§

impl IblBaker

Source

pub fn new() -> Self

Creates an unbaked baker. The bake happens lazily on the first ensure_baked once a device is available.

Source

pub fn is_baked(&self) -> bool

Whether the one-time bake has already run.

Source

pub fn wait_for_environment(&self) -> bool

Records one tick spent waiting for the scene’s environment asset to load. Returns true while the caller should keep waiting, and false once the budget is spent and it must bake the procedural sky instead.

Source

pub fn ensure_baked( &self, device: &dyn GraphicsDevice, pipeline_system: &dyn PipelineSystem, sun_direction: Vec3, env_source: Option<&CpuTexture>, )

Bakes the IBL resources on the first call; a no-op afterwards. Idempotent and safe to call every frame.

sun_direction points toward the sun in world space — the scene’s directional light, so the procedural sky’s sun disk agrees with the light that casts the shadows. A zero/degenerate vector falls back to [DEFAULT_SUN_DIRECTION]. The bake is one-time, so this captures the light as it stands on the first tick.

env_source is an authored equirectangular environment map (see EnvironmentMap); None bakes the procedural sky instead. Both fill the same env cube, so the rest of the chain is unaffected.

Source

pub fn bindings(&self) -> Option<IblGpuBindings>

Returns the group-3 IBL bindings once baked, else None (lit lanes skip the IBL term until it is ready).

Trait Implementations§

Source§

impl Default for IblBaker

Source§

fn default() -> IblBaker

Returns the “default value” for a type. Read more

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
§

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

§

fn on_start(&mut self, ctx: &mut dyn AppContext)

Called once after the backend is up but before the first update. Apps install their theme / fonts here.
§

fn on_exit(&mut self)

Called once when the window is closing. Persist state here.
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to the inner value as &dyn Any.
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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.