Astra Unity 2.6.6
Astra Unity Plugin
Astra.Asset.MeshItem Class Reference

MeshItem is an element item that wraps SkinnedMeshRenderers, MeshFilters and MeshRenderers. It eases the tracking of material assignments to submeshes with an additional string key. It provides utilities that exposes SMR vert / bone weighting information. It also provides a method to transfer vert weights from one RigItem to another. MeshItems serialize into a protocol buffer and are a primary building block for all ComoundItems. More...

Inheritance diagram for Astra.Asset.MeshItem:

Classes

struct  MaterialFeatures
 
class  SerializableDictionarySMaterialFeatures
 
class  TupletsSMaterialFeatures
 

Public Member Functions

bool SnapshotTriangles ()
 Stores a pristine copy of the original source triangles (used for culling usually)
 
bool RestoreTriangles ()
 Sets the triangles to the last snapshot taken
 
bool HasSnapshotTriangles ()
 Whether a snapshot has been stored
 
void DestroySnapshotTriangles ()
 Remove the last snapshot taken
 
Mesh GetMeshComponent ()
 Retrieve the current Unity mesh
 
Material[] GetMaterials ()
 Retrieve all the materials attached to this mesh
 
Material GetMaterialAt (int _index)
 Retrieve the material at the specified index More...
 
ApiJobNoResult SyncDecals (int parentJobId=Job.kNoParentJobId)
 Reapply all decals to this mesh without waiting for next frame. Calling this yourself is unnecessary as Astra manages it for you, this is only necessary if you manually manipulate the decals or want to immediately schedule the process. Internally this schedules sub jobs that all wait for completion states. This call is relatively expensive and you should avoid calling it unless absolutely necessary such as needing to read or wait to show the final computed values of the decal system. More...
 
bool HasMorph (string morphableGUID)
 Tells us if this mesh item already has a morph in it's smr More...
 
int GetMorphBlendshapeIdx (string morphableGUID)
 Get the index of the blendshape for the given Morphable More...
 
void MarkBoundsDirty ()
 Flag that the bounds need to be recalculated on next frame, this is useful if you manually modify the mesh yourself outside of Astra. Failure to set this on manual changes of the mesh may make the avatar height calculation incorrect. This call will trigger a semi-expensive sync of the mesh bounds, avoid it's use if you do not need it.
 
void MarkDecalsDirty ()
 Flag that the decals need to be recomputed and applied to the mesh's material next frame, this is useful if you manually modify the decal records yourself outside of Astra. Failure to set this on manual changes will mean your decal on the mesh will not be accurate unless you modified the decal slot directly.
 
void RecalculateBoundsNextFrame (bool approximate=false, int parentJobId=Job.kNoParentJobId)
 Triggers the mesh to recalculate its mesh at the end of the next frame More...
 
void RecalculateBounds (bool approximate=false)
 Recalculate the bounding box for a mesh More...
 
Bounds GetCurrentBounds (SkinnedMeshRenderer smr, bool approximate=false, bool zeroBlendshapes=false, bool fast=true)
 Get the current bounds for the given mesh renderer More...
 
void RestoreMaterials ()
 Puts the original materials back into the mesh, effectively wiping out decal and variation data until the next sync
 
void StoreMaterials (bool refresh=false)
 Clones the existing materials into a serialized dictionary keyed on submesh id
 
void SyncMaterialVariations ()
 Applies material variations into the primary material keeping a copy of the original. It is unnecessary to call this yourself as Astra will manage it for you. You only need to call this if you directly manipulate MaterialVariationItems outside of Astra The result of this call is that your material will have the variation effects (such as color or textures) applied to it.
 
void ReferenceItems (bool force=false)
 
void SetReferencedItems (bool referenced)
 Used to override the internal check for ReferenceItems and DereferenceItems This is ONLY useful if you're procedurally creating these assets yourself This will set the internal cache flag for reference counting w/o changing references More...
 
void DereferenceItems ()
 
