08
Nov

Was ist ein Renderer oder Rendering?

Was ist ein Renderer?

Die wörtliche Übersetzung des Wortes “rendering” lautet “Bildsynthese”. In diesem Fall handelt es sich um eine dreidimensionale Szene in einem statischen Bild oder eine Abfolge von Einzelbildern (sequenzielle Einzelbilder, eine Art der Erhaltung einer Reihe von aufeinanderfolgenden Einzelbildern in Bezug auf die Wiedergabe von Animationen). In Programmen zur Erstellung von 3D-Inhalten (z. B. 3ds max, cinema4d, sketch up usw.) erfolgt das Rendern von Szenen mithilfe mathematischer Berechnungen. Rendering – bzw. dieses Bild wird durch mathematische Berechnungen auf dem PC erstellt.

Was ist Rendering?

Rendering (oder Bildsynthese) ist eines der wichtigsten Unterthemen der 3D-Computergrafik und in der Praxis immer mit dem Rest der Grafikindustrie verbunden. In der “Grafik-Pipeline” ist es der letzte wichtige Schritt, der die endgültige Form jeder 3D-Szene gibt. Mit der zunehmenden Nachfrage nach Computergrafiken seit den 1970er Jahren hat sich das Fachgebiet immer stärker profiliert.

Anwendungsbereich

Scene Rendering wird eingesetzt in: Computer-Videospielen, Simulationen, Filmen, Werbespots, TV-Spezialeffekten und architektonischer 3D-Visualisierung. Jeder Bereich verwendet ein anderes Gleichgewicht von Merkmalen und Rendering-Methoden. Betrachten Sie einige Beispiele für die Anwendung von Rendering im Detail:

In diesem Werbespot hat der Hersteller die reale Packung Chips durch ein 3D-Modell ersetzt, dem ein Rendering folgt. Dies sparte viel Zeit bei der Produktion des Werbespots für verschiedene Märkte. Da eine Chips-Packung in jedem Land anders aussieht, ist es nicht nötig, Hunderte von Aufnahmen mit verschiedenen Variationen der Packung zu erstellen. Eine Aufzeichnung reicht aus, und das Paket kann nun nach Belieben zusammengestellt werden.

Alles und jeder kann jetzt auf dem Fernsehbildschirm Wirklichkeit werden. Es werden keine Modelle, Mannequins, Perücken oder Make-up benötigt. Ein 3D-Modell mit anschließendem Rendering spart Zeit und Geld bei der Produktion von Spezialeffekten.

Hersteller von Möbeln, Leuchten, Geräten usw. müssen nicht mehr für teure Fotostudios bezahlen, um ihre Produkte optimal zu präsentieren. In wenigen Tagen und zu wesentlich geringeren Kosten kann dies im 3D-Visualisierungsstudio geschehen.

Rendering-Systeme

Rendering-Systeme, das von 3D-Bearbeitern für das Rendering (Wiedergabe) der Visualisierung verwendet wird, können in das Programm eingebunden oder als externe Plug-ins (separat installiert) verwendet werden. Meistens haben externe Rendering-Systeme eine bessere Visualisierungsqualität als eingebundene, weil sie nicht von der Entwicklung des 3D-Programms abhängen und das Entwicklungsteam nur an der Verbesserung seines Produkts arbeitet, ohne die Arbeit mit dem 3D-Programm zu stören. Die Teams, die die externen Renderer entwickeln, haben mehr Zeit und Ressourcen, um ihr Produkt zum Besten auf dem Markt zu gestalten. Doch im Gegensatz zu den eingebauten Rendering-Systemen müssen sie dafür meist extra bezahlen.

Intern ist ein Renderer ein sorgfältig ausgearbeitetes Programm, das auf einer ausgewählten Mischung von Disziplinen aus den Bereichen Lichtphysik, visuelle Wahrnehmung, Mathematik und Softwareentwicklung basiert.

Bei 3D-Grafiken kann das Rendering entweder als Pre-Rendering oder als Echtzeit-Rendering erfolgen.

Pre-Rendering ist eine Rendering-Technik, die in Umgebungen eingesetzt wird, in denen die Geschwindigkeit keine Rolle spielt und die Bildberechnung mit Multi-Core-CPUs und nicht mit dedizierter Grafikhardware durchgeführt wird. Diese Rendering-Technik wird vor allem in der Architektur Visualisierung und bei visuellen Effekten eingesetzt, wo der Fotorealismus am höchsten sein muss.

