Skip to content

Commit a02388c

Browse files
committed
clusterizer: Replace last few seeds instead of discarding new seeds
When the seed list is at capacity, instead of discarding the seeds from the new meshlet we now replace the last few seeds. This seems to slightly improve the flow for larger meshes, effectively "compacting" the list a little at every iteration.
1 parent 62b992b commit a02388c

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/clusterizer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -837,8 +837,8 @@ size_t meshopt_buildMeshletsFlex(meshopt_Meshlet* meshlets, unsigned int* meshle
837837
if (split || (meshlet.vertex_count + best_extra > max_vertices || meshlet.triangle_count >= max_triangles))
838838
{
839839
seed_count = pruneSeedTriangles(seeds, seed_count, emitted_flags);
840-
if (seed_count + kMeshletAddSeeds <= kMeshletMaxSeeds)
841-
seed_count += appendSeedTriangles(seeds + seed_count, meshlet, meshlet_vertices, indices, adjacency, triangles, live_triangles, cornerx, cornery, cornerz);
840+
seed_count = (seed_count + kMeshletAddSeeds <= kMeshletMaxSeeds) ? seed_count : kMeshletMaxSeeds - kMeshletAddSeeds;
841+
seed_count += appendSeedTriangles(seeds + seed_count, meshlet, meshlet_vertices, indices, adjacency, triangles, live_triangles, cornerx, cornery, cornerz);
842842

843843
unsigned int best_seed = selectSeedTriangle(seeds, seed_count, indices, triangles, live_triangles, cornerx, cornery, cornerz);
844844

0 commit comments

Comments
 (0)