Lassen Sie uns in unserer Erklärung ein Schritt weiter gehen. Wir haben gerade gesehen, dass die STL-Datei eigentlich eine Übersetzung des 3D-Objekts ist, aber was genau bedeutet das? Diese Datei kodiert die Oberflächengeometrie des Objekts. Das Konzept, welches bei diesem Schritt verwendet wird, heißt Tesselierung. Tesselation ist der Vorgang des Kachelns einer Oberfläche mit geometrischen Formen und insbesondere Dreiecken, wie im unteren Beispiel:
https://computergraphics.stackexchange.com
Die Rolle der Datei ist es, die Informationen dieser Dreiecksgeometrien zu speichern. Es gibt zwei verschiedene Möglichkeiten für eine Datei Informationen zu speichern: ASCII-Kodierung und Binärkodierung. Beide speichern die Komponenten des Einheitsnormalenvektors zum Dreieck und die Koordinaten der Scheitelpunkte.
Die ASCII-STL-Datei beginnt immer mit dieser Zeile:
„solid name“
Der Name ist der Name des Modells und mit diesem werden alle Anzahlen von Dreiecken fortgesetzt:
Facette normal ni nj nk
äußere Schleife
Scheitelpunkt v1x v1y v1z
Scheitelpunkt v2x v2y v2z
Scheitelpunkt v3x v3y v3z
endloop
endfacet
Jedes n oder v ist eine Fließkommazahl. Die ASCII-STL-Datei endet mit:
endsolid name
Wenn Ihre Datei groß und sehr detailliert ist, kann die Datei etwas unübersichtlich und riesig werden. In diesem Fall gibt es eine andere Lösung.
Die Binärdatei beginnt mit einem 80-Zeichen-Header und jedes Dreieck wird dann durch zwölf 32-Bit-Fließkommazahlen dargestellt. Am Ende sieht es dann so aus:
UINT8[80] – Kopfzeile
UINT32 – Anzahl der Dreiecke
für jedes Dreieck
REAL32[3] – Normalenvektor
REAL32[3] – Scheitelpunkt 1
REAL32[3] – Scheitelpunkt 2
REAL32[3] – Scheitelpunkt 3
UINT16 – Attribut-Byte-Anzahl
Ende
Das praktische am kodierten Binärformat ist, dass durch die einfachere Lesbarkeit, schneller mögliche Fehler oder Problem zu finden sind.