Echtzeit-Rendering: Eine herausragende Rendering-Technik, die in interaktiven Grafiken und Spielen eingesetzt wird, bei denen die Bilder in hohem Tempo erstellt werden müssen. Da die Benutzerinteraktion in solchen Umgebungen hoch ist, ist eine Bilderstellung in Echtzeit erforderlich. Dedizierte Grafikhardware und die Vorkompilierung verfügbarer Informationen haben die Echtzeit-Renderingleistung mittlerweile verbessert.

Rendering in der 3D Architektur Visualisierung

Die bekanntesten und hochwertigsten Systeme für architektonische 3d-Visualisierung sind Vray und Corona Renderer. Beide Systeme gehören demselben Entwickler, der Chaos Group (Bulgarien).

Vray wurde im Jahr 2000 veröffentlicht und hat sich in vielen Bereichen der Visualisierung bewährt, da es flexibel ist und eine breite Palette von Werkzeugen bietet, die in den Arbeitsablauf verschiedener Studios integriert werden können, sei es in Animations- oder Architekturbüros.

Die wichtigsten Vorteile von V-Ray sind:

  1. Unterstützt Netzwerk-Rendering durch mehrere Computer.
  2. sehr große Auswahl an Optionen für verschiedene Aufgaben im Zusammenhang mit dreidimensionalen Grafiken.
  3. eine große Anzahl von Materialien.
  4. Unterstützt eine große Anzahl von Pässen für das Compositing von Bildern und Videos.

Der Corona Renderer ist ein externer fotorealistischer Hochleistungsrenderer, der für Autodesk 3ds Max und MAXON Cinema 4D verfügbar ist. Die Entwicklung von Corona Renderer begann im Jahr 2009 als studentisches Einzelprojekt von Ondřej Kárlyk an der Tschechischen Technischen Universität in Prag. Inzwischen hat sich Corona zu einem kommerziellen Vollzeitprojekt entwickelt, nachdem Ondřej das Unternehmen zusammen mit dem ehemaligen Computergrafiker Adam Hotový und Jaroslav Krživanek, einem Professor und Forscher an der Karls-Universität in Prag, gegründet hat. Im August 2017 wurde das Unternehmen Teil der Chaos Group, was weitere Expansion und Wachstum ermöglicht. Trotz seines jungen Alters hat sich der Corona Renderer zu einem sehr wettbewerbsfähigen Renderer entwickelt, der qualitativ hochwertige Ergebnisse liefern kann. Der Hauptvorteil des Corona Renderers ist das sehr realistische Rendering mit einfachen Systemeinstellungen ermöglicht. Es eignet sich hervorragend für Anfänger, die vor einfachen Aufgaben stehen.

Rendergeschwindigkeit

Der Systemrenderer benötigt, wenn er wie alle anderen auf Ihrem Computer installierten Programme läuft, bestimmte Ressourcen Ihres PCs, um das Bild zu rendern. Grundsätzlich sind dafür CPU-Leistung und eine gewisse Menge an RAM erforderlich. Ein solches Rendering-System wird als CPU bezeichnet. Es gibt auch GPUs, das ist ein Rendering-System, das Bilder über die Grafikkarte rendert. Vray kann zum Beispiel sowohl auf der CPU als auch auf der GPU rendern.

Die Rendering-Zeit hängt von einigen grundlegenden Faktoren ab: Komplexität der Szene, Anzahl der Lichtquellen, Vorhandensein von hochpolygonalen Modellen, transparenten oder reflektierenden Materialien.

Das Rendering erfordert also mehr Rechenleistung. Ein gewöhnlicher Büro-PC ist für diese Aufgabe nicht geeignet. Wenn Sie rendern wollen, brauchen Sie einen speziellen Computer, damit dieser Prozess schnell ist. Alle Rendering-Systeme haben unterschiedliche Einstellungen, mal mehr, mal weniger. Sie können geändert werden, um ein Bild schneller zu erhalten, müssen aber an der Qualität leiden.

Die beste Möglichkeit, die Renderingzeit zu verkürzen, ist die Verwendung von Netzwerk-Rendering oder einer Renderfarm im Internet. Es ist möglich, das Rendering über LAN oder das Internet auf verschiedene Computer zu verteilen. Dazu müssen alle am Prozess beteiligten Computer über die gleiche Software für das Rendering, den gleichen 3D-Editor und die gleichen Plugins verfügen wie der Hauptrechner, auf dem der Renderer läuft.

Geschichte und Grundlagen der rechnergestützten Renderingverfahren

