Einfügen eines CG Objektes in ein Foto

1. Schritt:
Als erstes wird das Foto benötigt. Da Blickwinkel, Licht und Scenesetup sich nach dem Foto richten sollte man beim Fotografieren ein paar Sachen beachten. Meist ist es günstig mehrere Fotos zu machen, oft übersieht man etwas oder der Blickwinkel ist nicht so gelungen. Dafür ist es günstig auch unterschiedliche Belichtungen zu probieren. Für dieses Beispiel wurde eine Canon G2 Digitalkamera verwendet und die Bilder im 16 Bit Raw Modus gespeichert. Wichtig ist auch sich einige Abstände zu notieren da diese für die CG Szene gebraucht werden.
scene01 scene02 scene03 scene04 scene05


2. Schritt:
Das Erstellen des HDR Bildes für die Beleuchtung. Es gibt verschiedene Wege um zu dem HDR zu gelangen. Generell wird eine Kamera benötigt bei der die Belichtungszeit/Blende manuell eingestellt werden können.
In unserem Beispiel wird eine spiegelnde Kugel verwendet. Das Verfahren hat ein paar kleine Nachteile, eignet sich allerdings für Compositing ganz gut da Makropanoramas recht schwierig sind und generell Panoramas erst zusammengesetzt werden müssen. Der Vorteil bei Panorama HDR's ist die extreme Auflösung und man hat nicht das Problem die Kamera retuschieren zu müssen.
Bei der verspiegelten Kugel gibt es wieder ein paar Dinge zu berücksichtigen. Auf den folgenden Bildern sieht man zum Beispiel den Schatten der Kamera. Fällt dieser auf relevante Bereiche unseres eigentlichen Fotos muss die Position der Kamera verändert werden. Die Kugel sollte möglichst nahe an dem Objekt positioniert werden was unmittelbar mit dem CG Objekt Kontakt hat. Dafür wurde in diesem Beispiel eine kleinere Kugel verwendet da sonst zuviel verdeckt wird oder die Kugel zuviel Schatten wirft. Um unnötigen Aufwand zu vermeiden und vorallem um die Rechenzeit erträglich zu gestalten sollte man das HDR nicht grösser machen als unbedingt nötig. Zur Beleuchtung reichen im Lightwave schon HDR's mit einer Auflösung grösser 500x500 aus. Sollen allerdings detailierte Reflexionen im CG Model zu sehen sein muss das HDR schon grösser werden. Im Normalfall reichen 6-10 Bilder aus, wichtig ist nur ein richtig dunkles und ein recht helles Bild zu machen.
hdrthumbs
Bei vielen Digitalkameras ist ein Problem bei überbelichteten Bildern zu beobachten. Meistens stimmen die Farben nicht mehr und die hellen Bereiche laufen in die dunklen Bereiche über. Diese Bilder sollten nicht verwendet werden weil sonst mit Farbstich oder Rauschen beim Rendern zu rechnen ist. Als nächster Schritt müssen die Bilder zugeschnitten werden. Um viele Bilder zuzuschneiden ist es sinnvoll ein Programm zu verwenden, dass mehrere Bilder importieren und gleichzeitig zuschneiden kann. Dafür bestens geeignet ist Aura oder Aura 2 von Newtek. Da alle Bilder in einem Layer liegen kann schnell kontrolliert werden, ob beim Fotografieren gewackelt wurde und wenn ja ist das schnell korrigiert.
mirrorball02 mirrorball03
Bei der Verwendung des Plugins Image World im Lightwave ist zu beachten, dass hier Fischaugenbilder (Fisheye) benötigt werden. Da wir dieses Plugin verwenden wollen ist nun ein zusätzlicher Arbeitsschritt nötig. Ein Bild einer verspiegelten Kugel ist ein sogenannter convex mirror und wir müssen diese Bilder umwandeln. Alle Bilder werden also mit einem geeigneten Tool umgewandelt, in unserem Beispiel werden die Panorama Tools von Helmut Dersch verwendet.
convex2phspheremirroball04 mirrorball05 mirrorball05
Im Zwischenschritt Psphere ist es ebenfalls möglich mit Pantools - Adjust das Bild zu kippen. In unserem Beispiel wurde die Kugel direkt von oben fotografiert. Möchte man nun aber das HDR mit Blick von vorn haben kann das so realisiert werden.
Ebenfalls kann die Kamera und der verdeckte Teil hinter der Kugel mit Hilfe einer zweiten Serie von Fotos mit anderen Blickwinkel retuschiert werden. Das ist allerdings recht aufwending und klappt aufgrund der Physik auch nicht 100%ig.
Als letzter Schritt muss die Bildfolge zu einem HDR zusammengesetzt werden. Dafür gibt es inzwischen recht viele Tools, ein recht komfortables ist HDR Shop von Debevec. Als sichtbares Bild wird ein gut belichtetes Foto gewählt und entsprechend der verwendeten Belichtungszeiten werden die anderen Bilder für die Berechnung des HDR's eingefügt.
Wem das alles etwas zuviel Arbeit ist und trotzdem mit HDRI arbeiten moechte, www.realtexture.de bietet unter anderem eine HDRI CD an.


