Struct three_d::renderer::object::InstancedModel [−][src]
pub struct InstancedModel<M: Material> {
pub material: M,
// some fields omitted
}
Expand description
Similar to Model, except it is possible to render many instances of the same model efficiently.
Fields
material: M
The material applied to the instanced model
Implementations
pub fn new(
context: &Context,
instances: &[ModelInstance],
cpu_mesh: &CPUMesh
) -> ThreeDResult<Self>
pub fn new(
context: &Context,
instances: &[ModelInstance],
cpu_mesh: &CPUMesh
) -> ThreeDResult<Self>
Creates a new instanced 3D model with a triangle mesh as geometry and a default ColorMaterial. The transformations are applied to each model instance before they are rendered. The model is rendered in as many instances as there are transformation matrices.
pub fn new_with_material(
context: &Context,
instances: &[ModelInstance],
cpu_mesh: &CPUMesh,
material: M
) -> ThreeDResult<Self>
Returns all instances
Create an instance for each element with the given mesh and texture transforms.
Trait Implementations
Returns the AxisAlignedBoundingBox for this geometry. Read more
Returns the local to world transformation applied to this geometry. Read more
Set the local to world transformation applied to this geometry. Read more
Render the object. Must be called in a render target render function, for example in the callback function of Screen::write. You can use Lights::default() if you know the object does not require lights to be rendered. Read more
Returns whether or not this object should be considered transparent. Read more
fn render_with_material(
&self,
material: &dyn Material,
camera: &Camera,
lights: &Lights
) -> ThreeDResult<()>
fn render_with_material(
&self,
material: &dyn Material,
camera: &Camera,
lights: &Lights
) -> ThreeDResult<()>
Render the object with the given material. Must be called in a render target render function, for example in the callback function of Screen::write. You can use Lights::default() if you know the material does not require lights. Read more
fn render_forward(
&self,
material: &dyn Material,
camera: &Camera,
lights: &Lights
) -> ThreeDResult<()>
fn render_forward(
&self,
material: &dyn Material,
camera: &Camera,
lights: &Lights
) -> ThreeDResult<()>
use render_with_material instead
Render the object with the given material. Must be called in a render target render function, for example in the callback function of Screen::write. You can use Lights::default() if you know the material does not require lights. Read more
fn render_deferred(
&self,
material: &DeferredPhysicalMaterial,
camera: &Camera,
viewport: Viewport
) -> ThreeDResult<()>
fn render_deferred(
&self,
material: &DeferredPhysicalMaterial,
camera: &Camera,
viewport: Viewport
) -> ThreeDResult<()>
Render the geometry and surface material parameters of the object. Should usually not be called directly but used in DeferredPipeline::geometry_pass. Read more
Auto Trait Implementations
impl<M> !RefUnwindSafe for InstancedModel<M>
impl<M> !Send for InstancedModel<M>
impl<M> !Sync for InstancedModel<M>
impl<M> Unpin for InstancedModel<M> where
M: Unpin,
impl<M> !UnwindSafe for InstancedModel<M>
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more