mirror of
https://github.com/openharmony/third_party_meshoptimizer.git
synced 2026-07-19 12:03:07 -04:00
gltfpack: Fix triangle count computation for non-triangle meshes
This affected lines/points including debug meshes that simplification debugging produces.
This commit is contained in:
+6
-3
@@ -87,12 +87,14 @@ static void printMeshStats(const std::vector<Mesh>& meshes, const char* name)
|
||||
{
|
||||
const Mesh& mesh = meshes[i];
|
||||
|
||||
mesh_triangles += mesh.indices.size() / 3;
|
||||
size_t triangles = mesh.type == cgltf_primitive_type_triangles ? mesh.indices.size() / 3 : 0;
|
||||
|
||||
mesh_triangles += triangles;
|
||||
mesh_vertices += mesh.streams.empty() ? 0 : mesh.streams[0].data.size();
|
||||
|
||||
size_t instances = std::max(size_t(1), mesh.nodes.size() + mesh.instances.size());
|
||||
|
||||
total_triangles += mesh.indices.size() / 3 * instances;
|
||||
total_triangles += triangles * instances;
|
||||
total_instances += instances;
|
||||
total_draws += std::max(size_t(1), mesh.nodes.size());
|
||||
}
|
||||
@@ -199,9 +201,10 @@ static bool printReport(const char* path, const std::vector<BufferView>& views,
|
||||
{
|
||||
const Mesh& mesh = meshes[i];
|
||||
|
||||
size_t triangles = mesh.type == cgltf_primitive_type_triangles ? mesh.indices.size() / 3 : 0;
|
||||
size_t instances = std::max(size_t(1), mesh.nodes.size() + mesh.instances.size());
|
||||
|
||||
total_triangles += mesh.indices.size() / 3 * instances;
|
||||
total_triangles += triangles * instances;
|
||||
total_instances += instances;
|
||||
total_draws += std::max(size_t(1), mesh.nodes.size());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user