#[repr(u16)]pub enum MaterialType {
Show 51 variants
BowWave = 22,
NonRenderable = 26,
TextureComboVertexWind = 29,
TextureCombo = 30,
DecalWaterfall = 31,
StandardSimple = 32,
CampaignTrees = 34,
PointLight = 38,
StaticPointLight = 45,
DebugGeometry = 46,
CustomTerrain = 49,
WeightedCloth = 58,
Cloth = 60,
Collision = 61,
CollisionShape = 62,
TiledDirtmap = 63,
ShipAmbientmap = 64,
Weighted = 65,
RsTerrain = 66,
ProjectedDecal = 67,
DefaultMaterial = 68,
Grass = 69,
WeightedSkin = 70,
Decal = 71,
DecalDirtmap = 72,
Dirtmap = 73,
Tree = 74,
TreeLeaf = 75,
WeightedDecal = 77,
WeightedDecalDirtmap = 78,
WeightedDirtmap = 79,
WeightedSkinDecal = 80,
WeightedSkinDecalDirtmap = 81,
WeightedSkinDirtmap = 82,
Water = 83,
Unlit = 84,
WeightedUnlit = 85,
TerrainBlend = 86,
ProjectedDecalV2 = 87,
Ignore = 88,
TreeBillboardMaterial = 89,
RsRiver = 90,
WaterDisplaceVolume = 91,
Rope = 93,
CampaignVegetation = 94,
ProjectedDecalV3 = 95,
WeightedTextureBlend = 96,
ProjectedDecalV4 = 97,
GlobalTerrain = 98,
DecalOverlay = 99,
AlphaBlend = 100,
}Expand description
Material type identifier determining rendering behavior and data structure.
Each material type corresponds to a specific shader and vertex format combination. The numeric value is stored in the RigidModel file format as a u16.
§Categories
- 22-46: Effects and special materials (BowWave, PointLight, DebugGeometry)
- 49-64: Terrain and campaign materials
- 65-82: Weighted (skeletal) materials and variants
- 83-100: Water, unlit, terrain blends, projected decals
Variants§
BowWave = 22
Boat bow wave effect (water displacement).
NonRenderable = 26
Non-rendered material (collision, occlusion, etc.).
TextureComboVertexWind = 29
Texture combo with vertex-based wind animation.
TextureCombo = 30
Combined texture material.
DecalWaterfall = 31
Waterfall decal effect.
StandardSimple = 32
Simplified standard material.
CampaignTrees = 34
Campaign map tree rendering.
PointLight = 38
Dynamic point light source.
StaticPointLight = 45
Static baked point light.
DebugGeometry = 46
Debug visualization geometry (wireframe, normals, etc.).
CustomTerrain = 49
Custom terrain material variant.
WeightedCloth = 58
Cloth material with skeletal weights and physics.
Cloth = 60
Cloth material with physics simulation.
Collision = 61
Collision mesh (invisible, physics only).
CollisionShape = 62
Collision shape variant.
TiledDirtmap = 63
Tiled dirt texture mapping.
ShipAmbientmap = 64
Ship ambient mapping (possibly incorrect identification).
Weighted = 65
Generic weighted material (skeletal animation).
RsTerrain = 66
Minimal terrain material (Rome 2 style).
ProjectedDecal = 67
Projected decal (first version).
DefaultMaterial = 68
Default full-featured material (most common).
Grass = 69
Grass and vegetation material.
WeightedSkin = 70
Weighted skin material (characters with bone weights).
Decal = 71
Surface decal material.
DecalDirtmap = 72
Decal with dirt mapping.
Dirtmap = 73
Dirt map material.
Tree = 74
Tree trunk/branch material.
TreeLeaf = 75
Tree leaf material (alpha transparency).
WeightedDecal = 77
Weighted decal (animated decals on characters).
WeightedDecalDirtmap = 78
Weighted decal with dirt mapping.
WeightedDirtmap = 79
Weighted dirt mapping.
WeightedSkinDecal = 80
Weighted skin with decal overlay.
WeightedSkinDecalDirtmap = 81
Weighted skin with decal and dirt mapping.
WeightedSkinDirtmap = 82
Weighted skin with dirt mapping.
Water = 83
Water surface material.
Unlit = 84
Unlit material (no lighting calculations, full bright).
WeightedUnlit = 85
Weighted unlit material.
TerrainBlend = 86
Terrain texture blending material.
ProjectedDecalV2 = 87
Projected decal version 2.
Ignore = 88
Ignored/placeholder material.
TreeBillboardMaterial = 89
Billboard-style tree material (always faces camera).
RsRiver = 90
River rendering material (Rome 2 style).
WaterDisplaceVolume = 91
Water displacement volume (physics interaction).
Rope = 93
Rope rendering material.
CampaignVegetation = 94
Campaign map vegetation.
ProjectedDecalV3 = 95
Projected decal version 3.
WeightedTextureBlend = 96
Weighted texture blending.
ProjectedDecalV4 = 97
Projected decal version 4 (latest).
GlobalTerrain = 98
Global terrain material.
DecalOverlay = 99
Overlay decal material.
AlphaBlend = 100
Alpha-blended material.
Trait Implementations§
Source§impl Clone for MaterialType
impl Clone for MaterialType
Source§fn clone(&self) -> MaterialType
fn clone(&self) -> MaterialType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MaterialType
impl Debug for MaterialType
Source§impl Default for MaterialType
impl Default for MaterialType
Source§fn default() -> MaterialType
fn default() -> MaterialType
Source§impl<'de> Deserialize<'de> for MaterialType
impl<'de> Deserialize<'de> for MaterialType
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>,
Source§impl From<MaterialType> for u16
impl From<MaterialType> for u16
Source§fn from(value: MaterialType) -> u16
fn from(value: MaterialType) -> u16
Source§impl PartialEq for MaterialType
impl PartialEq for MaterialType
Source§impl Serialize for MaterialType
impl Serialize for MaterialType
Source§impl TryFrom<u16> for MaterialType
impl TryFrom<u16> for MaterialType
impl Copy for MaterialType
impl StructuralPartialEq for MaterialType
Auto Trait Implementations§
impl Freeze for MaterialType
impl RefUnwindSafe for MaterialType
impl Send for MaterialType
impl Sync for MaterialType
impl Unpin for MaterialType
impl UnsafeUnpin for MaterialType
impl UnwindSafe for MaterialType
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§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).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.