Color? GetColor (int subMaterialSlot, int materialSlot)
 Returns a nullable color for the material inside the submaterial slot A color may be null if there is no current tracked value and you must account for this A null is an acceptable color, it means DO NOT OVERRIDE the material's color (think Color(0,0,0,0)) More...
 
bool ApplyColor (Color color, int subMaterialSlot=0, int materialSlot=0)
 Sets the color tint for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified More...
 
bool ClearColor (int subMaterialSlot=0, int materialSlot=0)
 Removes any color tint from the material More...
 
bool ApplyEmission (Color color, int subMaterialSlot=0, int materialSlot=0)
 Sets the emission for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified More...
 
Color? GetEmission (int subMaterialSlot=0, int materialSlot=0)
 Retrieves the materials emission defined by the slots, may return null if there is none More...
 
bool ClearEmission (int subMaterialSlot=0, int materialSlot=0)
 Removes any color tint from the material's emission slots More...
 
bool ApplyMetal (float metalness, int subMaterialSlot=0, int materialSlot=0)
 Sets the metal for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified More...
 
bool ClearMetal (int subMaterialSlot=0, int materialSlot=0)
 Removes any metal override for the mat More...
 
float? GetMetal (int subMaterialSlot=0, int materialSlot=0)
 Retrieves the metalness value for the sub material More...
 
bool ApplyGloss (float glossiness, int subMaterialSlot=0, int materialSlot=0)
 Sets the gloss for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified More...
 
bool ClearGloss (int subMaterialSlot=0, int materialSlot=0)
 Removes any gloss override for the mat More...
 
float? GetGloss (int subMaterialSlot=0, int materialSlot=0)
 Retrieves the glossiness value (1-rougness) for the sub material More...
 
bool CopyMaterialIntoColorData (int subMaterialSlot=-1, int materialSlot=-1)
 Do not use. Necessary to be defined due to the IColorInterface More...
 
List< List< Color > > GetColorPaletteOptions (int subMaterialSlot)
 Get the color options for what can go into the given sub material slot More...
 
int GetColorOptionCount (int subMaterialSlot)
 Get the number of color options for the given sub material slot More...
 
int GetMaterialCount ()
 Retrieves the number of materials assigned to this mesh More...
 
Dictionary< string, MorphableItemGetAvatarsMorphableItems ()
 Get Dictionary of MorphableItem on avatar More...
 
- Public Member Functions inherited from Astra.Asset.ItemBase
virtual CompoundItem FindParentCompound ()
 Find the parent CompoundItem which this Item is attached to, if it exists, otherwise null
 
virtual AvatarItem FindAvatarItem ()
 Returns the AvatarItem this item is attached to (if found, note may return null)
 
virtual RigItem FindRigItem ()
 Finds the current RigItem associated on this Avatar Hierarchy More...
 

Static Public Member Functions

static void ToggleSMRUpdateWhenOffscreen (bool state)
 Whether the skinned mesh renderer should update when not visible More...
 
static void AddToShaderSubMaterialSlotMap (string shaderName, Dictionary< string, int > shaderSubMaterialSlotMap)
 Allows a developer to extend the color lookup (tints) using their own custom shader. More...
 
static void AddToShaderSubMaterialSlotMap (string shaderName, Dictionary< int, string > shaderSubMaterialSlotMap)
 Allows a developer to extend the color lookup (tints) using their own custom shader. This is deprecated please switch to MeshItem.AddToShaderSubMaterialSlotMap(string, Dictionary<string, int>) More...
 
static ? int GetSubMaterialColorIntFromProperty (Material material, string property)
 Get the current tint slot from the given material's property More...
 
static Dictionary< string, int > GetSubMaterialColorProperties (string shader)
 Get the list of keys and values from the materials on this mesh More...
 
static Dictionary< string, int > GetSubMaterialColorProperties (Material mat)
 Get the list of keys and values from the given material More...
 
static string GetSubMaterialColorProperty (string shader, int subMaterialSlot)
 Get the specific color property given from the materials on this MeshItem More...
 
