diff options
author | clayjohn <claynjohn@gmail.com> | 2023-01-31 09:02:43 -0800 |
---|---|---|
committer | clayjohn <claynjohn@gmail.com> | 2023-01-31 10:10:31 -0800 |
commit | cdc6c00b5fe758a5246709a68bdb8e18b8613e53 (patch) | |
tree | 0a1ff1eb36dc2020ec5bcd210cf3e026d5166bee /servers/rendering/renderer_rd/storage_rd | |
parent | 2b710bc336a02ace95eb0588f3b0744923faf004 (diff) |
Check if Skeleton exists before reading when calculating blend shapes
Diffstat (limited to 'servers/rendering/renderer_rd/storage_rd')
-rw-r--r-- | servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp index 9124886764..f65676185c 100644 --- a/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp @@ -986,7 +986,10 @@ void MeshStorage::update_mesh_instances() { push_constant.skin_stride = (mi->mesh->surfaces[i]->skin_buffer_size / mi->mesh->surfaces[i]->vertex_count) / 4; push_constant.skin_weight_offset = (mi->mesh->surfaces[i]->format & RS::ARRAY_FLAG_USE_8_BONE_WEIGHTS) ? 4 : 2; - Transform2D transform = mi->canvas_item_transform_2d.affine_inverse() * sk->base_transform_2d; + Transform2D transform = Transform2D(); + if (sk && sk->use_2d) { + transform = mi->canvas_item_transform_2d.affine_inverse() * sk->base_transform_2d; + } push_constant.skeleton_transform_x[0] = transform.columns[0][0]; push_constant.skeleton_transform_x[1] = transform.columns[0][1]; push_constant.skeleton_transform_y[0] = transform.columns[1][0]; |