1 Einleitung
Und am Anfang war... das MESH!
Naja, schön ist anders oder? Sieht doch ziemlich eckig und kantig aus. Gut, es könnte natürlich ein Betonpfeiler sein, der so mit Brettern eingeschalt ausgegossen wurde. Dann würde die Optik passen. Aber allzuoft, soll es halt kein Betonpfeiler sein, sondern ein schön gerundeter Zug oder ein Rohr oder... Was als tun? Wir glätten die Kanten! Das Zauberwort in Blender und anderen Programmen heißt Smoothing.
2 Simples smoothing des gesamten Objektes
Im linken Panel (notfalls mit t in der 3D-View aufrufen) befindet sich im Reiter Tools der Abschnitt Shading. Dieser bietet uns zwei Buttons an: Smooth und Flat. Meshes werden generell als flat generiert. Erzeugt man einen Schlauch mittels Kurven (mehr hier beim Kabel-Video) und wandelt diesen in ein Mesh um, so werden diese standardmäßig smooth generiert. Probieren wir es also einmal, unser Mesh zu glätten:
Nunja, runder sieht es schon aus, aber nun sieht es eher wie ein Druckkessel oder sowas aus. Der Effekt kann durchaus beabsichtigt sein, ich möchte ihn in diesem Fall aber eigentlich nicht. Man könnte jetzt hergehen und die obere und untere Fläche weglöschen, dann sähe der Mantel der Röhre wieder gut aus, aber nicht immer ist das eine Option. Endet ein Rohr in der Wand, kann man das so gerne machen, aber ist alles sichtbar, ruiniert man mehr wie das man gewinnt. Was können wir also tun?
3 Smoothing ausgewählter Flächen
Um einzelne Flächen zu glätten, müssen wir mit Tab in den Edit-Modus wechseln. Nun selektieren wir die gewünschten Flächen (bei mir der Mantel) und schauen uns im Reiter Shading / UVs um. Hier können wir nun im Abschnitt Faces wieder unsere beiden Buttons finden.
Smoothen wir also unsere Flächen und schauen, was dabei herauskommt:
Gut, besser. Die Enden unserer Röhre sind nun Flach wie... Norddeutschland - beinahe hätte ich mit Erbsen auf ein Brett genagelt angefangen *Finger wedel* Der Mantel sieht aber dennoch seltsam aus. Irgendwas stimmt da noch nicht so ganz und es erinnert mich an was. Lasst uns mal das Bild von eben hernehmen, wo wir das gesamte Objekt gesmoothed hatten und es mit diesem hier vergleichen:
Ich hoffe man erkennt es. Die Enden sind zwar nicht mehr smooth, der Mantel wird aber in genau der gleichen Weise wieder geglättet wie eben schon. Eine vernünftige Glättung, wie wenn wir die End-Flächen löschen würden, haben wir also immer noch nicht erreicht. Woran liegt das?
4 Ein wenig Hintergrundwissen
Ich denke es ist Zeit, uns etwas näher mit dem Thema des Glättens zu befassen. WIE wird denn geglättet? Wie ich jetzt schon öfter mal erzählt habe, passiert sowas über das Shading und die Flächen-Normalen. Jede Fläche hat eine Ausrichtung. Diese Richtung zeigt im 90° Winkel genau von der Fläche weg. Hinzu kommt nun eine weitere Richtung: Die Richtung, aus der das Licht kommt. Scheint das Licht genau von oben drauf, so erscheint die Fläche am hellsten. Scheint es jedoch seitlich oder von hinten auf die Fläche, so ist sie dunkel. Man würde es als "sie liegt im Schatten" empfinden. Und jeder Winkel zwischen "von oben" und "seitlich" erzeugt eine entsprechende Schattierung - ein shading. Ich hab das in einem anderen Artikel schon einmal etwas detaillierter betrachtet, wer mag, kann sich also hier nochmal etwas genauer belesen: Material-Koeffizienten
Sind unsere Flächen flat, so gilt ganz einfach überall diese Flächen-Normale (Richtung) als Vergleich zum Licht. Und diese Flächen-Normale ist eben überall gleich dann. Sprich die ganze Fläche wird einheitlich schattiert. An der Grenze zu einer anderen Fläche, die einen anderen Winkel im Raum einnimmt, hat man dann eine harte sichtbare Linie zwischen den Flächen, da die eine Fläche eben stur in dieser Schattierung gerendert wird und die daneben in einer anderen.
Glätten wir aber nun diese beiden Flächen, so wird zu den Kanten hin geschaut, ob es Nachbarflächen gibt. Ist dem so, so werden deren Flächen-Normalen gemittelt. Also eine hat bspw 20°, die nächste 30°. Nun wird als Normale am Schnittpunkt, bzw der gemeinsamen Kante beider Flächen nicht mehr 20° oder 30° als Normale angenommen, sondern das Mittel aus beiden: (20+30)/2 -> 25°. Nun bekommt die "ferne" Kante (also die, die nicht mit der Fläche verbunden ist) die Richtung der Fläche selbst (es sei denn natürlich, da hängt auch wieder eine Fläche dran, dann gilt deren Mittel) und die gemeinsame Kante bekommt diesen Mittelwert. Für die Flächen gelten nun also einmal 30->25° und 25->20° für die anliegende Fläche. Wie man nun schon an den Werten erkennt, gelten für beide Flächen an der gemeinsamen Kante die gleichen Winkel, ergo wird auch das Shading an beiden Flächen zu dieser Kante hin gleich sein. Wir haben nun also einen weichen Übergang erzielt.
Das geschieht dadurch, dass zwischen den Kanten die Werte für die Flächen-Normalen linear interpoliert werden. Das bedeudet, dass die Normale des aktuellen Pixels anhand seiner Position in der Fläche ausgerechnet wird. Befindet sich unser Pixel auf halben Wege zwischen beiden Kanten, so wird er also weder 30° noch 25° angerechnet bekommen, sondern eben 25+((30-25)*Position). "Position" ist hierbei nun der halbe Weg, also 0.5 -> 25+(5*0.5) = 27,5°.
Um etwas weiter ins Detail zu gehen, hier der Versuch einer Veranschaulichung:
Das Grüne soll unsere Fläche sein, bspw ein Würfel. Die Kanten (blaue Punke) haben also Winkel von 45 und 135° (rote Pfeile) - ein Unterschied von 90°.In dunkelgrau dahinter hab ich mal die dargestellte Rundung versucht einzuzeichnen. Ebenfalls in Pink hab ich einen Pixel bei ~83% (zwei Drittel der zweiten Hälfte ) eingezeichnet. Nun hab ich versucht in paint.net möglichst gerade weg einen roten Pfeil zu zeichnen und es zeigte mir dafür ungefähr 120° an. Nun hab ich nach unserer Formel von eben versucht das ganze rechnerisch zu ermitteln. Also 45+((135-45)*0.83) und heraus kommt wieder ungefähr diese 120°. Es stimmt also scheinbar ganz gut überein, was uns optisch ganz gute Rundungen bescheren sollte, die eigentlich garnicht da sind.
Gut, was war nun aber unser Problem hier? Nunja, er interpoliert halt nicht nur von rechts nach links, sondern auch von oben nach unten. Wie können wir das verhindern?
5 Kanten schärfen
Nun gilt es etwas Vorarbeit zu leisten. Gut, das kann man natürlich auch hinterher machen oder hinterher noch anpassen/verfeinern/abändern. Aber ich mach es mal vorher hier. Wir schärfen unsere Kanten! Und zwar die hin zu unseren "Deckeln" der Röhre. Wir können nun entweder die Flächen oben und unten auswählen und hier einfach sharp Edges wählen, aber ich wills auch mal etwas algemeiner versuchen zu erklären, denn nicht immer gehts so schön simpel. Ich wähle hierzu also nun alle gewünschten Kanten aus. In unserem Falle können wir uns eine kleine Hilfe zunutze machen:
Ich wähle eine Kante aus und mit Shift+G kann ich nun ein Menü aufrufen, dass mich "ähnliche" Kanten auswählen lässt. Ich wähle Lenght, da ich Kanten mit ähnlicher Länge haben möchte und schwupps, hab ich alle Kanten oben und unten rum ausgewählt. Jetzt kann ich wie eben schon im Reiter Shading / UVs Kanten schärfen. Also diesmal nicht Flächen glätten, sondern Kanten schärfen. Dazu einfach im Abschnitt Edges Sharp wählen. Unsere Kanten werden nun türkis hervorgehoben.
Da dies gerade beim Mappen einmal stören kann, kann man im rechten Panel (aufrufen per n in der 3D-View) im Abschnitt Mesh-Display die Anzeige der geschärften Kanten (und weiteres) de/aktivieren. Gut, was hat es für einen Effekt? Smoothen wir mal unser gesamtes Objekt wie anfangs im Object Mode:
Meh, sieht ja immernoch doof aus! Aber ich sagte ja: Es ist nur die Vorarbeit. Das Wichtigste fehlt noch...
6 Der EdgeSplit-Modifikator
Ein Puzzelteil fehlt noch zu unserem Glück: Der EdgeSplit-Modifikator. Er trennt Kanten auf (daher der Name) und aufgetrennte Kanten bedeudet, dass jede betroffene Fläche eine eigene "Kopie" der gemeinsamen Kante besitzt. Die "gemeinsame" Kante ist also nur noch optisch gemeinsam, da sie sich den selben Raum teilen. Tatsächlich aber sind sie getrennt und jede Fläche steht für sich. Dadurch gibt es keine Nachbarkante mehr und das Shading wird nicht länger beeinflusst. Genau das, was wir wollen
Wir wechseln im Properties-Panel also auf die Modifier-Ansicht (der kleine Schraubenschlüssel) und fügen einen EdgeSplit Modifikator hinzu:
Ist dies geschehen, sieht man sofort, wie das Objekt anders schattiert wird. So richtig passt es aber immer noch nicht:
Ich habs hier mal leicht rot umrahmt. Hier haben wir immernoch eine recht scharfe Kante. Das kommt daher, dass als Voreinstellung Edge-Angle aktiviert ist. Wir können nun versuchen den Winkel von 30° hier anzupassen, so dass richtig schattiert wird - oder aber wir verzichten einfach ganz auf die Option und nehmen den Haken raus. Dann verlassen wir uns voll und ganz auf unsere selbst gesetzten geschärften Kanten und haben volle Kontrolle.
JETZT sieht es doch richtig schön aus. Keine Interpolation zu den "Deckeln" hin sondern nur schön den Mantel entlang. Ich hab auch nochmal versucht alle 3 Bilder zu vergleichen:
Ich hoffe, man erkennt es. Noch ein kleiner Tipp: Modifier solltet ihr möglichst nicht anwenden (Apply). Oftmals stört es nur die weitere Arbeit am Mesh. Ist der Modifier aktiv, wird er schon angezeigt, als wäre er angewendet. Das Blöde am EdgeSplit ist eben, dass er die kanten auftrennt: ->
Hier einmal ohne Anwendung, alle Flächen hängen noch zusammen, dennoch passt das Shading schon. Und auf der anderen Seite der angewendete Modifikator. Wie man sieht, sind die Kanten nun getrennt. Ich hatte das auch schonmal ein wenig ausführlicher im Forum behandelt und möchte euch den Link nicht vorenthalten: [Mod] Am 4/6 der SBB
[hl]Vor- und Nachteile[/url]
Der Vorteil ist natürlich, dass man Rundungen darstellen kann, die selbst mit vielen Polygonen nur mangelhaft zu erreichen sind. Zudem kann man an vielen Stellen massiv Polygone sparen. Gerade, wenn man die Enden der geglätteten Objekte nicht sieht, wirkt sich das sehr gut aus. Hier tritt aber eben schon der große Nachteil zu Tage: Wehe man sieht das Dann fällt der ganze "Schwindel" sofort auf. Auch lohnen sich extrem wenige Polies eigentlich nur bei sehr kleinen Objekten wie Kabeln.
Bei großen Objekten wirkt das einfach nicht mehr schön. Zudem sieht man auch, dass die Rundung bei mehr Polies deutlich hübscher ausschaut. Ich hab den Zylinder nochmal mit 6 statt 12 Seite-Flächen erstellt:
Wirkt schon besser, aber wie gesagt, dadurch dass man oben den Abschluss sieht, ist die ganze Magie wieder dahin. Hier muss man also situativ entscheiden, was man macht.
Abschließend hoffe ich, dass euch dieser Artikel etwas hilft und wünsche viel Spaß beim modellieren Euer Mo.