static string GetSubMaterialColorProperty (Material material, int subMaterialSlot)
 Get the specific color property given from the given material, makes use of shaderSubMaterialSlotMap, guesses otherwise More...
 
static ? Color GetSubMaterialColor (Material material, int subMaterialSlot)
 Get the color from the given submaterial More...
 

Public Attributes

SkinnedMeshRenderer SMR
 
MeshFilter MF
 
MeshRenderer MR
 
List< string > ProjectionMapGuids
 
string RigGuid
 
Mesh UnityMesh
 Unity Mesh that this item wraps
 
System.UInt32 VerticesHash
 
System.UInt32 NormalsHash
 
System.UInt32 UVsHash
 
System.UInt32 TangentsHash
 
System.UInt32 ColorsHash
 
System.UInt32 SkinWeightsHash
 
System.UInt32 GeoHash
 
System.UInt32 PartialHash
 
System.UInt32 CompleteHash
 
bool isModified = false
 This will be true if we have cloned this due to morphables with rig targets
 

Protected Member Functions

void PostInit ()
 
void ResetDecalMaterialSlot (Material submeshMaterial, string slot, Texture texNew)
 
void ReuseDecalMaterialSlot (Material submeshMaterial, string slot, Texture texNew)
 
Color? GetColorFromPropertyAndSlot (string prefix, int subMaterialSlot=0, int materialSlot=0)
 
float? GetFloatFromPropertyAndSlot (string prefix, int subMaterialSlot=0, int materialSlot=0)
 
bool SetColorFromPropertyAndSlot (Color color, string prefix, int subMaterialSlot=0, int materialSlot=0)
 
bool SetFloatFromPropertyAndSlot (float value, string prefix, int subMaterialSlot=0, int materialSlot=0)
 
- Protected Member Functions inherited from Astra.Asset.ItemBase
void TrackId (string id)
 
void UntrackIds ()
 

Protected Attributes

RigItem _rigItem = null
 
List< BoneItem_bones = new List<BoneItem>()
 
List< int[]> _originalTriangles = null
 
SerializableDictionarySB _submeshToDecalActive = new SerializableDictionarySB()
 
SerializableDictionarySMat _originalMaterials = new SerializableDictionarySMat()
 
int _unityInstanceId = 0
 We need to use these so we know if we're a copy, if we are we'll generate a new set of references
 
bool _referencedItems = false
 
bool _isBeingDestroyed = false
 
- Protected Attributes inherited from Astra.Asset.ItemBase
List< string > _trackingIds = null
 

Static Protected Attributes

static List< string > _knownTransferableDecalShaderNames
 
static List< string > _proceduralTextureProperties
 

Properties

SerializableDictionarySMat OriginalMaterials [get]
 This tuplet contains a copy of the original materials unless baked out Key is the submesh id and value is a unity material
 
- Properties inherited from Astra.Asset.ItemBase
virtual McsSdk20.Primitives.AstraPrimitiveType PrimitiveType [get]
 Retrieve the primitive type for this item
 
virtual McsSdk20.Primitives.SchematicType SchematicType [get]
 Retrieve the schematic type for this item
 
string AstraGuid [getset]
 Guid for this item to identify it in the Astra Service
 
string AstraName [getset]
 Display name for this item
 
string AstraInstanceId [getset]
 Guid representing an instance of this item
 
- Properties inherited from Astra.Asset.IAstraBaseInterface
string AstraGuid [getset]
 
string AstraName [getset]
 
string AstraInstanceId [getset]
 

Detailed Description

MeshItem is an element item that wraps SkinnedMeshRenderers, MeshFilters and MeshRenderers. It eases the tracking of material assignments to submeshes with an additional string key. It provides utilities that exposes SMR vert / bone weighting information. It also provides a method to transfer vert weights from one RigItem to another. MeshItems serialize into a protocol buffer and are a primary building block for all ComoundItems.

Member Function Documentation