Im Laufe der Jahre haben die Entwickler viele Rendering-Algorithmen untersucht. Die für das Rendering verwendete Software kann eine Reihe verschiedener Methoden verwenden, um ein endgültiges Bild zu erzeugen. Das Verfolgen und Rendern jedes einzelnen Lichtstrahls in einer Szene wäre unpraktisch und zeitaufwändig. Selbst das Verfolgen und Rendern eines Bruchteils der Lichtstrahlen ist eine Menge Arbeit und würde zu lange dauern, es sei denn, die Samples (ein Sample ist das Rendering eines einzelnen Lichtstrahls) wurden intelligent begrenzt.

So haben sich vier “Familien” effizienterer Modellierungstechniken für den Lichttransport herausgebildet: Rasterisierung, einschließlich Scanline-Rendering, betrachtet Objekte in der Szene und projiziert sie zu einem Bild, ohne die Möglichkeit, einen perspektivischen Effekt zu erzeugen; Ray Casting behandelt die Szene so, wie sie aus einer bestimmten Perspektive betrachtet wird, wobei das beobachtete Bild nur auf der Grundlage der Geometrie und grundlegender optischer Gesetze der Reflexionsintensität berechnet wird und möglicherweise Monte-Carlo-Techniken zur Reduzierung von Artefakten eingesetzt werden. Moderne Software kombiniert zwei oder mehr Lichtberechnungsmethoden, um in angemessener Zeit gute Ergebnisse zu erzielen.

Scanline-Rendering und Rasterung

Eine übergeordnete Darstellung eines Bildes enthält notwendigerweise andere Elemente als Pixel. Diese werden als Primitive bezeichnet. In einer schematischen Zeichnung können z. B. Liniensegmente und Kurven Primitive sein. In einer grafischen Benutzeroberfläche können Fenster und Schaltflächen Primitive sein. Beim 3D-Rendering können Dreiecke und Polygone im Raum Primitive sein.

Wenn ein Pixel-für-Pixel-Rendering unpraktisch oder zu langsam für eine Aufgabe ist, kann ein Primitiv-für-Primitiv-Rendering sinnvoll sein. Hier schaut sich jeder die einzelnen Primitive an, bestimmt, welche Pixel des Bildes davon betroffen sind, und ändert diese Pixel entsprechend ab. Dies wird als Rasterung bezeichnet und ist die Rendering-Methode, die von allen modernen Grafikkarten verwendet wird.

Die Rasterisierung ist oft schneller als das Pixel-für-Pixel-Rendering. Erstens können große Bereiche des Bildes frei von Primitiven sein; bei der Rasterung werden diese Bereiche ignoriert, und das Pixel-für-Pixel-Rendering muss über sie hinweggehen. Zweitens kann die Rasterisierung die Cache-Kohärenz verbessern und die Redundanz verringern, indem die Tatsache ausgenutzt wird, dass die von einem einzigen Primitiv belegten Pixel im Bild in der Regel nebeneinander liegen. Aus diesen Gründen ist die Rasterung in der Regel die richtige Wahl, wenn ein interaktives Rendering erforderlich ist. Der Pixel-für-Pixel-Ansatz erzeugt jedoch häufig qualitativ hochwertigere Bilder und ist vielseitiger, da er nicht von so vielen Annahmen über das Bild abhängig ist wie die Rasterung.

Es gibt zwei grundlegende Formen der Rasterisierung: Zum einen wird die gesamte Fläche (Primitiv) gerendert, zum anderen werden alle Scheitelpunkte der Fläche gerendert und die Pixel zwischen den Scheitelpunkten durch einfaches Überblenden der Farben der einzelnen Scheitelpunkte mit den nächsten gerendert. Diese Version der Rasterung hat die alte Methode überholt, da sie die Grafik ohne komplexe Texturen fließen lässt. Das bedeutet, dass Sie die komplexeren Schattierungsfunktionen Ihrer Grafikkarte nutzen können und trotzdem eine bessere Leistung erzielen, weil Sie Speicherplatz auf Ihrer Karte freigeben, da keine komplexen Texturen benötigt werden. Manchmal wird eine Methode der Rasterung für einige Flächen und eine andere Methode für andere Flächen verwendet, die auf dem Winkel basiert, in dem diese Fläche auf die anderen verbundenen Flächen trifft; dies kann die Geschwindigkeit erhöhen und die Gesamtwirkung der Bilder nicht geringfügig verringern

Ray Casting

