|
|
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
− | = Tripling =
| + | #REDIRECT [[Triangulation]] |
− | == Was ist das? ==
| |
− | Tripling steht für "Aufteilen der Polygone inerhalb der Szene in Dreiecke".
| |
− | | |
− | == Wozu braucht man das? ==
| |
− | Dazu muss man auf die Besonderheiten der Grafikhardware eingehen.
| |
− | Heutzutage(und nicht erst seit gestern) werden Grafikkarten auf die darstellung von (texturierten) Dreiecken optimiert (Linien und Punkte lass ich mal außen vor). Das hat einen ganz einfachen Grund: <br>
| |
− | Jedes Polygon kann als zusammenstellung von Dreicken dargestellt werden.
| |
− | <br>
| |
− | Ihr könntet jetzt aber anbringen, dass ihr aber doch auch "Vierecke und Polygone mittels OpenGL zeichnen" könnt. (siehe Beitrag [[Primitive]])<br>
| |
− | Das stimmt. Nur sind die Grafikkarten nunmal auf Dreiecke optimiert. Und wenn man was anderes als Dreiecke zeichnet, müssen diese Flächen erst für die Hardware in Dreiecke zerlegt werden. Und das Kostet Zeit. Und Zeit ist etwas, was in der Programmierung (vorallem im Graphikbereich) so wertvoll ist wie der Kaffee in der Nacht. (Also quasi unersetzbar) <br>
| |
− | | |
− | ===Fazit===
| |
− | Wenn ihr die Möglichkeit habt, dann baut eure Szene von anfang an aus Dreiecken auf. Die müssen nicht mehr nachbearbeitet werden, und dass bringt euch vorallem bei großen Szenen noch einen spürbaren Frameratenschub.
| |
− | | |
− | == Wie mach ich es? ==
| |
− | Es wäre sicherlich müselig nun anzufangen die komplette Scene aus einzelnen Dreiecken zusammen zusetzen. Glücklicherweise hat OpenGL dafür eine Lösung.<br>
| |
− | Anstatt im [[glBegin]]-[[glEnd]] Block mit '''GL_TRIANGLES''' zu arbeiten könnt ihr zusammenhängende ('''GL_TRIANGLE_STRIP''') Dreiecke (für rechteckige Flächen oder Flächen die aus Rechtecken zusammengesetzt wurden) oder konzentrische ('''GL_TRIANGLE_FAN''') Dreiecke (für [[konvex | konvexe]] Polygone) verwenden.
| |
− | | |
− | == Siehe auch ==
| |
− | [[glBegin]], [[Primitive]]
| |