◆ AddToShaderSubMaterialSlotMap() [1/2]

static void Astra.Asset.MeshItem.AddToShaderSubMaterialSlotMap ( string  shaderName,
Dictionary< int, string >  shaderSubMaterialSlotMap 
)
inlinestatic

Allows a developer to extend the color lookup (tints) using their own custom shader. This is deprecated please switch to MeshItem.AddToShaderSubMaterialSlotMap(string, Dictionary<string, int>)

Parameters
shaderNameThis is your shader name including the forward slahes eg: Astra/Skin
shaderSubMaterialSlotMapA map that specifies the color slot property of your shader to a tint slots 0, 1, or 2 eg: 0 => "_Color0"

◆ AddToShaderSubMaterialSlotMap() [2/2]

static void Astra.Asset.MeshItem.AddToShaderSubMaterialSlotMap ( string  shaderName,
Dictionary< string, int >  shaderSubMaterialSlotMap 
)
inlinestatic

Allows a developer to extend the color lookup (tints) using their own custom shader.

Parameters
shaderNameThis is your shader name including the forward slahes eg: Astra/Skin
shaderSubMaterialSlotMapA map that specifies the color slot property of your shader to a tint slots 0, 1, or 2 eg: "_Color0" => 0

◆ ApplyColor()

bool Astra.Asset.MeshItem.ApplyColor ( Color  color,
int  submaterialSlot = 0,
int  materialSlot = 0 
)
inline

Sets the color tint for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified

Parameters
colorThe color you want to tint, blends on alpha channel
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
True if the color was applied, false if it's unable (such as an unsupported shader or a shader that can't tint that slot)

Implements Astra.Asset.IColorInterface.

◆ ApplyEmission()