Ray Casting wird vor allem für Echtzeitsimulationen eingesetzt, wie sie in 3D-Computerspielen und Zeichentrickfilmen verwendet werden, wo Details nicht wichtig sind oder wo es effizienter ist, Details manuell zu fälschen, um eine bessere Leistung in der Berechnungsphase zu erzielen. Dies ist normalerweise der Fall, wenn eine große Anzahl von Bildern animiert werden muss. Die Ergebnisse haben ein charakteristisches “flaches” Aussehen, bei dem keine zusätzlichen Techniken verwendet werden, als ob alle Objekte in der Szene mit einem matten Finish gemalt oder leicht geschliffen wären.

Die zu modellierende Geometrie wird Pixel für Pixel, Zeile für Zeile aus der Außenperspektive analysiert, so als ob die Strahlen aus dem Blickwinkel geworfen würden. Wenn sich ein Objekt überschneidet, kann der Farbwert an einem Punkt mit verschiedenen Methoden geschätzt werden. Im einfachsten Fall wird der Farbwert eines Objekts an einem Schnittpunkt zum Wert des betreffenden Pixels. Die Farbe kann anhand einer Texturkarte bestimmt werden. Eine komplexere Methode besteht darin, den Farbwert anhand des Beleuchtungsfaktors zu ändern, ohne jedoch das Verhältnis zur simulierten Lichtquelle zu berechnen. Um Artefakte zu reduzieren, kann die Anzahl der Strahlen in leicht unterschiedlichen Richtungen gemittelt werden.

Zusätzlich kann eine grobe Simulation der optischen Eigenschaften verwendet werden: in der Regel eine sehr einfache Strahlenberechnung vom Objekt zum Blickpunkt. Eine weitere Berechnung wird für den Einfallswinkel der Lichtstrahlen von der/den Lichtquelle(n) durchgeführt. Und aus diesen und den angegebenen Intensitäten der Lichtquellen wird der Pixelwert berechnet. Oder Sie können eine Beleuchtung verwenden, die mit dem Radiosity-Algorithmus erstellt wurde. Oder eine Kombination aus beidem.

Radiosity

Radiosity ist eine Technik, mit der versucht wird, die Art und Weise zu simulieren, in der reflektiertes Licht nicht nur von einer anderen Oberfläche reflektiert wird, sondern auch den Bereich um sie herum beleuchtet. Dies sorgt für realistischere Schattierungen und scheint die “Atmosphäre” der Innenraumszene besser wiederzugeben. Ein klassisches Beispiel ist die Art und Weise, wie sich Schatten in die Ecken von Räumen ” legen”.

Die optische Grundlage der Simulation besteht darin, dass ein Teil des diffusen Lichts von einem bestimmten Punkt auf einer bestimmten Oberfläche in ein breites Spektrum von Richtungen reflektiert wird und den Bereich um ihn herum beleuchtet.

Die Simulationstechnik kann unterschiedlich komplex sein. Viele Bilder haben eine sehr grobe Radiosity-Schätzung, bei der einfach die gesamte Szene mit einem Faktor, der als Umgebung bekannt ist, leicht beleuchtet wird. Wenn jedoch eine erweiterte Radiosity-Schätzung mit einem hochwertigen Raytracing-Algorithmus kombiniert wird, können Bilder einen überzeugenden Realismus aufweisen, insbesondere bei Innenraumszenen.

In einer fortgeschrittenen Radiosity-Simulation verfolgen rekursive Finite-Elemente-Algorithmen das Licht zwischen den Oberflächen des Modells hin und her, bis eine bestimmte Grenze der Rekursion erreicht ist. So wirkt sich die Färbung einer Fläche auf die Färbung einer benachbarten Fläche aus und umgekehrt. Die sich daraus ergebenden Helligkeitswerte für das gesamte Modell (manchmal einschließlich der Leerräume) werden gespeichert und als zusätzliche Eingabe bei der Durchführung von Berechnungen in einem Strahlenleit- oder Strahlenverfolgungsmodell verwendet.

Aufgrund des iterativen/rekursiven Charakters der Technik lassen sich komplexe Objekte besonders langsam nachbilden. Erweiterte Radiosity-Berechnungen können für die Berechnung von Raumatmosphären reserviert werden, die sich aus der Reflexion von Licht an Wänden, Böden und Decken ergeben, ohne dass der Beitrag komplexer Objekte zur Radiosity untersucht wird, oder komplexe Objekte können in der Radiosity-Berechnung durch einfachere Objekte ähnlicher Größe und Textur ersetzt werden.

