Neon-Workshop: Kameraobjektive und -effekte

Mit der Kamera lassen sich in NeoN hübsche Effekte erzielen. So wie Profiphotographen ein ansehnliches Sortiment an austauschbaren Objektiven besitzen, so können Sie auch in NeoN mit Ihrer Kamera verschiedene Objektive simulieren. Tele-, Panorama- und Weitwinkelobjektiv sowie Fischauge und Farbfilter sind realisierbar. Einen kosmetischen Fehler hat die Sache allerdings: NeoN erzeugt keine - wie sie optophysikalisch oder naturgemäß auftreten können - Tiefenschärfe und Lensflares. Benötigen Sie Tiefenschärfeneffekte, so können Sie sich mit Pixelmaps in verschiedenen Weichzeichnungsgraden aushelfen. Lensflares können Sie realisieren, indem Sie einen solchen in Ihrem Paintprogramm malen und auf ein Schachbrett bei 100%iger Transparenz legen.

Zur Simulation denkbarer Objektivvarianten dienen die Parameter WIDTH(x), HEIGHT(y) und DISTANKE (z) im Kamera-Menü „FOKUS“.

Das Standardkameraobjektiv hat folgende Einstellungen:

x=1 /y=1 /z=1 oder z.B. auch x=2 / y=2/z=4

Es ist für diverse Schnappschüsse :-) einzusetzen.

Teleobjektive werden in der Praxis für Fernaufnahmen eingesetzt. Sie besitzen lange Brennweiten und somit spitze Blickwinkel. Sie liefern die naturgetreusten Bilder, da sie das Bildmotiv planarer abgreifen können als alle anderen Objektivarten. Um ein Teleobjektiv zu erhalten, verwenden Sie z.B. folgende Werte:

x=1 / y=0,75 / z=8

Weitwinkel bedeutet, daß die Kamera einen nach allen Seiten großen Bildbereich einfangen kann. Dies hat zur Folge, daß Sie die Kamera näher an Ihre Objekte anrücken können, wodurch diese gewaltiger erscheinen, da hier kürzere Brennweiten möglich sind. Um ein Weitwinkelobjektiv zu erhalten, verwenden Sie beispielsweise folgende Werte:

x=2,5 / y=2,5 / z=1

Panoramaobjektive schaffen mehr Raum, das Bild horizontal auszuweiten, so daß sich extreme rechteckige Bilder ergeben. Verwenden Sie hierzu z.B.

x=3/ y=1 / z=4.

Das Fischauge ist ein Objektiv mit extrem gewölbter Sammellinse. Der reale Blickwinkel ist < 1800. In NeoN ist der Beobachtungswinkel noch weiter auszudehnen (> 1800 ), der über negative Werte für DISTANKE zu realisieren ist. Naturgemäß stellt sich das Bild im 3D-Preview dann allerdings in horizontaler und vertikaler Ebene auf den Kopf. Versuchen Sie es selbst: x=3 / y=3 / z=-l

Der Wert z=0 ist der magische Grenzwert und repräsentiert eine Blickperspektive von genau 1800. Das Beobachtungszentrum liegt in diesem Falle genau im Kameraobjekt - eben mittendrin, statt nur dabei ... - und liefert sinngemäß kein Bild.

Farbfilter sorgen auch in der realen Welt für künstlich erzeugte Atmosphäre. So lassen sich Abendstimmungen selbst um die Mittagszeit simulieren. In NeoN kann man dem Kameraobjektiv einen Farbfilter aufsetzen, indem man im Light-Menü „AMBIENT“ entweder über BAKK-GROUND-KOL oder AMB1ENT-LIGHT andere Töne als schwarz verwendet. AMBIENT-LIGHT ist der ambiente (=umgebende) Lichtanteil, den Ihre Szene bereits ohne weitere Lichtquellen besitzt. Es ist diffus und besitzt daher an jeder Stelle Ihrer Szene gleiche Intensität und Farbe.

BAKKGROUNDKOL beschreibt den Farbton, der sich beim Rendern Ihrer Szene im fertigen Bild als Hintergrund ergibt, so als würde man gegen eine bildausfüllende und diffuse Lichtwand photographieren. Bleibt zu erwähnen, daß alle transparenten und spiegelnden Materialien von dieser Hintergrundfarbe beeinflußt werden, und zwar selbst dann, wenn Sie beim Rendem mit Z-Buffer ein *.TGA Bild in den Hintergmnd einfügen. Im Normalfall sind AMBIENT-LIGHT und BAKKGROUND-KOL aber immer schwarz, d.h. es existiert kein ambientes Licht (entgegen der Natur) und auch keine Hintergrundfarbe.

Unter „FOKUS“ finden Sie den für die Kamera überaus wichtigen Parameter DISTANKE (z). Dieser Wert simuliert die Brennweite Ihrer Kamera; er gibt den Abstand vor der Kamera an, indem sich die Größenangaben zu x und y Ihres Bildes erfüllen und somit also indirekt den Beobachtungswinkel Ihrer Kamera.

