Search Results for

    Show / Hide Table of Contents

    Class SkinnedMesh

    Represents part of the skinned model that is made of vertices and can be rendered using custom material, transformation and skeleton bones hierarchy.

    Inheritance
    System.Object
    Object
    MeshBase
    SkinnedMesh
    Inherited Members
    MeshBase.SetBounds(BoundingBox)
    MeshBase.SetBounds(BoundingBox, BoundingSphere)
    MeshBase.GetIndexBuffer()
    MeshBase.GetVertexBuffer(Int32)
    MeshBase.Init(UInt32, UInt32, IntPtr[], IntPtr, Boolean, GPUVertexLayout[])
    MeshBase.UpdateTriangles(Int32[])
    MeshBase.UpdateTriangles(List<Int32>)
    MeshBase.UpdateTriangles(UInt16[])
    MeshBase.UpdateTriangles(List<UInt16>)
    MeshBase.DownloadIndexBuffer(Boolean)
    MeshBase.DownloadIndexBufferUShort(Boolean)
    MeshBase.DownloadData(Span<MeshBufferType>, Byte[][], GPUVertexLayout[], Boolean)
    MeshBase.ModelBase
    MeshBase.LODIndex
    MeshBase.Index
    MeshBase.TriangleCount
    MeshBase.VertexCount
    MeshBase.Box
    MeshBase.Sphere
    MeshBase.Use16BitIndexBuffer
    MeshBase.HasVertexColors
    MeshBase.MaterialSlotIndex
    MeshBase.VertexLayout
    MeshBase.MaterialSlot
    MeshBase.IndexBufferFormat
    Object.__unmanagedPtr
    Object.__internalId
    Object.Finalize()
    Object.As<T>()
    Object.NewValue(Type)
    Object.New(String)
    Object.Find<T>(Guid, Boolean)
    Object.Find(Guid, Type, Boolean)
    Object.TryFind<T>(Guid)
    Object.TryFind(Guid, Type)
    Object.Destroy(Object, Single)
    Object.DestroyNow(Object)
    Object.Destroy<T>(T, Single)
    Object.Equals(Object)
    Object.GetUnmanagedPtr(Object)
    Object.GetUnmanagedInterface(Object, Type)
    Object.FromUnmanagedPtr(IntPtr)
    Object.MapObjectID(Guid)
    Object.RemapObjectID(Guid)
    Object.GetHashCode()
    Object.ID
    Object.TypeName
    Namespace: FlaxEngine
    Assembly: FlaxEngine.CSharp.dll
    Syntax
    [Unmanaged]
    public class SkinnedMesh : MeshBase

    Constructors

    SkinnedMesh()

    Initializes a new instance of the SkinnedMesh.

    Declaration
    public SkinnedMesh()

    Properties

    ParentSkinnedModel

    Gets the parent model asset.

    Declaration
    public SkinnedModel ParentSkinnedModel { get; }
    Property Value
    SkinnedModel

    Methods

    DownloadVertexBuffer(Boolean)

    Downloads the raw vertex buffer that contains mesh vertices data. To download data from GPU set forceGpu to true and call this method from the thread other than main thread (see IsInMainThread). [Deprecated in v1.10]

    Declaration
    public SkinnedMesh.Vertex[] DownloadVertexBuffer(bool forceGpu = false)
    Parameters
    System.Boolean forceGpu

    If set to true the data will be downloaded from the GPU, otherwise it can be loaded from the drive (source asset file) or from memory (if cached). Downloading mesh from GPU requires this call to be made from the other thread than main thread. Virtual assets are always downloaded from GPU memory due to lack of dedicated storage container for the asset data.

    Returns
    SkinnedMesh.Vertex[]

    The gathered data.

    DownloadVertexBuffer0(Boolean)

    Downloads the first vertex buffer that contains mesh vertices data. To download data from GPU set forceGpu to true and call this method from the thread other than main thread (see IsInMainThread). [Deprecated in v1.10]

    Declaration
    public SkinnedMesh.Vertex0[] DownloadVertexBuffer0(bool forceGpu = false)
    Parameters
    System.Boolean forceGpu

    If set to true the data will be downloaded from the GPU, otherwise it can be loaded from the drive (source asset file) or from memory (if cached). Downloading mesh from GPU requires this call to be made from the other thread than main thread. Virtual assets are always downloaded from GPU memory due to lack of dedicated storage container for the asset data.

    Returns
    SkinnedMesh.Vertex0[]

    The gathered data.

    UpdateMesh(Float3[], Int32[], Int4[], Float4[], Float3[], Float3[], Float2[], Color32[])

    Updates the skinned model mesh vertex and index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay.

    Declaration
    public void UpdateMesh(Float3[] vertices, int[] triangles, Int4[] blendIndices, Float4[] blendWeights, Float3[] normals = null, Float3[] tangents = null, Float2[] uv = null, Color32[] colors = null)
    Parameters
    Float3[] vertices

    The mesh vertices positions. Cannot be null.

    System.Int32[] triangles

    The mesh index buffer (clockwise triangles). Uses 32-bit stride buffer. Cannot be null.

    Int4[] blendIndices

    The skinned mesh blend indices buffer. Contains indices of the skeleton bones (up to 4 bones per vertex) to use for vertex position blending. Cannot be null.

    Float4[] blendWeights

    The skinned mesh blend weights buffer (normalized). Contains weights per blend bone (up to 4 bones per vertex) of the skeleton bones to mix for vertex position blending. Cannot be null.

    Float3[] normals

    The normal vectors (per vertex).

    Float3[] tangents

    The normal vectors (per vertex). Use null to compute them from normal vectors.

    Float2[] uv

    The texture coordinates (per vertex).

    Color32[] colors

    The vertex colors (per vertex).

    UpdateMesh(Float3[], UInt16[], Int4[], Float4[], Float3[], Float3[], Float2[], Color32[])

    Updates the skinned model mesh vertex and index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay.

    Declaration
    public void UpdateMesh(Float3[] vertices, ushort[] triangles, Int4[] blendIndices, Float4[] blendWeights, Float3[] normals = null, Float3[] tangents = null, Float2[] uv = null, Color32[] colors = null)
    Parameters
    Float3[] vertices

    The mesh vertices positions. Cannot be null.

    System.UInt16[] triangles

    The mesh index buffer (clockwise triangles). Uses 16-bit stride buffer. Cannot be null.

    Int4[] blendIndices

    The skinned mesh blend indices buffer. Contains indices of the skeleton bones (up to 4 bones per vertex) to use for vertex position blending. Cannot be null.

    Float4[] blendWeights

    The skinned mesh blend weights buffer (normalized). Contains weights per blend bone (up to 4 bones per vertex) of the skeleton bones to mix for vertex position blending. Cannot be null.

    Float3[] normals

    The normal vectors (per vertex).

    Float3[] tangents

    The tangent vectors (per vertex). Use null to compute them from normal vectors.

    Float2[] uv

    The texture coordinates (per vertex).

    Color32[] colors

    The vertex colors (per vertex).

    UpdateMesh(Float3[], UInt32[], Int4[], Float4[], Float3[], Float3[], Float2[], Color32[])

    Updates the skinned model mesh vertex and index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay.

    Declaration
    public void UpdateMesh(Float3[] vertices, uint[] triangles, Int4[] blendIndices, Float4[] blendWeights, Float3[] normals = null, Float3[] tangents = null, Float2[] uv = null, Color32[] colors = null)
    Parameters
    Float3[] vertices

    The mesh vertices positions. Cannot be null.

    System.UInt32[] triangles

    The mesh index buffer (clockwise triangles). Uses 32-bit stride buffer. Cannot be null.

    Int4[] blendIndices

    The skinned mesh blend indices buffer. Contains indices of the skeleton bones (up to 4 bones per vertex) to use for vertex position blending. Cannot be null.

    Float4[] blendWeights

    The skinned mesh blend weights buffer (normalized). Contains weights per blend bone (up to 4 bones per vertex) of the skeleton bones to mix for vertex position blending. Cannot be null.

    Float3[] normals

    The normal vectors (per vertex).

    Float3[] tangents

    The normal vectors (per vertex). Use null to compute them from normal vectors.

    Float2[] uv

    The texture coordinates (per vertex).

    Color32[] colors

    The vertex colors (per vertex).

    UpdateMesh(Vector3[], Int32[], Int4[], Vector4[], Vector3[], Vector3[], Vector2[])

    Updates the skinned model mesh vertex and index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay. [Deprecated on 26.05.2022, expires on 26.05.2024]

    Declaration
    public void UpdateMesh(Vector3[] vertices, int[] triangles, Int4[] blendIndices, Vector4[] blendWeights, Vector3[] normals = null, Vector3[] tangents = null, Vector2[] uv = null)
    Parameters
    Vector3[] vertices

    The mesh vertices positions. Cannot be null.

    System.Int32[] triangles

    The mesh index buffer (clockwise triangles). Uses 32-bit stride buffer. Cannot be null.

    Int4[] blendIndices

    The skinned mesh blend indices buffer. Contains indices of the skeleton bones (up to 4 bones per vertex) to use for vertex position blending. Cannot be null.

    Vector4[] blendWeights

    The skinned mesh blend weights buffer (normalized). Contains weights per blend bone (up to 4 bones per vertex) of the skeleton bones to mix for vertex position blending. Cannot be null.

    Vector3[] normals

    The normal vectors (per vertex).

    Vector3[] tangents

    The normal vectors (per vertex). Use null to compute them from normal vectors.

    Vector2[] uv

    The texture coordinates (per vertex).

    UpdateMesh(Vector3[], UInt16[], Int4[], Vector4[], Vector3[], Vector3[], Vector2[])

    Updates the skinned model mesh vertex and index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay. [Deprecated on 26.05.2022, expires on 26.05.2024]

    Declaration
    public void UpdateMesh(Vector3[] vertices, ushort[] triangles, Int4[] blendIndices, Vector4[] blendWeights, Vector3[] normals = null, Vector3[] tangents = null, Vector2[] uv = null)
    Parameters
    Vector3[] vertices

    The mesh vertices positions. Cannot be null.

    System.UInt16[] triangles

    The mesh index buffer (clockwise triangles). Uses 16-bit stride buffer. Cannot be null.

    Int4[] blendIndices

    The skinned mesh blend indices buffer. Contains indices of the skeleton bones (up to 4 bones per vertex) to use for vertex position blending. Cannot be null.

    Vector4[] blendWeights

    The skinned mesh blend weights buffer (normalized). Contains weights per blend bone (up to 4 bones per vertex) of the skeleton bones to mix for vertex position blending. Cannot be null.

    Vector3[] normals

    The normal vectors (per vertex).

    Vector3[] tangents

    The tangent vectors (per vertex). Use null to compute them from normal vectors.

    Vector2[] uv

    The texture coordinates (per vertex).

    UpdateMesh(Vector3[], UInt32[], Int4[], Vector4[], Vector3[], Vector3[], Vector2[])

    Updates the skinned model mesh vertex and index buffer data. Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()). Mesh data will be cached and uploaded to the GPU with a delay. [Deprecated on 26.05.2022, expires on 26.05.2024]

    Declaration
    public void UpdateMesh(Vector3[] vertices, uint[] triangles, Int4[] blendIndices, Vector4[] blendWeights, Vector3[] normals = null, Vector3[] tangents = null, Vector2[] uv = null)
    Parameters
    Vector3[] vertices

    The mesh vertices positions. Cannot be null.

    System.UInt32[] triangles

    The mesh index buffer (clockwise triangles). Uses 32-bit stride buffer. Cannot be null.

    Int4[] blendIndices

    The skinned mesh blend indices buffer. Contains indices of the skeleton bones (up to 4 bones per vertex) to use for vertex position blending. Cannot be null.

    Vector4[] blendWeights

    The skinned mesh blend weights buffer (normalized). Contains weights per blend bone (up to 4 bones per vertex) of the skeleton bones to mix for vertex position blending. Cannot be null.

    Vector3[] normals

    The normal vectors (per vertex).

    Vector3[] tangents

    The normal vectors (per vertex). Use null to compute them from normal vectors.

    Vector2[] uv

    The texture coordinates (per vertex).

    Extension Methods

    Extensions.ReflectiveCompare<T>(T, T)
    Extensions.DeepClone<T>(T)
    Extensions.RawClone<T>(T)
    In This Article
    Back to top Copyright © 2012-2024 Wojciech Figat