Bei einer geringfügigen Umgruppierung von Radiosity-Objekten in einer Szene können dieselben Radiosity-Daten für eine Reihe von Frames wiederverwendet werden, was Radiosity zu einer effektiven Möglichkeit macht, die Raycast-Flachheit zu verbessern, ohne die Gesamtrenderingzeit pro Frame stark zu beeinträchtigen. Aus diesem Grund hat sich Radiosity zur führenden Echtzeit-Rendering-Methode entwickelt und wurde für den Start und die Erstellung zahlreicher bekannter aktueller 3D-Zeichentrickfilme in voller Länge verwendet.

Raytracing

Raytracing ist eine Erweiterung der Technologien, die mit Scanline und Raycasting entwickelt wurden. Wie diese kann es komplexe Objekte gut handhaben, und die Objekte können mathematisch beschrieben werden. Im Gegensatz zu Scanline und Ray-Casting ist Ray-Tracing fast immer eine Monte-Carlo-Methode, die auf der Mittelung der Anzahl zufällig erzeugter Stichproben eines Modells beruht. In diesem Fall handelt es sich bei den Proben um imaginäre Lichtstrahlen, die den Blickpunkt von Objekten in der Szene kreuzen. Dies ist vor allem dann nützlich, wenn komplexe und genaue Schattenwiedergabe, Brechung oder Reflexion ein Ziel sind.

Bei einem qualitativ hochwertigen Rendering mit Raytracing werden in der Regel für jedes Pixel mehrere Strahlen aufgenommen und nicht nur bis zum ersten sich kreuzenden Objekt verfolgt, sondern durch eine Reihe von aufeinanderfolgenden “Abprallern”, wobei bekannte Gesetze der Optik wie “Einfallswinkel gleich Reflexionswinkel” und fortgeschrittene Gesetze in Bezug auf Brechung und Oberflächenrauhigkeit angewendet werden.

Sobald der Strahl entweder mit der Lichtquelle kollidiert oder, was wahrscheinlicher ist, nach einer bestimmten Anzahl von Abprallvorgängen, wird die Oberflächenbeleuchtung an diesem Endpunkt mit den oben beschriebenen Methoden geschätzt und die Änderungen entlang des Weges durch die verschiedenen Abprallvorgänge werden ausgewertet, um den vom Standpunkt aus beobachtbaren Wert zu schätzen. Dies wird für jede Probe, für jedes Pixel wiederholt.

In manchen Fällen wird an jedem Schnittpunkt mehr als eine Strahlenbahn erstellt.

Als Brute-Force-Methode war das Raytracing zu langsam, um in Echtzeit angezeigt zu werden, und bis vor kurzem war es sogar zu langsam, um kurze Filme in beliebiger Qualität wiederzugeben. Es wurde jedoch für Spezialeffekte und in der Werbung verwendet, wo ein kurzer Schnitt mit hochwertigem (vielleicht sogar fotorealistischem) Material erforderlich ist.

Optimierungsbemühungen zur Verringerung des Berechnungsaufwands für Teile eines Auftrags, die nur wenige Details enthalten oder nicht von Raytracing-Funktionen abhängig sind, haben jedoch zu einer realistischen Möglichkeit einer breiteren Nutzung von Raytracing geführt. Zumindest in der Prototyp-Entwicklungsphase gibt es jetzt einige hardwarebeschleunigte Raytracing-Lösungen, und einige Spieledemos zeigen die Verwendung von Software- oder Hardware-Raytracing in Echtzeit.

Ein paar interessante Fakten zum Thema Rendering

So wurde beispielsweise James Camerons Avatar auf 34 HP Racks mit 32 HP BL2x220c Blades mit jeweils 40 000 Prozessorkernen und 104 TB RAM gerendert. Bei dieser Leistung dauerte es etwa 50 Stunden pro Bild. Und das bekannte Animationsunternehmen Pixar, das Zeichentrickfilme wie “Wally” und “Cars” produziert hat, hat ein eigenes Rendering-System für seine Projekte entwickelt, das Pixars RenderMan heißt. Dieser Renderer zielt darauf ab, die komplexen Animationseffekte wie Wasser, Wolken, Wolle, Haare und andere Dinge schnell zu berechnen.

Fazit

Rendering-Systeme werden jeden Tag in immer mehr Bereichen eingesetzt. Für Filme, Cartoons, Architektur, Werbung, Industrie, Automobil und viele andere. Wenn Sie also irgendwo ein statisches Bild oder eine Animation sehen, ist es durchaus möglich, dass dies das Ergebnis des Renderings ist.