Programme:
Alle 3D Programme mit in-/ externer Rendermaschine
Im Zusammenhang mit meinem Modo Test poste ich dieses Thema
hier,
weil es allgemein gültig ist und in dem anderen Beitrag den Rahmen sprengen würde.
3D Licht / Verständnis
Viele Render mit dem Potential wirklich gut zu sein, scheitern am mangelnden Verständnis für Licht.
Das geht meist damit los, dass derjenige nicht mal weiß, dass mit Licht in 3D alles steht und fällt. Wirklich alles.
Hier der Versuch einer kurzen und vereinfachten Erklärung für interessierte 3D
Neueinsteiger.
Diese beiden Aussagen mögen provokant erscheinen, sind aber wahr:
Was ist Licht? Alles
Wie viele Lichter gibt es? Eines
Zunächst aber, decken wir mal eine Lüge auf.
Der 3D View
(Bearbeitungsraum) in unseren Programmen müsste eigentlich so aussehen. Ich meine die schwarze Fläche
Was wir in unseren 3D Programmen im 3D Fenster täglich sehen
ist nämlich eine Mogelpackung
Auch aus Sicht der virtuellen Welt, die ja
an sich schon gemogelt ist, weil eben nicht real. Denn im 3D View gibt und kann
es auch kein Licht geben.
Damit wir aber irgendwie arbeiten können, erzeugt das 3D Programm ein Fake Bild im View. Sowas in der Art...
"Echtes" Licht hingegen schickt erst die
Rendermaschine in unsere Szene und macht damit die Objekte im 3D Raum (Render
View) "tatsächlich" sichtbar.
Sie erst zeigt uns die Wahrheit. Schon erkennbar am besseren Aussehen, gegenüber dem Stümper Bild aus dem 3D View.
Licht / Shader
Die Renderengine in unserer 3D Welt ist eine Lichtmaschine. Insofern sind Material (Shader/Texturen) und deren Bearbeitung auch korrekter Weise in der Renderengine anzusiedeln. Warum? Kaum einer denkt daran, aber die Welt die wir zu sehen meinen sind nur Lichtstrahlen, welche von den Objekten um uns herum (Emissionen ausgenommen) reflektiert werden, am Ende auf unsere Netzhaut treffen und in unseren Gehirnen zu einem Bild verarbeitet werden. Im 3D Raum genauso wie in der Realität. Versehen wir also die Objektoberflächen im Raum nicht mit Materialien, sieht es im Render View so aus.
Und das auch nur, weil unser 3D Programm erstmal pauschal auf alles im Raum ein Basismaterial legt. Ansonsten wäre hier nämlich wieder nichts zu sehen.
Ohne Textur (Material), kann kein Licht reflektiert werden, und wenn kein Licht reflektiert wird, dann ist da auch nichts. Ganz egal wie viele Objekte sich angeblich im Raum befinden. 3D Objekte an sich sind nur Koordinaten. Wir hätte wieder einen schwarzen View vor uns, wie im foögenden Bild. Es ist dieselbe Szene mit allen Objekten und volle Pulle Licht. Aber den Basis Shader habe ich entfernt und damit die Objekt Oberflächeneigenschaften. Ergebnis...
Manche Rendermaschinen sind so schlau und verweigern dann gleich den Dienst, denn ihr Licht würde in einem unendlichen leeren Raum sinnlos verpuffen.
"Hier gibt es nichts zu
tun?! Na dann kannst Du mich mal!"
Material und Licht also. Fehlt nur eines von beidem, sehen
wir nichts, nur schicke Schwärze im View.
Reflektiertes Licht hingegen ermöglicht es uns zum Beispiel Rost von Gold zu unterscheiden. Verantwortlich für die unterschiedlich "aussehenden" Lichtstrahlen (Reflektionen) sind die Oberflächenbeschaffenheiten der jeweiligen Objekte, oder auf 3D Deutsch: die Shader (Texturen usw.) "Deine Shader sind völlig verstellt" wäre vielleicht eine weniger demoralisierende Alternative zum Klassiker "Du siehst echt Scheiße aus".
Ohne jetzt auf die verschiedenen Methoden der Lichtberechnung in Rendermaschinen einzugehen (Ihr könnt mit Begriffen wie Radiosity, Monte Carlo, Raytracing oder Pathtracer aber auf jeden Fall immer Eindruck machen) ist es hilfreich zu wissen, die Rendermaschine "sieht" nur Shader (Material). Sie sieht keine 3D Objekte. Die sieht niemand in der 3D Welt. Guckst Du oben. Denn 3D Objekte als solche sind nur Koordinaten und Winkelangaben.
Wir könnten sogar diskutieren ob es 3D überhaupt gibt. Denn
wo und was sehen wir denn? Richtig, ein Bild auf einem Bildschirm, also 2D. Das war es schon immer.
Selbst ein VR (Virtual Reality) Set auf unserem
Kopf ist 2D. Kleine Bildschirme vor unseren Augen. Aber bleiben wir beim Thema...
PB Rendering / PB Material
Der grundlegende Unterschied der heutigen, modernen PB
(physically based) Rendermaschinen gegenüber den alten Raytracern wie 3Dlight ist,
dass die Lichtstrahlenberechnung weitestgehend auf unseren realen
physikalischen Grundgesetzen beruht. Man spricht hier auch gerne von
Lichtsimulationen.
Das fängt beim Energie Erhaltungssatz an und hört bei
Begriffen wie Kaustik und Fresnel noch lange nicht auf. Licht wird nicht mehr wie früher
üblich zurechtgebastelt, sondern einfach simuliert. Vorausgesetzt die verwendeten
Materialien sind ebenfalls PB. Damit sind dann Sachen wie globale Beleuchtung, korrekte Abschattungen, Lichtbrechungen, Emissionen und andere schöne Dinge
möglich, die herkömmliche Rendermaschinen einfach nicht konnten. Man musste
tricksen um einen halbwegs ähnlichen Bildeffekt nachzubilden, wie zum Beispiel
Glanzpunkte auf Oberflächen malen (Glossiness) und vieles mehr. Das war meist eine Schweine Arbeit. Die notwendigen Einstellunge heute sind dagegen Kinderkram und ermöglichen im Gegenzug, die gewonnene Zeit in Krativität zu stecken.
Denn endlich gibt es nur noch ein Licht. Ein physikalisch korrektes Licht. Lichtstrahlen sind Lichtstrahlen, die sich lediglich durch ihre
Stärke (Frequenz) und Farbe (Wellenlänge) unterscheiden. Aber es ist immer
nur Licht. Wie in der Realität auch. PB Rendering gibt uns alles in die Hand um auch die trickreichste (Licht-/Farben-) Situation abzubilden. Die
Rendermaschine erzeugt korrektes Licht und verwandelt auf Wunsch jedes Objekt im
Raum ebenfalls in eine korrekte Lichtquelle (Emission/Emitter). Was eine unkorrekte Lichtquelle ist? Zum Beispiel ein Punkt Licht, oder auch paralleles Licht. Beide Lichter haben keine Dimension. Pointlights haben die Dimension Null und paralleles Licht die Dimension unendlich. Beides ist physikalisch unmöglich.
Und da Farben ebenfalls Licht sind (alles ist Licht) ist das Thema Licht, wie CGI Profis und Fotografen schon immer behauptet haben, das einzige, was mich im Zusammenhang mit guten Bild- bzw. Renderergebnissen wirklich zu interessieren hat. Mit ihm steht und fällt alles. Da mögen die Szenengestaltung und die enthaltenen 3D Objekte noch so toll sein.
So entsteht (sehr stark vereinfacht) in der Rendermaschien das "beleuchtete" Bild, der sogenannte Final Render
oder das Bild im Echtzeit Render View, während wir noch an unserer Szene arbeiten:
1. Die Renderengine sendet (Standard Einstellung) Millionen bis Milliarden von weißen Lichtstrahlen in den 3D Raum.
2. die Lichtstrahlen treffen auf Oberflächen und werden, je nach Materialeigenschaft in veränderter Stärke, Farbe und Laufrichtung weitergeleitet oder geschluckt.
3. die Lichtstrahlen springen solange wie Ping Pong Bälle durch die Szene - und verändern dabei ständig ihr Aussehen - bis sie irgendwann vollständig absorbiert oder in der Unendlichkeit verschwunden sind. Meist werden diese Berechnungen aber (je nach programmspezifischen Render Algorithmen) lange vorher abgebrochen.
4. haben wir am Ende das finalisierte Renderbild auf dem Bildschirm, dessen Gegenstück in der realen Welt unserAuge bzw. die Netzhaut wäre.
...und für diejenigen, die das Licht Ihrer Rendermaschine noch besser verstehen und anwenden(!) wollen,
kann ich dann noch einen Beitrag empfehlen. Denn über die eigentliche Qualität des Lichts in einer PB Rendermaschine,
habe ich hier ja noch gar nicht gesprochen. Eine PB Rendermaschine arbeitet im linearen Raum, sie arbeitet mit linearem Licht und Farben.
Damit kann sie Licht simulieren welches der Leistungsfähigkeit unserer Augen entspricht,
Woraus folgt: alles wird hochrealistisch. Wenn ich weiß wie. Das Thema lautet: HDR
...und zurück zum Modo Beitrag:
Genau die oben genannte Lichtverlaufsfolge zeigt auch der Modo
Shading Tree, von unten nach oben gelesen:
Licht => Objekt bzw. Materialzone => Shader => Render Output.