3. Schritt:
Das CG Objekt. Der Schwerpunkt bei fotorealistischen Objekten liegt immer auf Details und vorallem auf der Oberfäche. Beim Erstellen des Objektes sollte man die Endanwendung immer im Hinterkopf behalten. Was ist zu sehen, welche Details fallen auf, welche sind unbedingt notwending, wie ist die Oberfläche beschaffen. Bei der Verwendung von Bumpmaps ist ebenfalls darauf zu achten, dass diese die Geometrie nicht verändern und somit am 'Rand' des Objektes wirkungslos sind. Modellierte Details sehen meist auch bei Reflexionen und Nahaufnahmen besser aus. Je nach Zielgruppe ist es wichtig auch uninteressante Details zu beachten. Leute vom 'Fach' sehen schnell Unstimmigkeiten und stören sich an fehlenden Fehlern in der Oberfläche oder andere Details die Objekte echt machen. Aber auch das beste Model taugt nur wenig wenn die Oberfläche nicht stimmt. Referenzobjekte sollten eingehend betrachtet und studiert werden. Wie reflektiert sich die Umwelt, wie stark glänst die Oberfläche, wo sind Kratzer und wie sehen sie aus. Auch auf Abnutzung und 'matte' Stellen sollte man achten. Referenzobjekte sollten auch bei unterschiedlichen Lichtsituationen betrachtet werden und vorallem ein Tip ist wichtig, immer mit einem Auge betrachten! Oftmals versteht man nicht so recht warum das gerenderte Objekt doch anders aussieht aber Kratzer, Details und Reflektionen/Brechungen sehen mit 2 Augen nunmal anders aus als mit einer Kamera. Bei unserem Beispielobjekt waren also die nicht exakten Gummireifen und vorallem die Aufkleber solche kritischen Details. Die Aufkleber sind physische Objekte die AUF das eigentliche Auto aufgebracht werden und nicht einfach eine Textur des Daches. Wenn genug Zeit ist kann auch mal eine kleine Animation berechnen um sein Objekt von verschiedenen Blickwinkeln zu betrachten. Hier ein paar Screenshots vom Model des Spielzeugautos (220kb)
car02 car03 car05
Ein kleines Tutorial zum Modellieren eines Fahrzeuges Fahrzeug Tutorial


