summaryrefslogtreecommitdiffstats
path: root/scene/resources/importer_mesh.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/resources/importer_mesh.cpp')
-rw-r--r--scene/resources/importer_mesh.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/scene/resources/importer_mesh.cpp b/scene/resources/importer_mesh.cpp
index 66d758080e..2ffb8da46c 100644
--- a/scene/resources/importer_mesh.cpp
+++ b/scene/resources/importer_mesh.cpp
@@ -418,11 +418,10 @@ void ImporterMesh::generate_lods(float p_normal_merge_angle, float p_normal_spli
}
}
- LocalVector<float> normal_weights;
- normal_weights.resize(merged_vertex_count);
- for (unsigned int j = 0; j < merged_vertex_count; j++) {
- normal_weights[j] = 2.0; // Give some weight to normal preservation, may be worth exposing as an import setting
- }
+ const float normal_weights[3] = {
+ // Give some weight to normal preservation, may be worth exposing as an import setting
+ 2.0f, 2.0f, 2.0f
+ };
Vector<float> merged_vertices_f32 = vector3_to_float32_array(merged_vertices_ptr, merged_vertex_count);
float scale = SurfaceTool::simplify_scale_func(merged_vertices_f32.ptr(), merged_vertex_count, sizeof(float) * 3);
@@ -460,12 +459,13 @@ void ImporterMesh::generate_lods(float p_normal_merge_angle, float p_normal_spli
(const uint32_t *)merged_indices_ptr, index_count,
merged_vertices_f32.ptr(), merged_vertex_count,
sizeof(float) * 3, // Vertex stride
+ merged_normals_f32.ptr(),
+ sizeof(float) * 3, // Attribute stride
+ normal_weights, 3,
index_target,
max_mesh_error,
simplify_options,
- &mesh_error,
- merged_normals_f32.ptr(),
- normal_weights.ptr(), 3);
+ &mesh_error);
if (new_index_count < last_index_count * 1.5f) {
index_target = index_target * 1.5f;