Phong
Phong ist eine in CINEMA 4D eingebaute Funktion, mit der Sie erreichen können, dass ein aus Drei- und Vierecken aufgebautes Objekt bei der Bildberechnung eine runde, glatte Oberfläche (Phong-Shading) bekommt. Zum Beispiel lässt sich eine Kugel, die aus hundert Flächen aufgebaut ist und normalerweise facettiert erscheint, bei angeschaltetem Phong kaum von der perfekten Kugel unterscheiden.
Qualitätsunterschiede sieht man nur am Rand der Kugel, denn die Silhouette eines nicht mathematisch perfekten Objekts bleibt nach wie vor kantig.
Das Phong-Tag ist ein geeignetes Mittel, um viel Rechenzeit und Speicherplatz zu sparen. Denn nach herkömmlicher Art müsste man ein rundes Objekt in mehrere tausend Polygone unterteilen, bis es wirklich glatt aussieht. Bedingung für das Phong-Glätten ist, dass aneinanderstoßende Polygone gemeinsame Punkte besitzen.
Phong arbeitet nach folgendem Prinzip:
Das Shading benötigt sog. Vertex-Normalen. Jedes Polygon hat an jedem seiner Eckpunkte jeweils eine eigene Vertex-Normale. Ohne Zutun des Phong- oder eines Normalen-Tags haben diese Vertex-Normalen zunächst die Richtung der Polygonnormalen. Polygoneckpunkte, die Bestandteil anderer, angrenzender Polygone sind, haben je nach Anzahl benachbarter Polygone jeweils eine zusätzliche Vertex-Normale, wie Sie das in folgendem Bild linker Hand sehen können:
Die hier weiss dargestellten Vertex-Normalen zeigen zunächst (links ohne Phong-Tag) in Polygonnormalen-Richtung. Beim Shading wird innerhalb eines Polygons zur Berechnung der Helligkeit für jedes Pixel eine zwischen den polygoneigenen Vertex-Normalen interpolierte Normale (die sog. Shading-Normale) angenommen. Es leuchtet sofort ein, dass hier eine harte Kante an der Grenze der beiden Polygonen entsteht: die beiden Vertex-Normalen der mittleren Punkte weichen stark voneinander ab: es gibt hier einen Helligkeitssprung. Das ist meist unerwünscht.
Wie könnte man dieser Helligkeitssprung vermeiden? Stellen Sie sich vor, die beiden Vertex-Normalen pro Punkt würden sich in ihrer Richtung angleichen. Bei der Interpolation der Shadingnormalen würde an der Kante kein Sprung stattfinden.
Genau so etwas macht das Phong-Tag. Abhängig von einem Schwellwert – nämlich dem Winkel zwischen 2 benachbarten Polygonen – werden bei Unterschreitung die Vertex-Normalen auf einen Mittelwert der angrenzenden Polygone gesetzt: oben in der Abbildung rechts zu sehen. D.h. in der Mitte liegen die beiden Vertex-Normalen pro Punkt übereinander. Damit wird ein stetiger Helligkeitsverlauf über die Kanten hinweg gewährleistet.
Es sei noch ein kleiner Einschub gestattet: stellen Sie sich, die eben erwähnte Shading-Normale wird nicht zwischen den Objektpunkten interpoliert, sondern könnte gezielt in jeglicher Richtung orientiert werden. Genau das macht eine Normalen-Map, die z.B. im Materialkanal Normale eingeladen werden kann.
Ein weiteres Cinema 4D-Element, das Einfluss auf die Vertex-Normalen nehmen kann, ist das Normalen-Tag.
Beachten Sie, dass benachbarte Polygone mit ihrer Polygonnormalen nicht in die entgegengesetzte Richtung, sondern einheitlich nach außen bzw. auf eine Seite zeigen. Das Shading kann ansonsten nicht korrekt funktionieren.