
Nicht-fotorealistisches Rendering oder Non-Photorealistic Rendering ( NPR) ermöglicht alles, was nicht unbedingt realitätsnah oder fotorealistisch aussehen soll. Durch Cartoon-Shader, Plugins oder eigene Vektor-Renderer lassen sich unendlich viele unterschiedliche Stile rendern. Saubere technische Zeichnungen, handgezeichnete Skizzen, Zeichnungen mit Filzstift, Edding oder Kohle, abstrakte Maleffekte oder div. Comic-Stile können gerendert werden. Durch Kombinationen, auch mit fotorealistischen Renderings, ist die Anzahl an kreativen Lösungen für Standbilder, Animation oder Echtzeitanwendungen unendlich groß.
![]() |
Verschiedene Renderergebinsse: Gerendert wurde mit dem Maya Software Renderer in Kombination mit dem Plugin Tomcat. Dieses Plugin verwendet Paint Effects Brushes für die Konturlinien. Effekte wie Ölfarben, Pastelkreide, Aibrush oder Buntstifte sind dadurch möglich. |
Generell besteht ein nicht-fotorealistischer Shader bzw. Comic-Shader aus zwei Komponenten:
- Outline bzw. Konturzeichnung: Durch eine Umrisslinie wird das Objekt definiert.
- Color-Shading bzw. Farbfüllung: Füllt die Flächen des Objekts.
![]() |
(a) Konturlinie im Vektor-Renderer gerendert (Ravix von electricrain) (b) Konturlinie mit einem Cartoon-Shader; es entsteht eine geschwungene Linie (c) Konturlinie und Farbfüllung mit einem Cartoon-Shader (d) Fotorealistisches Rendering |
Vergleich: Photorealistisches Rendering / Nicht-fotorealistisches Rendering
Anstatt mit einer Standardmethode wie der Phong-Beleuchtung einen Eckpunkt zu Beleuchten und glatte Farbverläufe zu erzeugen, kann auch in Stufen interploiert werden. Der Farbverlauf kann so verfremdet werden, dass die beleuchteten Objekte im Comic-Stil erscheinen. Meist wird für die Farb-Schattierung ein Lambert-Beleuchtungsmodell zur diffusen Beleuchtung verwendet. Der Winkel zwischen Flächennormale n und dem Lichtvektor L wird als Maß für die Abschwächung herangezogen. In den meisten Fällen wird die Abschwächung durch einen Farbverlauf eingestellt.
![]() |
Die Beleuchtung wird nach dem Beleuchtungsmodell von Lambert berechnet. Der Winkel zwischen Flächennormale und Lichtvektor bestimmt nach dem Beleuchtungsmodell von Lambert die Intensität des darzustellenden Punktes. Das Color-Shading der Kugel wird durch einen Farbverlauf gesteuert. Der abgebildete Farbverlauf definiert ein Color-Shading nach folgenden Regeln: 90°-80° = RGB (102/102/102) 79°-60° = RGB (153/153/153) 59°-30° = RGB (204/204/204) 29°-0° = RGB (255/255/255) |
![]() |
Ein Cartoon-Shader mit unterschiedlichen Verläufen: Der Farbverlauf des linken Schaders verläuft linear, der rechte Shader erzeugt harte Schattierungen. Die für den Comic-Look so typische Umrisslinie wird ähnlich berechnet. |
Für Konturlinien gibt es verschiedene Ansätze, die jeweils ihre eigenen Vor- und Nachteile haben. Einige generelle Varianten für Umrisslinien sind:
|
![]() |
(a) Outline Shading mit einem Cartoon-Shader (Ramp-Shader mit Sampler-Info) |
![]() |
(a) Outline Shading mit einem Cartoon-Shader (Sampler-Info) (b) Outline im Vektor-Renderer Ravix von electricrain gerendert |
Diese Methode eignet sich für einfache und runden/organische Objekte und ist in der Regel nicht besonders rechenintensiv. Dadurch ist diese Methode auch für Echtzeitanwendungen sinnvoll. Bei eckigen Objekten wie z.B. bei technischen Visualisierungen eignet sich der Vektor-Renderer, der jedoch wesentlich länger rendert.
Beispiel für Konturlinie durch Geometrie in Echtzeitanwendung: XIII
![]() |
(a) skaliertes Duplikat mit einem Lambert-Shader (b) skaliertes Duplikat mit invertierten Normalen (das Material bzw. Objekt ist auf einseitig bzw. single sided eingestellt) (c) skaliertes Duplikat mit lichtunabhängigem Material (d) originales Objekt (e) originales Objekt mit skaliertem Duplicat mit invertierten Normalen |
Vektor-Renderer wie Swift 3D oder Illustrate sind eigenständige Renderer. Diese können eine 3d-Szene wie ein Standard-Renderer rastern bzw. als Pixel-Grafik berechen. Zusätzlich kann die Szene auch in 2d-Vektoren zu Kurven und Flächen berechnet werden. 2d-Vektorformaten wie Adobe Illustrator, EPS-Daten oder Macromedia SWF sind mögliche Exportformate. Vektor-Renderer reduzieren den Farbraum der 3d-Szene auf ein, zwei oder mehrere Farben. Umrisslinien, Schatten, Glanzlichter und Reflexionen werden bei Bedarf berücksichtigt. Vektor-Renderer basieren auf dem Erkennen von Geometriekanten und eignen sich nicht für Rasterkanten, wie bei prozeduralen Texturen oder Bitmaps. Fällt die Wahl auf einen Vektor-Renderer, sollten keine Maps verwendet werden. Generell verursachen Rasterkanten besonders in Animationen unerwünschte Flackereffekte.
![]() |
(a) Vektor-Renderer: Konturlinie der Geometrie, ohne Füllfarbe, als 2d-Vektordatei (Adobe Illustrator) gerendert. |
Vektor-Renderer | Link |
Illustrate - Cell and illustration renderer | http://www.davidgoul.com |
Swift 3D - Cell and illustration renderer | electric rain |
Ravix - Cell and illustration renderer | electric rain |