pub enum MaterialInput<U, I> {
Uniform(U),
ImageTexture(I),
}
Expand description
An input to a material property.
This can either be some uniform value that will get used across all vertices / fragments in your shader, or a texture.
Variants§
Uniform(U)
Some value that is uniform across all vertices / fragments in your mesh.
ImageTexture(I)
The name of the texture image (excluding the full path) from an image texture node in Blender’s material editor.
So a texture stored at /Users/me/hello-world.png becomes MaterialInput::Texture(“hello-world.png”.to_string())
This means that it is important to have different texture names across all unique textures in your application.
§Note
This is different from the other built in texture nodes, such as brick texture and sky texture. We do not currently support these. If these would be useful for you, open an issue!
§Examples
// Metalness can be read from the green channel of metal.jpg
use blender_mesh::{MaterialInput, Channel};
let metalness: MaterialInput<f32, (String, Channel)> =
MaterialInput::ImageTexture((String::from("metal.jpg"), Channel::Green));
Trait Implementations§
Source§impl<U: Clone, I: Clone> Clone for MaterialInput<U, I>
impl<U: Clone, I: Clone> Clone for MaterialInput<U, I>
Source§fn clone(&self) -> MaterialInput<U, I>
fn clone(&self) -> MaterialInput<U, I>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<U, I> Default for MaterialInput<U, I>where
U: Default,
impl<U, I> Default for MaterialInput<U, I>where
U: Default,
Source§impl<'de, U, I> Deserialize<'de> for MaterialInput<U, I>where
U: Deserialize<'de>,
I: Deserialize<'de>,
impl<'de, U, I> Deserialize<'de> for MaterialInput<U, I>where
U: Deserialize<'de>,
I: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
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<U, I> Serialize for MaterialInput<U, I>
impl<U, I> Serialize for MaterialInput<U, I>
impl<U, I> StructuralPartialEq for MaterialInput<U, I>
Auto Trait Implementations§
impl<U, I> Freeze for MaterialInput<U, I>
impl<U, I> RefUnwindSafe for MaterialInput<U, I>where
U: RefUnwindSafe,
I: RefUnwindSafe,
impl<U, I> Send for MaterialInput<U, I>
impl<U, I> Sync for MaterialInput<U, I>
impl<U, I> Unpin for MaterialInput<U, I>
impl<U, I> UnwindSafe for MaterialInput<U, I>where
U: UnwindSafe,
I: UnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.