Google hat am 13. Januar 2017 Draco als Open-Source-Bibliothek zur Kompression von 3D-Geometrie vorgestellt. Das Chrome-Media-Team will damit den Speicherbedarf und die Übertragungsmenge von Meshes und Punktwolken verringern. Eine Demonstration vergleicht Draco und gzip beim Laden eines 3D-Modells.
Geometrie komprimieren statt Bilder rendern
Draco verarbeitet Punkte, Verbindungsinformationen, Texturkoordinaten, Farben und Normalen. Der JavaScript-Decoder ermöglicht die Einbindung in browserbasierte 3D-Anwendungen; Google liefert Beispiele für three.js mit. Die Aufgabe unterscheidet sich von Googles zuvor freigegebenem SwiftShader: Dieser berechnet Grafik auf der CPU, während Draco geometrische Daten vor der Darstellung entpackt.
Dateigröße gegen Präzision und Rechenzeit abwägen
Die Projektdokumentation zum Stand vom 13. Januar beschreibt einen CMake-Build sowie Werkzeuge zum Umwandeln von OBJ- und PLY-Dateien in das Draco-Format. Der Quellcode steht unter Apache 2.0. Anwendungen können die C++-Bibliothek einbinden oder den JavaScript-Decoder verwenden.
Die Quantisierung der Punktpositionen ist einstellbar. Standardmäßig verwendet das Kommandozeilenwerkzeug dafür 14 Bit; weniger Bits verkleinern die Daten, verringern aber die Genauigkeit. Eine Einstellung von null deaktiviert die Quantisierung. Zusätzlich reicht der Kompressionsgrad von 0 bis 10. Höhere Werte können kleinere Dateien liefern, erhöhen laut Dokumentation jedoch den Dekodieraufwand.
Damit ist eine kleinere Datei nicht automatisch die beste Einstellung für jede Laufzeitumgebung. Für eine Asset-Pipeline sind auch die verbleibende geometrische Genauigkeit und die Entpackzeit auf dem Zielgerät relevant. Die von Google veröffentlichten Vergleichswerte beruhen auf quantisierten Testmodellen und sind keine Zusage generell verlustfreier Kompression.
Mehrere Detailstufen sind erst angekündigt
Mehrere Detailstufen aus einem einzigen Modell nennt Google als geplante Erweiterung. Sie gehören damit nicht zum hier vorgestellten Funktionsumfang. Die erste Veröffentlichung konzentriert sich auf das Komprimieren und Dekodieren vorhandener Geometriedaten.