Photoexperten werden beim Anblick der Grafik (Abb. 1) eventuell in Ohnmacht fallen. Die mit „F“ gekennzeichnete Linie entspricht nicht wirklich der Brennweite, verhält sich jedoch wie letztere, weshalb ich zum besseren Verständnis nicht noch mehr Begriffe einführe.

Abb. 1 (oben), 2: Gridspace Arena

Beispiel: Weitwinkelobjektiv

Bei kleinen Brennweiten haben Sie die Möglichkeit, Ihre Kamera näher an die Objekte Ihrer Szene heranzurücken (siehe Strecke „s“ in der Grafik), um einen gleichen Bildausschnitt (Inhalt im Sucher Ihrer Kamera) wie bei der Standardkamera zu erhalten (siehe Abbildung 1). Der Bildausschnitt ist also der gleiche, rendern Sie jedoch beide Varianten einmal durch, werden Sie feststellen, daß Ihre Objekte mit dem Weitwinkelobjektiv sehr viel imposanter und mächtiger aussehen als mit dem Standardobjektiv (= perspektivische Verzerrung).

Auf den Abbildungen 2 (Standardobjektiv) und 3 (Weitwinkelobjektiv) sehen Sie die Auswirkungen der obigen Thematik.

Abb. 3: ... das gleiche mit Weitwinkel

Allgemeine Tips zur Kamera

Wenn Sie die FOKUS-Parameter ändern, sollten Sie anschließend einmal die Taste „K“ drücken, um die Kamerablickperspektive im 3D-Preview-Window zu aktualisieren, damit es später beim Rendem keine bösen Überraschungen gibt.

Entscheidend für die Zuordnung eines Objektivtyps ist das relative Verhältnis der FOKUS-Parameter x, y und z untereinander. Um dieses Verhältnis auszudrücken, können Sie folgende Formel verwenden:

wobei
(p > 1) = Weitwinkelobjektiv, Fischauge
(p < 1) = Teleobjektiv
(p = 1) = Standardobjektiv

An dieser Formel erkennen Sie auch, daß der Grenzwert z = 0 nicht erlaubt ist.

Achten Sie ferner darauf, daß Sie das relative Verhältnis aus den Werten x und y auf die Pixelbemaßung Ihres Bildes im RENDER-PARAMETER-Dialog übertragen, denn sonst wird der Bildinhalt unproportional skaliert (verzerrt).

Abschließend bleibt für mich überraschend festzustellen, daß der alte Krempel aus meiner Schulzeit doch nicht so ganz umsonst gewesen ist. Das Hintergrundwissen, das aus dem Physikunterricht eventuell noch in diversen Gehirnzellen umherspukt, kann man bei NeoN zum besseren Verständnis der Architektur des Programmes lohnend einsetzen.

10 wichtige Tips zum Objektmodelling sowie zur Berechnungszeit beim Rendern

Bisher haben wir uns innerhalb dieses NeoN-Workshops sehr eingehend den Themen Oberflächengestaltung, Objekttransparenz und Standbildanimation gewidmet. Abschließend zu diesen Grundlagen möchte ich Ihnen noch ein paar Tips zum Thema Objektmodelling sowie zur Verkürzung der Wartezeiten beim Rendem aufzeigen, bevor es dann mit dem nächsten Workshop ans Eingemachte geht, nämlich den bewegten Animationen (Movies).

Sparen Sie an Punkten, wo es nur geht! Wenn Sie beispielsweise Objektteile aneinander setzen, dann versuchen Sie doch mal, angrenzende Punkte mit „MELT POINTS“ zusammenzuschmelzen. Weiterhin sollten Sie Polygone löschen, die man nicht sieht (wie sie z.B. beim Aneinanderkleben von Würfeln entstehen) und keinesfalls Polygone von Vorder- und Rückseite berechnen lassen, wenn es nicht unbedingt sein muß.

Arbeiten Sie vorwiegend im großen Maßstab! Sie erhalten so sehr viel schärfere Stmkturen (Bump-Maps) als im Mikrokosmos.

Verwenden Sie die automatische „Einschnappfunktion“ (= aktives Grid). Sie ersparen sich so ungemein viel Fummelei mit allen Bearbeitungsfunktionen oder wenn Sie im Fortgang Ihrer Arbeit Objektteile zusammenfügen möchten. Aktives Grid ist unbedingte Voraussetzung dafür, daß keine Lücken oder Ritzen zwischen Polygonen auftreten.

Sparen Sie mit dem Phong-Shading (= Trickeffekt zur Kantenglättung benachbarter Polygone, so daß eine scheinbare Rundung entsteht). Oftmals sehen Objekte nach dem Rendem sehr viel definierter aus, wenn Phong-Shading ganz abgestellt war.

Ein besonderes Problem gibt es bei runden Objekten: Der Körper ist sehr schön „durchgephongt“, aber entlang des Objekthorizontes sieht man treppenförmige Abstufungen, die von den Segmenten stammen. Hier hilft nur eins: mehr Segmente oder/und beim Rendem Antialia-zing einschalten!

Abb. 3: Kampfarena im „I-WAR“ Stil: Gouraud-Shading ohne Schatten und Nebel
Abb. 4: Szene aus einer Echtzeitsimulation des Gouraud-Shading: deutlich weniger Gouraud bei naher Kameraeinstellung

