2016-05-22 9 views
0

Ich verwende RendererStats, um meine THREE.js (R75) -Szene für bessere Leistung zu optimieren.Three.js Leistung: RendererStats Vertex Count

RendererStats Vertex-Anzahl ist höher als erwartet. Zum Beispiel habe ich eine normale Kugel mit 6 x 6 Segmenten. Nach mergeVertices() zeigt die Geometrie 32 Vertices im Array geometry.vertices, was erwartet wird. RendererStats zeigt jedoch eine Anzahl von 180 Scheitelpunkten an. Mehrere Tests in verschiedenen Größen zeigen alle die gleichen Ergebnisse; etwa 5-mal so viele erwartete Ecken wie in RendererStats.

Woher kommen diese zusätzlichen Vertices und kann ich sie vermeiden?

Bonusfrage: Hilft die Reduzierung der Vertex-Anzahl die Leistung signifikant zu verbessern oder sind meine Anstrengungen besser woanders konzentriert?

Antwort

1

Vertices werden in Ihrem Modell gemeinsam verwendet, sodass die Anzahl der gerenderten Scheitelpunkte größer als die Anzahl der Scheitelpunkte in Ihrem Modell ist.

Die Anzahl der Vertices, die als gerendert gemeldet werden, ist dreimal so groß wie die Anzahl der Dreiecke. Sie sollten 60 Dreiecke haben, also 180 Ecken.

Die Leistung ist fallabhängig und hängt von der Komplexität Ihrer Szene ab. Erwägen Sie die Verwendung von SphereBufferGeometry anstelle von SphereGeometry. Vermeiden Sie eine Animationsschleife, wenn Sie eine statische Szene haben. (d. h. nur rendern, wenn sich die Kamera bewegt.) Verwenden Sie die neueste Version der three.js-Bibliothek.

three.js r.77