Tutorial: Harte Kanten und weiche Rundungen in Blender

Aus LOTUS Wiki DE
Wechseln zu: Navigation, Suche

Vorlage:ArticleMetadata

Da es in der 3D-Grafik keine echten Rundungen gibt, sondern nur kantige Objekte, wird sich eines Tricks bedient, um gebogene Oberflächen weich darzustellen: Obwohl die einzelnen Flächen für sich genommen plan sind und somit in der Realität von einer Lichtquelle konstant gleichmäßig beleuchtet werden, werden - wenn gewünscht - die Schattierungen der Lichtquelle zwischen den Eckpunkten der Fläche interpoliert - es entsteht ein Farbverlauf, der eine gebogene Fläche suggeriert.

In Blender sind leider ein paar Kniffe notwendig, um diesen Effekt gezielt einzusetzen.

1 Alle Flächen plan

Wenn es sich um ein Objekt handelt, welches _keinerlei_ gebogene Flächen aufweißt (z.B. ein Würfel), dann kann beim Import der x3d-Datei im ContentTool die Frage "Soll das Objekt explizit 'eckig' (flat shading) importiert werden?" mit _Ja_ beantwortet werden.

2 Einige oder alle Flächen gebogen

Wenn es sich um ein Objekt handelt, welches auch oder nur über gebogene Flächen verfügt, dann muss eine entsprechende Pflege bereits in Blender vorgenommen werden.


Das Hauptproblem dieser Thematik besteht darin, dass **Blender die Schattierung anders exportiert, als es sie darstellt.**

2.1 Blender-intern

Innerhalb von Blender kann man die Schattierungsart einstellen, indem man die betroffenen Flächen im Edit-Mode markiert, dann [W] drückt und "Shade Flat" auswählt:


[https://www.lotus-simulator.de/index.php?attachment/351-menuflat-png/ "MenuFlat.png"]


Das Resultat sieht dann folgendermaßen aus:


[https://www.lotus-simulator.de/index.php?attachment/352-objflat-png/ "ObjFlat.png"]


Der Würfel wird hier korrekt dargestellt, der Zylinder allerdings ist kein Zylinder, sondern eine zwölfeckige Säule. Das ist aber nicht erwünscht.


So würde es auch im ContentTool aussehen, wenn man das Objekt – wie oben bereits erklärt – als "explizit eckig" importiert.


Alternativ kann man alle Polygone auswählen und auf "Shade Smooth" setzen, dann sieht das Ergebnis so aus:


[https://www.lotus-simulator.de/index.php?attachment/353-objallsmooth-png/ "ObjAllSmooth.png"]


Das Ergebnis ist auch nicht zufriedenstellend: Der Würfel wirkt wie "rundgelutscht" und auch der Abschluss des Zylinders ist "irgendwie rund".


Die Lösung ist, nur die Quadrate des Würfels, sowie die Ober- und Unterseite des Zylinders zurück auf "Shade Flat" zu setzen:


[https://www.lotus-simulator.de/index.php?attachment/354-objkorrekt-png/ "ObjKorrekt.png"]

2.2 Für den Export

Leider exportiert Blender diese Information nicht in die x3d-Datei. Stattdessen wird alles immer so exportiert, als wäre die Option "Shade Smooth" für alle Polygone aktiv.


Deshalb sollte man bei allen Objekten, die auch gebogene Flächen enthalten, in Blender grundsätzlich in allen Meshs "Shade Smooth" aktivieren. Dann sieht es also wieder so aus:


[https://www.lotus-simulator.de/index.php?attachment/353-objallsmooth-png/ "ObjAllSmooth.png"]


Man muss sich nun vorstellen, dass alle Nahtstellen von Flächen, die miteinander "echt" verbunden sind, d.h. die sich tatsächlich _dieselben_ Eckpunkte teilen, abgerundet werden.

2.2.1 Eckig

    • Die Lösung ist also: Man "bricht" die entsprechenden Kanten auf, die sichtbar sein sollen!** Dies tut man, indem man die Gruppe von Flächen, die sich gegenüber angrenzenden Polygonen "eckig" verhalten sollen, markiert und dann mit [Y] "trennt".


"Trennen" bedeutet hier, dass an allen Nahtstellen zwischen den markierten und den unmarkierten Polygonen neue Eckpunkte angelegt werden, die an exakt derselben Stelle liegen. Dadurch sieht das Mesh zunächst aus wie vorher. Weil sich die Polygone aber nicht mehr _denselben_ Punkt teilen, sondern jedes "seinen" Punkt hat, werden die entsprechenden Kanten eben auch getrennt schattiert.


Wenn die Oberseite des Würfels markiert wird und dann [Y] gedrückt wird, dann sieht das Ergebnis so aus:


[https://www.lotus-simulator.de/index.php?attachment/355-y1-png/ "Y1.png"]


Tut man dasselbe mit der Vorderseite des Würfels, sieht das dann so aus:


[https://www.lotus-simulator.de/index.php?attachment/356-y2-png/ "Y2.png"]


Die linke Seite des Würfels ist immer noch mit dem Boden- und dem rückseitigen Quadrat verbunden, weshalb diese immer noch gebogen wirkt.


Wenn man alle Seiten des Würfels getrennt hat, sieht das so aus:


[https://www.lotus-simulator.de/index.php?attachment/357-y3-png/ "Y3.png"]


Schließlich wiederholen wir das mit der Zylinder-Mantelfläche:


[https://www.lotus-simulator.de/index.php?attachment/358-y4-png/ "Y4.png"]


Hier kann man noch einen interessanten Effekt sehen: Obwohl es der Mantel war, den wir abgelöst haben, ist dieser _für sich genommen_ immer noch "rund", weil eben die Kanten der abgetrennten gegenüber den verbliebenen Polygonen entscheidend sind. Die Kanten der markierten Polygone untereinander bleiben unangetastet und damit "rund". Umgekehrt sind Boden- und Deckfläche jetzt automatisch plan schattiert, obwohl sie selbst gar nicht behandelt wurden.

2.2.2 Wieder rund

Man kann diesen Vorgang umkehren. Hierzu dient die Funktion "Remove Doubles". Hierfür werden die miteinander zu fusionierenden Punkte markiert und mittels [W] und der genannten Funktion die Eckpunkte, die jeweils übereinander liegen, wieder zu einem zusammengefasst. Dementsprechend verhält sich auch die Schattierung der Flächen:


[https://www.lotus-simulator.de/index.php?attachment/359-rd1-png/ "RD1.png"] [https://www.lotus-simulator.de/index.php?attachment/360-rd2-png/ "RD2.png"]