From 593b989958c7f7886cd3bd423a4589c2b8f27ab2 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 29 Jun 2026 15:18:21 +0200 Subject: [PATCH] Fix procedural Skinned Mesh creation from code https://forum.flaxengine.com/t/issues-with-creating-skinnedmodel-procedurally/2627 --- Source/Engine/Graphics/Models/Mesh.cpp | 3 +-- Source/Engine/Graphics/Models/SkinnedMesh.cpp | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Source/Engine/Graphics/Models/Mesh.cpp b/Source/Engine/Graphics/Models/Mesh.cpp index c2f340645..b793cfe38 100644 --- a/Source/Engine/Graphics/Models/Mesh.cpp +++ b/Source/Engine/Graphics/Models/Mesh.cpp @@ -70,8 +70,7 @@ namespace if (accessor.AllocateBuffer(MeshBufferType::Vertex0, vertexCount, vb0layout)) return true; auto positionStream = accessor.Position(); - ASSERT(positionStream.IsLinear(PixelFormat::R32G32B32_Float)); - positionStream.SetLinear(vertices); + positionStream.Set(Span(vertices, vertexCount)); } // Vertex Buffer 1 (general purpose components) diff --git a/Source/Engine/Graphics/Models/SkinnedMesh.cpp b/Source/Engine/Graphics/Models/SkinnedMesh.cpp index 0377003be..97aa6f6fb 100644 --- a/Source/Engine/Graphics/Models/SkinnedMesh.cpp +++ b/Source/Engine/Graphics/Models/SkinnedMesh.cpp @@ -44,7 +44,7 @@ namespace // Index Buffer { - if (accessor.AllocateBuffer(MeshBufferType::Index, triangleCount, indexFormat)) + if (accessor.AllocateBuffer(MeshBufferType::Index, triangleCount * 3, indexFormat)) return true; auto indexStream = accessor.Index(); ASSERT(indexStream.IsLinear(indexFormat)); @@ -73,8 +73,7 @@ namespace return true; auto positionStream = accessor.Position(); - ASSERT(positionStream.IsLinear(PixelFormat::R32G32B32_Float)); - positionStream.SetLinear(vertices); + positionStream.Set(Span(vertices, vertexCount)); if (normals) { auto normalStream = accessor.Normal();