4. Schritt:
Die Scene. Bei der Scene spielen nun mehrere Faktoren eine Rolle. Wirft das CG Objekt Schatten und wohin. Aus welchem Winkel soll es zu sehen sein und vorallem müssen die erfassten Abstände und Winkel genau übertragen werden. Am wichtigsten ist auch Zoom und FOV der verwendeten Kamera da sonst die Perspektive nicht stimmt. Arbeitet man im Makrobereich oder hat eine weitläufige Scene muss zusätzlich auch 'Depth of Field' oder Tiefenunschärfe beachtet werden. Da bei HDR Beleuchtung die anderen Lichtquellen deaktiviert werden ist das Open GL Preview dunkel. Entweder nutzt man als temporäre Beleuchtung das Ambient Light oder man erstellt mit HDR Shop eine kleine Scene mit Lichtquellen aus dem HDR und konvertiert diese dann für Lightwave. Aber für unser Beispiel reicht Ambient Light völlig aus. Ebenfalls hilfreich ist die Verwendung von Front Projected Image Maps als Orientierung für das Setup.
Bei der Verwendung von Radiosity gibt es ein kleines Problem im Lightwave. Die berechneten Schatten erscheinen nicht als Buffer da sie eigentlich keine Schatten sind, es ist nur dunkler an dieser Stelle. Deswegen wurde für diese Kombination ein anderes Verfahren entwickelt. Das Spielzeugauto sollte auf den Tasten stehen und natürlich einen Schatten werfen. Deswegen wurde die Tastatur des Notebooks nachgebaut. Eine einfache Fläche kann in diesem Fall auch genügen, allerdings könnte zu sehen sein, dass Licht auf die schrägen Seiten der Tasten fällt und ein flächiger Schatten würde diese Stellen zu stark verdunkeln.
Folgenden Bilder, das Auto steht auf dem Keyboard, zweites Bild, Kamerawinkel und Abstand stimmen nun.
layout01.jpg layout02


5. Schritt:
Berechnung des CG Objektes. Dieser Schritt richtet sich wieder stark nach dem Zeitbudget und der Hardware. So gut wie möglich ist natürlich schon das Beste, aber wir benötigen das Objekt und das Keyboard mit dem Schatten, also zwei Renderings. Ebenfalls sollte man im Auge behalten, dass das Objekt in unserem Beispiel wirklich nur sehr klein wird. Wichtig ist es klare und rauschfreie Bilder zu bekommen. Dafür ist es manchmal besser mehr Passes zu berechnen als die Einstellungen von Radiosity zu erhöhen. Sicher ist man immer mit beiden Massnahmen. Bei der Verwendung von Reflexionen und Brechungen sollte man die Einstellung für Ray Recursion Level kleiner machen da sonst die Renderzeit schnell den Bereich von Tagen erreicht. Spiegelt sich im Objekt nichts weiter als das HDR kann Raytrace Reflektion ganz deaktiviert werden. Allerdings stimmen manchmal die Reflexionen nicht ganz, da nicht berücksichtigt wird ob ein Teil des Objektes ein anderes verdeckt (zb mehrere Kugeln nebeneinander sollten den Background teilweise verdecken) und dann spiegelt sich der Background obwohl es eigentlich nicht geht. Brechungen ist dann ein ähnliches Thema. Meistens kann eine exakte Brechung nicht realisiert werden da dafür zuviel Umgebung nachgebaut werden müsste und die Brechung des Hintergrundes (HDR) durch den Abstand nicht stimmt.
Nach den ersten Testberechnungen ist es an der Zeit das Objekt mal in das Foto zu montieren. Dafür wird das berechnete Bild mit Alphakanal gespeichert. Jetzt kann zum Beispiel mit Aura oder mit einem anderen Bildverarbeitungsprogramm das Foto mit dem gerenderten Bild kombiniert werden um einen ersten Eindruck zu gewinnen.
Jetzt geht es um den Schatten. Dafür benötigen wir zwei Bilder. Ein Bild ohne unser Objekt aber mit seinem Schatten auf dem Untergrund und ein Bild nur mit dem Untergrund. Da es wie schon erwähnt keine Möglichkeit gibt den Radiosityschatten als Bufferoutput zu speichern muss ein kleiner Umweg genommen werden.
Bei den folgenden Bildern sieht man den Unterschied zwischen der Version mit flachem Untergrund und der Version mit richtigen Keyboard. Unterhalb des linken Vorderrades (rechte Bildseite) sieht man eine helle Stelle, diese entsteht durch die schrägen Seiten der Tasten, hier fällt das Licht von der Seite unter das Auto. Ein Problem besteht allerdings immer noch. Wird Licht vom CG Objekt reflektiert und beleuchtet die Umgebung kann dieser Effekt mit dem folgenden Verfahren nicht berücksichtig werden. Deswegen kann man sich zum Beispiel Monte Carlo sparen und gleich mit Backdrop only rechnen.
erstes Bild, das Auto alleine, zweites Bild, der Schatten auf dem flachen Untergrund, drittes Bild, der korrekte Schatten auf dem Keyboard.
comopsitecar.jpg flatshadow keyboardshadow