bool Astra.Asset.MeshItem.ApplyEmission ( Color  color,
int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Sets the emission for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified

Parameters
colorThe color you want to tint, blends on alpha channel
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
True on success false otherwise

◆ ApplyGloss()

bool Astra.Asset.MeshItem.ApplyGloss ( float  glossiness,
int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Sets the gloss for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified

Parameters
metalA value from -1 to 1, where anything below 0 is "unapplied" and 0 means non metal and 1 means 100% metal
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
True on success false otherwise

◆ ApplyMetal()

bool Astra.Asset.MeshItem.ApplyMetal ( float  metalness,
int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Sets the metal for a material Defaults to the first slot of the submaterial Defaults to the first slot of the material if not specified

Parameters
metalA value from -1 to 1, where anything below 0 is "unapplied" and 0 means non metal and 1 means 100% metal
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0

◆ ClearColor()

bool Astra.Asset.MeshItem.ClearColor ( int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Removes any color tint from the material

Parameters
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
True if the color was cleared, false if it's unable (such as an unsupported shader or a shader that can't tint that slot)

Implements Astra.Asset.IColorInterface.

◆ ClearEmission()

bool Astra.Asset.MeshItem.ClearEmission ( int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Removes any color tint from the material's emission slots

Parameters
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
True on success false otherwise

◆ ClearGloss()

bool Astra.Asset.MeshItem.ClearGloss ( int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Removes any gloss override for the mat

Parameters
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
True on success false otherwise

◆ ClearMetal()

bool Astra.Asset.MeshItem.ClearMetal ( int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Removes any metal override for the mat

Parameters
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
True on success false otherwise

◆ CopyMaterialIntoColorData()

bool Astra.Asset.MeshItem.CopyMaterialIntoColorData ( int  subMaterialSlot = -1,
int  materialSlot = -1 
)
inline

Do not use. Necessary to be defined due to the IColorInterface

Implements Astra.Asset.IColorInterface.

◆ GetAvatarsMorphableItems()

Dictionary< string, MorphableItem > Astra.Asset.MeshItem.GetAvatarsMorphableItems ( )
inline

Get Dictionary of MorphableItem on avatar

Returns
Dictionary of morphableItem components with morphableItem keys

◆ GetColor()

Color? Astra.Asset.MeshItem.GetColor ( int  submaterialSlot,
int  materialSlot 
)
inline

Returns a nullable color for the material inside the submaterial slot A color may be null if there is no current tracked value and you must account for this A null is an acceptable color, it means DO NOT OVERRIDE the material's color (think Color(0,0,0,0))

Parameters
submaterialSlotShaders support multiple color tints, this is the tint slot of the material
materialSlotThis represents the material slot, or the submesh slot
Returns
A nullable color, if null it means we dopn't know how to find the tint color of the material (or there isn't one for the shader)

Implements Astra.Asset.IColorInterface.

◆ GetColorOptionCount()

int Astra.Asset.MeshItem.GetColorOptionCount ( int  subMaterialSlot)
inline

Get the number of color options for the given sub material slot

Parameters
subMaterialSlotWhich sub material slot (0->3)

Implements Astra.Asset.IColorInterface.

◆ GetColorPaletteOptions()

List< List< Color > > Astra.Asset.MeshItem.GetColorPaletteOptions ( int  subMaterialSlot)
inline

Get the color options for what can go into the given sub material slot

Parameters
subMaterialSlotWhich sub material slot (0->3)

Implements Astra.Asset.IColorInterface.

◆ GetCurrentBounds()

Bounds Astra.Asset.MeshItem.GetCurrentBounds ( SkinnedMeshRenderer  smr,
bool  approximate = false,
bool  zeroBlendshapes = false,
bool  fast = true 
)
inline

Get the current bounds for the given mesh renderer

Parameters
smrSkinned mesh renderer to check against
approximateIf false, just gets an approximate bounds for a cheaper call
zeroBlendshapesWhether the belendshape weights should be reset
Returns

◆ GetEmission()

Color? Astra.Asset.MeshItem.GetEmission ( int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Retrieves the materials emission defined by the slots, may return null if there is none

Parameters
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
The emission coor at the slot if supported

◆ GetGloss()

float? Astra.Asset.MeshItem.GetGloss ( int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Retrieves the glossiness value (1-rougness) for the sub material

Parameters
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
The value or null if not found

◆ GetMaterialAt()

Material Astra.Asset.MeshItem.GetMaterialAt ( int  _index)
inline

Retrieve the material at the specified index

Parameters
_indexIndex of material to retrieve

◆ GetMaterialCount()

int Astra.Asset.MeshItem.GetMaterialCount ( )
inline

Retrieves the number of materials assigned to this mesh

Implements Astra.Asset.IColorInterface.

◆ GetMetal()

float? Astra.Asset.MeshItem.GetMetal ( int  subMaterialSlot = 0,
int  materialSlot = 0 
)
inline

Retrieves the metalness value for the sub material

Parameters
subMaterialSlotWhich sub material slot (0->3)
materialSlotWhich submesh material slot, defaults to 0
Returns
The value or null if not found

◆ GetMorphBlendshapeIdx()

int Astra.Asset.MeshItem.GetMorphBlendshapeIdx ( string  morphableGUID)
inline

Get the index of the blendshape for the given Morphable

Parameters
morphableGUIDMorphable Guid to find
Returns

◆ GetSubMaterialColor()

static ? Color Astra.Asset.MeshItem.GetSubMaterialColor ( Material  material,
int  subMaterialSlot 
)
inlinestatic

Get the color from the given submaterial

Parameters
materialMaterial to get the result from
subMaterialSlotIndex of the sub material
Returns
The color if found, null if not applicable for the material/shader

◆ GetSubMaterialColorIntFromProperty()

static ? int Astra.Asset.MeshItem.GetSubMaterialColorIntFromProperty ( Material  material,
string  property 
)
inlinestatic

Get the current tint slot from the given material's property

Parameters
materialMaterial to use
propertyProperty to retrieve the value from

◆ GetSubMaterialColorProperties() [1/2]

static Dictionary< string, int > Astra.Asset.MeshItem.GetSubMaterialColorProperties ( Material  mat)
inlinestatic

Get the list of keys and values from the given material

Parameters
matMaterial to get values out of

◆ GetSubMaterialColorProperties() [2/2]

static Dictionary< string, int > Astra.Asset.MeshItem.GetSubMaterialColorProperties ( string  shader)
inlinestatic

Get the list of keys and values from the materials on this mesh

Parameters
shaderName of the shader to retrieve values from
Returns

◆ GetSubMaterialColorProperty() [1/2]

static string Astra.Asset.MeshItem.GetSubMaterialColorProperty ( Material  material,
int  subMaterialSlot 
)
inlinestatic

Get the specific color property given from the given material, makes use of shaderSubMaterialSlotMap, guesses otherwise

Parameters
materialMaterial to get the result from
subMaterialSlotIndex of the sub material
Returns
The material property name if found such as "_Color0", otherwise null

◆ GetSubMaterialColorProperty() [2/2]

static string Astra.Asset.MeshItem.GetSubMaterialColorProperty ( string  shader,
int  subMaterialSlot 
)
inlinestatic

Get the specific color property given from the materials on this MeshItem

Parameters
shaderShader to get the property from
subMaterialSlotIndex of the sub material

◆ HasMorph()

bool Astra.Asset.MeshItem.HasMorph ( string  morphableGUID)
inline

Tells us if this mesh item already has a morph in it's smr

Parameters
morphableGUIDMorphable Guid to check against

◆ RecalculateBounds()

void Astra.Asset.MeshItem.RecalculateBounds ( bool  approximate = false)
inline

Recalculate the bounding box for a mesh

Parameters
approximateIf true the bounding box will be re-created but may not be 100% accurate

◆ RecalculateBoundsNextFrame()

void Astra.Asset.MeshItem.RecalculateBoundsNextFrame ( bool  approximate = false,
int  parentJobId = Job.kNoParentJobId 
)
inline

Triggers the mesh to recalculate its mesh at the end of the next frame

Parameters
approximateCurrently unused
parentJobIdThe id of the parent if applicable. Optional.

◆ SetReferencedItems()

void Astra.Asset.MeshItem.SetReferencedItems ( bool  referenced)
inline

Used to override the internal check for ReferenceItems and DereferenceItems This is ONLY useful if you're procedurally creating these assets yourself This will set the internal cache flag for reference counting w/o changing references

Parameters
referenced

◆ SyncDecals()

ApiJobNoResult Astra.Asset.MeshItem.SyncDecals ( int  parentJobId = Job.kNoParentJobId)
inline

Reapply all decals to this mesh without waiting for next frame. Calling this yourself is unnecessary as Astra manages it for you, this is only necessary if you manually manipulate the decals or want to immediately schedule the process. Internally this schedules sub jobs that all wait for completion states. This call is relatively expensive and you should avoid calling it unless absolutely necessary such as needing to read or wait to show the final computed values of the decal system.

Parameters
parentJobIdId of the parent job, if it applies. Optional.
Returns
A job you can wait for it's completion on

◆ ToggleSMRUpdateWhenOffscreen()

static void Astra.Asset.MeshItem.ToggleSMRUpdateWhenOffscreen ( bool  state)
inlinestatic

Whether the skinned mesh renderer should update when not visible

Parameters
stateTrue if it should update offscreen

Member Data Documentation

◆ _knownTransferableDecalShaderNames

List<string> Astra.Asset.MeshItem._knownTransferableDecalShaderNames
staticprotected
Initial value:
= new List<string>(){
"Standard",
"Astra/EasyStandard",
"Astra/EasyStandardCullOff",
"Astra/EasyStandardCullFront",
}

◆ _proceduralTextureProperties

List<string> Astra.Asset.MeshItem._proceduralTextureProperties
staticprotected
Initial value:
= new List<string>(){
"_AlphaTex",
"_DecalTex",
"_DecalNormal",
"_DecalGlossMap",
}

The documentation for this class was generated from the following file: