Radiosity Modellierung:
In diesem Raum gibt es keine Lampe. Die Berechnungs-
zeit betrug ca. 30 Minuten, die Renderzeit 2 Sekunden.
Inhaltsverzeichnis
- Allgemeine Bemerkungen
- Kurzanleitung
- Ausführliche Anleitung
- Phase 1: Collect Meshes (Meshes einsammeln)
- Phase 2: Subdivision Grenzen
- Phase 3: Adaptive Subdividing (Angepasste Unterteilung)
- Phase 4: Die Lösung bearbeiten
- Links
Allgemeine Bemerkungen
Im vorigen Abschnitt haben wir gesehen, wie Radiosity als Rendering Methode benutzt werden
kann. Radiosity kann aber genausogut als Modellierungswerkzeug benutzt werden, um Vertexfarben
und Vertexlichter festzulegen. Das ist insbesondere nützlich, wenn die Modelle weiter
verfeinert werden sollen, oder man sie in der Game Engie einsetzen will.
Für Animationen ist das natürlich unschlagbar, weil die Radiositymodellierung genau einmal erfolgt,
und alle anderen Frames nicht neu berechnet werden müssen (sofern sich die Lichtquellen
nicht bewegen). Außerdem ermöglicht Radiosity Modelling im Gegensatz zum Rendern
das
Adaptive refinement. Sie müssen Radiosity Modellierung aber nicht einsetzen,
um Bilder mit Radiosity zu erstellen!
Die Vielzahl an Einstellungsmöglichkeiten für das Radiosity Modelling wirkt am Anfang
erschlagend. Damit erhält man aber eine gute Kontrolle über das Ergebnis. Die
Voreinstellungen sind für viele Fälle außerdem ausreichend, so dass man zunächst
versuchen sollte, die Kurzanleitung zu benutzen.
Es gibt einige wichtige Punkte, die man beim Radiosity Modelling beachten sollte:
- In Blender sind nur Meshes als Eingabe für das Radiosity Modelling erlaubt. Das
liegt daran, dass der Prozess Vertexfarben erstellt, also werden Vertices benötigt.
Subdivision Surfaces funktionieren ebenso nicht (sie können aber mit Alt-C
konvertiert werden).
- Jedes Face in einem Mesh wird zu einem Patch, also zu einem potentiellen
Energieabsorber oder Emitter.
Große Patches empfangen und senden mehr Energie als
kleine. Daher ist es wichtig, dass ein ausgewogenes Eingangsmodell nur Faces besitzt,
die groß genug sind.
Sehr kleine Faces werden fast nie genug Energie erhalten, um von
der progressive Refinement (fortschreitende Verfeinerung) Methode berücksichtigt
zu werden. Diese Methode wählt nur Patches mit großen Mengen an unverschossener
Energie aus. Im nächsten Abschnitt werden wir uns mit diesem Problem etwas genauer
auseinandersetzen und versuchen, eine Lösung zu finden.
Zur Klarstellung noch einige Ergänzungen:
- Der Radio-Button im Render-Panel bleibt nach der Radiositymodellierung aus!
- VCol Light in den Material-Buttons wird für die Lösung automatisch angeschaltet.
Man benötigt auch hinterher keine Lampen.
- Die Lösung besteht aus einem großen Objekt. Alle Einzelobjekte werden zu einem
verschmolzen.
- Größter Nachteil: Texturen gehen verloren, müssen hinterher also wieder
aufgebracht werden.
Nicht Mesh-Objekte
Nur Meshes bedeutet, dass Curves, Surfaces und Metaballs zu Meshes konvertiert werden
müssen (Alt-c) (sic!), bevor die Radiosity Lösung berechnet werden kann! Das ist beim
Radiosity Rendern nicht notwendig.
Kurzanleitung
Sie haben eine Szene erstellt, und beim Radiosity rendern ist auch etwas zu sehen. Nun wollen Sie mit
Radiosity modellieren.
- Speichern Sie ihre Datei unter einem neuen Namen.
- Stellen Sie Radio bei den Render-Buttons aus.
- Markieren Sie alle Objekte, die in die Radiosity-Lösung eingehen sollen (A bzw. A-A).
- Wechseln Sie in die Radiosity Buttons.
- Klicken Sie auf Collect Meshes.
- Klicken Sie auf GO.
- Klicken Sie einmal auf Element Filter und danach einmal auf Face Filter (beides optional).
- Klicken Sie einmal auf Replace Meshes.
- Rendern Sie jetzt (F12).
Jetzt kommen wir zur ausführlichen Erläuterung der Einstellungsmöglichkeiten.
Ausführliche Anleitung
Phase 1: Collect Meshes (Meshes einsammeln)
Alle ausgewählten –am besten mit A bzw. A-A alle Objekte auswählen– und sichtbaren
Meshes in der aktuellen Szene werden zu Patches konvertiert, wenn man den Collect
Meshes Button des Radio Tool Panels anklickt (Abbildung 7). Wollen Sie Radiosity-Licht
allerdings z.B. durch eine Fensterscheibe scheinen lassen, müssen Sie diese Scheibe von
Collect Meshes ausnehmen. Es erscheint ein neues Panel, Calculation. Blender befindet
sich jetzt im Radiosity Modellierungsmodus, andere Bearbeitungsfunktionen sind blokiert,
bis der Button Free Data gedrückt wird. Nachdem die Meshes eingesammelt wurden, werden
sie in einem Pseudo-Beleuchtungsmodus dargestellt, der sich deutlich von der sonst üblichen
Darstellung unterscheidet.
Das Radio Tool Panel (Abbildung 7) hat drei Radio Buttons: Wire, Solid, Gour. Das sind
drei Darstellungsmöglichkeiten im 3D-Fenster für die gesammelten Radiodaten, wobei
das Gouraud-Shading erst nach Berechnung der Lösung angezeigt werden kann. Diese drei
Buttons haben nichts mit der Darstellung im gerenderten Bild zu tun, sondern dienen
nur der Vorschau!
Abbildung 7:
Darstellungsmöglichkeiten im 3D-Fenster,
Gouraud-Shading eingeschaltet.
Phase 2: Subdivision Grenzen
Im Radio Tool Panel können einige Einstellungen vorgenommen werden, um die kleinst-
und größtmögliche Größe von Patches und Elementen einzustellen. ElMax, ElMin, PaMax
und PaMin geben jeweils die maximale und minimale Größe an. Die Einheit ist der
0,0001-te Teil (1/10.000) der Boundingbox der gesamten Szene. Für die voreingstellten
Größen 500 und 200 der Patches bedeutet dies z.B. 0,05 (=1/20tel) bzw. 0,02 (=1/50tel)
der Umgebung. Bei sehr großen oder sehr kleinen Umgebungen werden Sie diese Werte
vermutlich anpassen wollen, ebenso wenn die Größe der Faces in einem Mesh sehr
unterschiedlich ist und sehr kleine Faces vorhanden sind.
Limit Subdivide: (Limited Subdivide-begrenztes Unterteilen, nicht das
Unterteilen begrenzen) Klicken Sie auf diesen Button, werden die Patches unter
Berücksichtigung der Werte PaMax und PaMin unterteilt. Das passiert aber auch
automatisch, wenn sie auf GO klicken.
ShowLim: Diese Option zeigt die Grenzen der Patches und Elemente. Z rotiert diese Anzeige.
Empfehlung: Lassen Sie diese Einstellungen für den Anfang so, wie sie sind.
Phase 3: Adaptive Subdividing (Angepasste Unterteilung)
Nun erfolgen die letzten Einstellungen, bevor tatsächlich die Lösung berechnet wird.
Abbildung 9: Calculation Buttons
Schalten Sie zunächst den Wire Modus an, um die die Größe der Patches zu beurteilen!
MaxEl:
Die maximal erlaubte Anzahl an Elementen. Da Elemente in Blender automatisch unterteilt
werden, ist die Menge an benötigtem Speicher und die Dauer der Lösung stark abhängig
von dieser Einstellung. Als Daumenregel kann man sagen, dass 20.000 Elemente
ungefähr 10 MB Speicher benötigen. Bei sehr großen Szenen werden viele Elemente
benötigt, aber viele Elemente geben nicht automatisch bessere Ergebnisse.
Starten Sie erst einmal mit der voreingestellten Anzahl.
Max Subdiv Shoot:
Die maximale Anzahl an Shoot-Patches, die für das „adaptive Subdivision“ Verfahren
ausgewertet werden.
Subdiv Shoot Patch:
Es wird Lichtenergie in die Umgebung geschossen, und der resultierende Hemicube
Wert mit dem mathematisch korrekten Formfaktor verglichen. Dadurch kann
bestimmt werden, ob der Patch feiner unterteilt werden muss. Dadurch werden
die Patches kleiner, die Lösungszeit länger, aber das Ergebnis realistischer.
Die Anzahl der Patches steigt bei den voreingestellten Werten allerdings
nur wenig. Diese Funktion wird automatisch durchgeführt, wenn auf GO
geklickt wird.
Subdiv Shoot Element:
Wenn in einem Patch große Energieunterschiede festgestellt werden, also sich die
Elemente sehr stark unterscheiden, werden die Elemente in diesem Patch noch einmal
unterteilt. Jedesmal beim Aufruf dieser Funktion wird das Unterteilen nur einmal
durchgeführt. Das Ergebnis sind kleinere Elemente, allerdings mehr Aliasing
und eine längere Lösungszeit, aber eine größere Detailliertheit. Die
Anzahl der Elemente steigt bei den voreingestellten Werten aber nur wenig.
Diese Funktion wird automatisch durchgeführt, wenn auf GO geklickt wird.
SubSh Patch:
Wie oft die Funktion Subdiv Shoot Patch bei der Radiosity Berechnung aufgerufen wird.
SubSh Element: Wie oft die Funktion Subdiv Shoot Element bei der Radiosity
Berechnung aufgerufen wird.
Die optimalen Einstellungen finden
Die Auswirkungen der Funktionen Subdiv Shoot Patch und Subdiv Shoot Element können
sehr gut in der Gouraud-Vorschau beurteilt werden. Insbesondere die erste Funktion
kann stark zur Verbesserung des Ergebnisse beitragen.
Hemires, Convergence und Max Iterations im Radio Render Panel
sind aktiv und haben die gleiche Bedeutung wie beim Radiosity rendern.
GO:
Mit diesem Button startet man die Radiosity Berechnung. Jetzt werden folgende
Schritte durchgeführt:
- Limit Subdivide.
Zu große Patches werden unterteilt.
- Subdiv Shoot Patch.
Der Wert von SubSh Patch bestimmt, wie oft
die Subdiv Shoot Patch Funktion aufgerufen wird. Im Ergebnis werden die
Patches unterteilt.
- Subdiv Shoot Elem.
Der Wert von SubSh Element bestimmt, wie oft die
Subdiv Shoot Element Funktion aufgerufen wird. Im Ergebnis werden die
Elemente unterteilt.
- Subdivide Elements.
Wenn Elemente größer sind als die minimale
Größe (sic! Ich halte das für entweder einen Fehler in der Originaldokumentation,
oder die Namensgebung ist unlogisch.
--Soylentgreen
13:45, 12. Jun 2005 (UTC)),
werden sie unterteilt. Zu diesem Zeitpunkt wird der meiste Speicher angefordert.
- Solve.
Nun beginnt die „progresse refinement“ Methode. Am Mousepointer wird der
Iterationsschritt angezeigt. Die Methode läuft solange, bis die unverschossene
Energie kleiner ist als der Convergence Wert, oder die maximale Anzahl an
Iterationen erreicht wurde.
- Convert to faces.
Die Elemente werden in drei- oder viereckige Faces mit „anchored“
Edges konvertiert. Damit ist eine gute Gouraud Darstellung möglich.
Phase 4: Die Lösung bearbeiten
Nachdem die Radiositylösung berechnet wurde, müssen noch einige Dinge erledigt werden.
Element Filter:
Diese Funktion filtert die Elemente um Aliasing Artefakte zu entfernen
und die Schattengrenzen weichzuzeichnen. Farben benachbarter Elemente werden einander
angenähert. Das ist insbesondere für die RemoveDoubles Funktion nützlich. Das Netz
wird dadurch nicht verfeinert, es entstehen also keine neuen Vertices.
FaceFilter:
Elemente werden in Faces umgewandelt, damit sie dargestellt werden können.
Ein FaceFilter glättet die Faces, ohne die Elementwerte selbst zu verändern. Auch hier
wird das Netz nicht verfeinert, es enstehen also keine neuen Vertices. Der FaceFilter
sollte praktisch immer (in Maßen) angewendet werden.
FaceFilter undo:
Es gibt für den FaceFilter eine einfache „Undo“ Möglichkeit. Einmal den
Mult-Faktor erhöhen und wieder erniedrigen setzt den FaceFilter zurück.
RemoveDoubles:
Wenn die Farben zweier benachbarter Elemente weniger voneinander abweichen als
im Lim-Feld eingestellt ist, werden die Elemente vereinigt. Der Lim-Wert ist in 8-bit
Auflösung ausgeführt, erlaubt also eine Einstellung von 0-255.
Mult:, Gamma:
Diese Einstellungen haben die gleiche Bedeutung wie beim Radiosity rendern.
Add New Meshes:
Die Faces der dargestellten Radiosity Lösung werden in Mesh-Objekte mit
Vertexfarben konvertiert. Sie erhalten ein Material, welches das sofortige
Rendern erlaubt (VCol Light angeschaltet). Die Eingabe Meshes bleiben unverändert.
Replace Meshes:
So wie gerade, die Eingabe Meshes werden allerdings gelöscht
Free Radio Data:
Alle Patches, Elemente und Faces werden gelöscht. Diese Aktion müssen Sie immer
durchführen, um zum normalen Bearbeiten zurückkehren zu können.
Im nächsten Abschnitt werden wir uns einige Beispiele für die verschiedenen
Einstellungsmöglichkeiten anschauen, außerdem ein problematisches Mesh bearbeiten.