pub struct IsosurfaceMaterial {
pub voxels: Rc<Texture3D>,
pub threshold: f32,
pub color: Color,
pub metallic: f32,
pub roughness: f32,
pub size: Vec3,
pub lighting_model: LightingModel,
}Expand description
A material that renders the isosurface defined by the voxel data in the IsosurfaceMaterial::voxels and the IsosurfaceMaterial::threshold. The surface is defined by all the points in the volume where the red channel of the voxel data is equal to the threshold. This material should be applied to a cube with center in origo, for example CpuMesh::cube.
Fields
voxels: Rc<Texture3D>The voxel data that defines the isosurface.
threshold: f32Threshold (in the range [0..1]) that defines the surface in the voxel data.
color: ColorBase surface color. Assumed to be in linear color space.
metallic: f32A value in the range [0..1] specifying how metallic the surface is.
roughness: f32A value in the range [0..1] specifying how rough the surface is.
size: Vec3The size of the cube that is used to render the voxel data. The texture is scaled to fill the entire cube.
lighting_model: LightingModelThe lighting model used when rendering this material
Trait Implementations
sourceimpl Clone for IsosurfaceMaterial
impl Clone for IsosurfaceMaterial
sourcefn clone(&self) -> IsosurfaceMaterial
fn clone(&self) -> IsosurfaceMaterial
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl FromCpuVoxelGrid for IsosurfaceMaterial
impl FromCpuVoxelGrid for IsosurfaceMaterial
sourcefn from_cpu_voxel_grid(
context: &Context,
cpu_voxel_grid: &CpuVoxelGrid
) -> ThreeDResult<Self>
fn from_cpu_voxel_grid(
context: &Context,
cpu_voxel_grid: &CpuVoxelGrid
) -> ThreeDResult<Self>
Creates a new material that can be used for rendering from a CpuVoxelGrid. Read more
sourceimpl Material for IsosurfaceMaterial
impl Material for IsosurfaceMaterial
sourcefn fragment_shader_source(
&self,
_use_vertex_colors: bool,
lights: &[&dyn Light]
) -> String
fn fragment_shader_source(
&self,
_use_vertex_colors: bool,
lights: &[&dyn Light]
) -> String
Returns the fragment shader source for this material. Should output the final fragment color.
sourcefn use_uniforms(
&self,
program: &Program,
camera: &Camera,
lights: &[&dyn Light]
) -> ThreeDResult<()>
fn use_uniforms(
&self,
program: &Program,
camera: &Camera,
lights: &[&dyn Light]
) -> ThreeDResult<()>
Sends the uniform data needed for this material to the fragment shader.
sourcefn render_states(&self) -> RenderStates
fn render_states(&self) -> RenderStates
Returns the render states needed to render with this material.
sourcefn is_transparent(&self) -> bool
fn is_transparent(&self) -> bool
Returns whether or not this material is transparent.
Auto Trait Implementations
impl !RefUnwindSafe for IsosurfaceMaterial
impl !Send for IsosurfaceMaterial
impl !Sync for IsosurfaceMaterial
impl Unpin for IsosurfaceMaterial
impl !UnwindSafe for IsosurfaceMaterial
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more