Ebenso sollten Sie mit spiegelnden Materialien sparen. Abgesehen von der längeren Rechenzeit können benachbarte spiegelnde Flächen ein Verständnisproblem beim Betrachten des fertigen Bildes aus-lösen.

Haben Sie schon mal versucht, kleinere Objektteile, die Sie immer wieder verwenden, als Text zu definieren? So lassen sich beispielsweise sehr schnell Baugruppen oder Ketten aus einzelnen Elementen und Gliedern realisieren.

Hatten Sie auch schon mal das Problem, daß eine ebene Punktefront durch Deforming beeinflußt wurde, obwohl Sie das gar nicht wollten? Soll diese Punktreihe wieder auf eine Ebene zurückgesetzt werden, dann verfahren Sie wie folgt (sofern „UNDO“ nicht mehr möglich ist): Selektieren Sie die betreffenden Punkte, und verschieben Sie diese mittels „MOVE“, so daß Ihr Objekt größer wird. Anschließend selektieren Sie alle Polygone, die an diese Punkte angrenzen. Mit „KUT“ schneiden Sie nun die Polygone an gewünschter Stelle durch. Hier entsteht nun eine neue planare Punktebene. Den überstehenden (vergrößerten) Objektteil löschen Sie mit „KILL“. Ihr Objekt hat jetzt wieder Ursprungsgröße mit einer neuen, sauberen und ebenen Schnittkante. Entlang dieser Ebene können Sie jetzt mit „TRY POLY“ das entstandene Loch - sofern vonnöten - auffüllen.

Transparente Objekte oder Objektteile sind in NeoN manchmal ein Problem, denn sie funktionieren nicht immer gegenüber einem Hintergrundbild, sondern nur gegenüber anderen Polygonen im Hintergrund. Außerdem gibt es Rendering-Fehler, wenn man z.B. transparente Schachbrettpolygone zusammen mit Nebel einsetzt. Überprüfen Sie ferner, ob Ihre transparenten Objekte Schatten werfen sollen bzw. ob dies Sinn machen würde. Testen Sie vor dem Abspeichem Ihres Objektes alle Polygone mit der „ILLE-GAL“-Funktion. Ein Polygon wird von NeoN als korrekt interpretiert, wenn

a. alle Eckpunkte auf einer Ebene liegen b. die Eckpunkte im Winkel <180 Grad zueinander stehen.

Dreieckige Polygone erfüllen diese Anforderungen, weshalb NeoN mittels „TRI-ANGUL“ versucht, ungültige Polygone in Dreiecke einzuteilen.

Illegale Polygone machen sich nach dem Rendem als sog. „Polygonkadaver“ oder „kaputte Polygone“ bemerkbar, da sie ungewollte Löcher besitzen oder von vornherein ausgelassen werden. Wenn Sie die Spiele „Zero 5“ oder „I-War“ für den Jaguar kennen, dann wissen Sie, was ich meine ...

Apropos „I-War“

Dieses Spiel ist ein gutes Beispiel für das sogenannte „Gouraud-Shading“, das hauptsächlich in der Gestaltung der Kampfkulissen verwendet wurde. Ich liebe es, aber leider fehlt dieser 3D-Effektalgorithmus in NeoN.

Der Effekt besteht darin, Polygonpassagen durch Variation der Farbintensität spektakulärer und plastischer in Szene zu setzen oder mit (z.B. kreisrunden) Graustufenverläufen zu überdecken, so als wären einzelne Nischen der Arena nicht vollständig ausgeleuchtet. Beobachten Sie vor allem aber den Boden: Sie merken, wie er sich ständig verändert und durch die Helligkeitsverläufe auf Polygonflächen einen Lichteinfall vortäuscht.

Gouraud-Shading funktioniert in Echtzeit über spezielle RISK-Prozessoren moderner Grafikkarten. Beim ATARI Jaguar übernimmt diese Aufgabe ein Khip namens „Tom“. Wenn Sie z.B. mit Ihrem Hovercraftfahrzeug näher an eine Ecke heranfahren, dann wird der Graustufenverlauf sukzessive ausgeblendet, bis nur noch die Vordergrundfarbe der Wand übrigbleibt.

Alles in allem kann Gouraud-Shading als eine gute Alternative zum Phong-Shading angesehen werden, wenngleich letzterer Algorithmus bessere Ergebnisse liefert, dafür jedoch auch ein rechenintensiveres Interpolationskonzept verfolgt.

Auf den Abbildungen 3 und 4 habe ich versucht, Gouraud-Shading mit „PIX-MAP“ im Materialeditor zu imitieren. Beide Abbildungen enthalten weder „Shadow“ (Schatten) noch Depth-Fade (Nebel) und wurden somit in ca. 2/3 der Zeit durchgerendert. In einer bewegten Animation könnte man das Echtzeitverhalten via PIXMAP-Fading Vortäuschen.


Michael Neihs
Aus: ST-Computer 04 / 1999, Seite 58

Links

Copyright-Bestimmungen: siehe Über diese Seite