Skip to main content

ReflectionProbe

Struct ReflectionProbe 

Source
pub struct ReflectionProbe {
    pub position: [f32; 3],
    pub half_extents: [f32; 3],
}
Expand description

A localized reflection probe. The renderer captures the surrounding scene into a cubemap from position and uses it for the specular reflection on glossy surfaces within the influence box (position plus or minus half_extents). The box is also the parallax-correction volume, so a reflection stays anchored to the surrounding geometry as the camera moves.

Place several across a level so reflections stay accurate as a first-person camera moves between areas (a room, a courtyard, a corridor): each surface uses the probe whose box it sits deepest inside, and cross-fades into the neighbouring box near a shared boundary so reflections don’t pop as the camera crosses between them. When a world declares no ReflectionProbe, the renderer auto-seeds a small grid of probes from the scene bounds, so existing scenes still get local reflections without authoring.

Reflections are most accurate near position; a tighter box around a distinct space (a room) parallax-corrects better than one large box. Boxes may overlap freely: a surface inside several boxes blends all of them, so reflections cross-fade smoothly as the camera moves between probes.

ReflectionProbe {
    position: [0.0, 1.7, 0.0],
    half_extents: [8.0, 4.0, 8.0],
    ..Default::default()
};

Fields§

§position: [f32; 3]

World-space capture point the cubemap is rendered from. Put it at roughly eye height in open space (not inside geometry) for the area it serves.

§half_extents: [f32; 3]

Half-size of the influence box around position, per axis. A surface inside position plus or minus half_extents may select this probe, and the box is the parallax-correction volume. Make it span the local space the probe represents (e.g. a room’s walls).

Trait Implementations§

Source§

impl Clone for ReflectionProbe

Source§

fn clone(&self) -> ReflectionProbe

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 Component for ReflectionProbe

Source§

const NAME: &'static str = "ReflectionProbe"

The registry name a world authors this component under.
Source§

fn from_baked(bytes: &[u8]) -> Result<Self, CnResult>

Reconstruct this component from a blob record, whose bytes are the serialized runtime component (cook already ran the asset -> component translation). The default rejects: runtime-only components are never stored in a blob, so only loadable types provide an implementation.
Source§

fn inject_locator(&mut self, _locator: PayloadLocator)

Called after construction to inject the payload locator from the blob def. Only meaningful for components with a compiled payload. The default implementation does nothing (correct for most components).
Source§

fn inject_name(&mut self, _id: AssetId)

Called after construction to inject the asset’s identity from the blob def. Only meaningful for components that look themselves up by id at runtime. The default implementation does nothing.
Source§

impl ComponentSlot for ReflectionProbe

Source§

const DISCRIMINANT: u8

The component type’s stable id, used as its ComponentId.
Source§

fn slot(s: &ComponentStorage) -> &Column<Self>

Borrow this type’s column out of the storage.
Source§

fn slot_mut(s: &mut ComponentStorage) -> &mut Column<Self>

Mutably borrow this type’s column out of the storage.
Source§

impl Debug for ReflectionProbe

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ReflectionProbe

Source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for ReflectionProbe

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<ReflectionProbe> for ComponentAsset

Source§

fn from(c: ReflectionProbe) -> Self

Converts to this type from the input type.
Source§

impl RuntimeComponent for ReflectionProbe

Source§

impl Serialize for ReflectionProbe

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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
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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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, <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.