1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-11 17:51:04 +00:00

Fix handling of skinned meshes for nodes

- Rigidly animated models (e.g. the gltf frog node) were not working correctly,
  since cloning the mesh ignored the transformation matrices.
  Note that scaling the mesh needs to occur *after* transforming the vertices.
- Visual scale did not apply to skinned models,
  as resetting the animation overwrote scaled vertex data with static positions & normals.
  For backwards compatibility, we only apply a 10x scale to static (.obj) models.
This commit is contained in:
Lars Mueller 2025-05-04 19:57:23 +02:00 committed by Lars Müller
parent 57c1ab905c
commit 612db5b2ca
6 changed files with 72 additions and 65 deletions

View file

@ -93,10 +93,8 @@ void rotateMeshYZby (scene::IMesh *mesh, f64 degrees);
*/
scene::IMeshBuffer* cloneMeshBuffer(scene::IMeshBuffer *mesh_buffer);
/*
Clone the mesh.
*/
scene::SMesh* cloneMesh(scene::IMesh *src_mesh);
/// Clone a mesh. For an animated mesh, this will clone the static pose.
scene::SMesh* cloneStaticMesh(scene::IMesh *src_mesh);
/*
Convert nodeboxes to mesh. Each tile goes into a different buffer.