#[non_exhaustive]pub struct SceneRenderItem {Show 14 fields
pub mesh_id: MeshId,
pub model: [[f32; 4]; 4],
pub settings: ItemSettings,
pub show_normals: bool,
pub material: Material,
pub active_attribute: Option<AttributeRef>,
pub scalar_range: Option<(f32, f32)>,
pub colourmap_id: Option<ColourmapId>,
pub nan_colour: Option<[f32; 4]>,
pub warp_attribute: Option<String>,
pub warp_scale: f32,
pub skin_instance: Option<u32>,
pub receives_decals: bool,
pub lic: Option<LicOverlay>,
}Expand description
Per-object render data for one frame.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.mesh_id: MeshIdMeshId of the uploaded GPU mesh for this object.
model: [[f32; 4]; 4]World-space model matrix (Translation * Rotation * Scale).
settings: ItemSettingsPer-item render settings (visibility, appearance, pick identity, selection state).
show_normals: boolWhether to render per-vertex normal visualization lines for this object.
material: MaterialPer-object material (colour, shading coefficients, texture).
active_attribute: Option<AttributeRef>Named scalar attribute to colour by. None = use material base colour.
scalar_range: Option<(f32, f32)>Explicit scalar range (min, max). None = use auto-range computed at upload time.
colourmap_id: Option<ColourmapId>Colourmap to use for scalar colouring. Ignored when active_attribute is None.
nan_colour: Option<[f32; 4]>RGBA colour for NaN scalar values. None = discard (fully transparent).
warp_attribute: Option<String>Named vector attribute (from AttributeData::VertexVector) used to displace
vertex positions in the vertex shader. None = no warp. See also warp_scale.
The attribute must be uploaded as part of the mesh’s MeshData::attributes with
kind AttributeData::VertexVector. The vertex shader applies:
local_pos += warp_scale * warp_buffer[vertex_index] before the model transform.
warp_scale: f32Scale factor applied to the warp vector. Default: 1.0.
skin_instance: Option<u32>Which skinning instance palette to use when mesh_id has been marked
skinnable via crate::ViewportGpuResources::set_skin_weights.
None: this item is treated as static even if the mesh has skinning data attached. The standard (non-skinned) pipeline is used.Some(instance_id): the renderer routes this item through the skinned pipeline variant and binds the joint palette uploaded viaset_skin_palette(mesh_id, instance_id, ...). If no palette has been uploaded for this(mesh_id, instance_id), the item falls back to the static pipeline for this frame.
Allows multiple SceneRenderItems that share a bind-pose mesh to each
pose independently (crowd / instanced characters).
receives_decals: boolWhether this surface receives projected decals. Default: true.
lic: Option<LicOverlay>LIC flow overlay for this surface. None disables LIC for this item.
The mesh must have a VertexVector attribute matching
LicOverlay::vector_attribute.
Trait Implementations§
Source§impl Clone for SceneRenderItem
impl Clone for SceneRenderItem
Source§fn clone(&self) -> SceneRenderItem
fn clone(&self) -> SceneRenderItem
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SceneRenderItem
impl RefUnwindSafe for SceneRenderItem
impl Send for SceneRenderItem
impl Sync for SceneRenderItem
impl Unpin for SceneRenderItem
impl UnsafeUnpin for SceneRenderItem
impl UnwindSafe for SceneRenderItem
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
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>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn 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>, which 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.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.