6. und letzter Schritt:
Jetzt wird ein Pixelprogramm benötigt. Dafür eignet sich The Gimp, Aura 2 und Photoshop, aber auch Paint Shop Pro oder Photopaint. Zuerst werden die drei oben gezeigten Bilder geladen. Mit Hilfe der Layer wird nun das Bild des Keyboards ohne Schatten von dem Bild des Keyboards mit Schatten abgezogen, es sollte nun nur noch der Schatten des Autos zu sehen sein. Das Bild mit dem Auto wird nun über diesen Schatten positioniert, es sollte eigentlich alles schon passen wenn die 3 Bilder ohne Offset übereinander liegen.
Jetzt kann noch etwas Feinarbeit geleistet werden. Dazu wird etwas Rauschen aus dem Schatten entfernt oder umliegende Pixel die nicht zum Bild gehören gelöscht. Die Löcher im Schatten sind kein Problem, dorthin hat das Fahrzeug keinen Schatten geworfen und somit muss da auch kein Schatten sein. Sollte der Schatten einen starken Farbstich haben, zb durch das verwendete HDR oder weil mit Radiosity (Monte Carlo oder Interpolation) gerechnet wurde, kann es helfen den Schatten zu desaturieren. Ist er nun zu farblos (also nicht ganz passend zum Bild) hilft auch eine Kombination aus desaturierten und bunten Schatten.
Sind alle Layer korrekt positioniert und das Foto ebenfalls als Hintergrund geladen sollte das Ergebnis schon recht gut aussehen. Jedoch fehlen noch ein paar Details um die Sache noch etwas echter zu machen.
Ein echtes Foto ist selten völlig rauschfrei und hat auch nicht diese technischen und leuchtenden Farben eines 128 Renderings. Hier kann entweder schon im Lightwave mit dem Image Viewer FP das Bild etwas angepasst werden oder man macht es im Pixelprogramm. Dazu wird die Saturation etwas weniger eingestellt und/oder der Kontrast noch etwas angepasst. Den letzten Schliff bekommt das Bild mit einem leichten Farbrauschen. Man kann auch das Rauschen der Kamera verwenden. Dazu wird mit der gleichen Kamera ein schwarze oder weisse Fläche fotografiert und dann ebenfalls mit Subtraktion die Fläche entfernt. Nun hat man einen Layer der in etwa das Rauschen der Kamera beinhaltet. In unserem Beispiel wurde noch ein Screenshot angefertigt und hinzugefügt um das Bild etwas klarer zu machen. Dieser wurde mit ca 30 % Deckung über das Foto gelegt und per Perspektive angepasst. Sollte das gerenderte Bild zu scharf erscheinen hilft etwas Unschärfe (kein Unscharf Maskieren) oder mehr Antialiasing beim Rendern.
So, nun ist es geschafft. Hier noch ein paar Screenshots der verschiedenen Layer und des fertigen Bildes.
layers.jpg screenshot final image
Viel Spass beim Ausprobieren und wenn noch Fragen offen sein sollten, einfach eine email an tutorial@dbki.de schreiben.