Neu
Anno 1404-Screenshots: Neue Bilder zeigen die Entstehung der Posteffekte
Permalink:
[20/12/08] In Film und Fernsehen werden schon seit langem Posteffekte (engl. postproduction-effects) eingesetzt. Wie die Bezeichnung vermuten lässt, werden die Effekte „nach der Produktion“, d.h. nachdem der Film fertig ist, über das gesamte Bild gelegt. Häufig eingesetzte Effekte sind z.B. monochrom- oder sepia-farbige Rückblenden. Auch kommen Verzerrungen oder verschwommene Bilder zum Einsatz, um Benommenheit oder Alkoholeinfluss zu vermitteln. Um eine kalte, postapokalyptische Welt anschaulicher zu machen, werden die Bilder entsättigt, wodurch sie trist und grau wirken. Hingegen erscheinen Szenen durch Sättigung und Weichzeichnen (Bloomfilter) märchenhafter. Auch lassen sich im Film unerwünschte Objekte aus Szenen entfernen oder z.B. Laserschwerter nachträglich einfügen.
In Videospielen müssen viele natürliche Effekte nachgestellt werden, da sie in einer sterilen Polygonumgebung nicht entstehen. Hier werden Effekte für Hitzeflimmern, Glühen, Bewegungs- und Tiefenunschärfe nachträglich hinzugefügt.
Im folgenden Beispiel wird eine Spielszene mit einem Produktionsgebäude in der Postkartenansicht erläutert. Dieses Beispiel enthält u.a. einen Heat- und Glow-Posteffekt sowie Tiefenunschärfe mit adaptivem Autofokus. Der Autofokus bei Anno1404 ist eine reine Shader-Lösung mit Hilfe des Posteffect-Managers. Hier wird zunächst die aktuelle Entfernung zum Blickzentrum aus dem Depthbuffer ermittelt. Als nächstes wird die Entfernung vorheriger Bilder über die Zeit hinweg an die aktuelle Entfernung angepasst. Das Ergebnis wird in einem 1 Pixel großem Rendertarget gespeichert, damit es für das nächste Bild verfügbar ist. Auf diese Weise passt sich der Fokus langsam und automatisch an das aktuelle Blickzentrum des Betrachters an.
Schritt 1: Hier sehen Sie zunächst ein Bild vor den Posteffekten, wie es nach dem regulären Rendering ausgegeben wird.
Text und Quelle: Robert Eichhorn von Related Designs
Außerdem interessant: Bilder zum Aufbau-Strategiespiel zeigen die Entstehung der Meere
In Videospielen müssen viele natürliche Effekte nachgestellt werden, da sie in einer sterilen Polygonumgebung nicht entstehen. Hier werden Effekte für Hitzeflimmern, Glühen, Bewegungs- und Tiefenunschärfe nachträglich hinzugefügt.
Im folgenden Beispiel wird eine Spielszene mit einem Produktionsgebäude in der Postkartenansicht erläutert. Dieses Beispiel enthält u.a. einen Heat- und Glow-Posteffekt sowie Tiefenunschärfe mit adaptivem Autofokus. Der Autofokus bei Anno1404 ist eine reine Shader-Lösung mit Hilfe des Posteffect-Managers. Hier wird zunächst die aktuelle Entfernung zum Blickzentrum aus dem Depthbuffer ermittelt. Als nächstes wird die Entfernung vorheriger Bilder über die Zeit hinweg an die aktuelle Entfernung angepasst. Das Ergebnis wird in einem 1 Pixel großem Rendertarget gespeichert, damit es für das nächste Bild verfügbar ist. Auf diese Weise passt sich der Fokus langsam und automatisch an das aktuelle Blickzentrum des Betrachters an.
Schritt 1: Hier sehen Sie zunächst ein Bild vor den Posteffekten, wie es nach dem regulären Rendering ausgegeben wird.
Text und Quelle: Robert Eichhorn von Related Designs
Außerdem interessant: Bilder zum Aufbau-Strategiespiel zeigen die Entstehung der Meere





![Sub-Posteffekte: Zu einem einzelnen Posteffekt sind meist mehrere Schritte nötig, die in Sub-Posteffekte unterteilt sind. Für einen einfachen Blur-Filter, der ein verschwommenes Bild erzeugt, sampled[2] man mehrere Pixel in horizontaler Richtung, mischt sie im Pixelshader ab und speichert das Ergebnis in einem niedriger aufgelösten Rendertarget. In einem zweiten Schritt sampled man die zuvor abgespeicherten Pixel in vertikaler Richtung, mischt diese und speichert das Ergebnis ab. Diesen Vorgang muss man ggf. mehrfach wiederholen, je nach gewünschtem Grad und Qualität der Unschärfe. Für Anno1404 lassen sich recht einfach solche Effekte definieren. Im Posteffect-Script legt man den zuvor erstellten Shader fest, gibt an, welche Texturen, Rendertargets und Shader-Konstanten benötigt werden. Zum Schluss bestimmt man, wo und in welcher Auflösung das Ergebnis ausgegeben werden soll. Das Resultat des Effektes steht dann bereit, um für andere Posteffekte weiterverwendet zu werden oder landet direkt auf dem Backbuffer. Es wird zunächst ein Effekt mit dem Namen „PST_GLOW_BLUR_H“ angelegt, der auf ein Rendertarget mit einer Auflösung von 128x128 Pixel gerendert werden soll. Dazu soll der Shader „postfx_blur.fx“ verwendet und das Ergebnis eines vorherigen Effektes ihm als POST_TEXTUR0 zur Verfügung gestellt werden. Auf diese Weise werden die Effekte miteinander verknüpft. Anschließend werden dem Shader Standard-Informationen wie Bildschirmauflösung oder ein Timer mit ENABLE_DEFAULT_REGISTER mitgeteilt. Als letztes wird eine Effekt-Konstante gesetzt, die in diesem Fall dem Shader mitteilt, wie stark und in welche Richtung der Blur-Effekt das Bild verwischen soll. Schritt 4: Im Folgenden werden die im Heat-Rendertarget definierten Bereiche mit einer Verzerrung versehen. Text und Quelle: Außerdem interessant: Sub-Posteffekte: Zu einem einzelnen Posteffekt sind meist mehrere Schritte nötig, die in Sub-Posteffekte unterteilt sind. Für einen einfachen Blur-Filter, der ein verschwommenes Bild erzeugt, sampled[2] man mehrere Pixel in horizontaler Richtung, mischt sie im Pixelshader ab und speichert das Ergebnis in einem niedriger aufgelösten Rendertarget. In einem zweiten Schritt sampled man die zuvor abgespeicherten Pixel in vertikaler Richtung, mischt diese und speichert das Ergebnis ab. Diesen Vorgang muss man ggf. mehrfach wiederholen, je nach gewünschtem Grad und Qualität der Unschärfe. Für Anno1404 lassen sich recht einfach solche Effekte definieren. Im Posteffect-Script legt man den zuvor erstellten Shader fest, gibt an, welche Texturen, Rendertargets und Shader-Konstanten benötigt werden. Zum Schluss bestimmt man, wo und in welcher Auflösung das Ergebnis ausgegeben werden soll. Das Resultat des Effektes steht dann bereit, um für andere Posteffekte weiterverwendet zu werden oder landet direkt auf dem Backbuffer. Es wird zunächst ein Effekt mit dem Namen „PST_GLOW_BLUR_H“ angelegt, der auf ein Rendertarget mit einer Auflösung von 128x128 Pixel gerendert werden soll. Dazu soll der Shader „postfx_blur.fx“ verwendet und das Ergebnis eines vorherigen Effektes ihm als POST_TEXTUR0 zur Verfügung gestellt werden. Auf diese Weise werden die Effekte miteinander verknüpft. Anschließend werden dem Shader Standard-Informationen wie Bildschirmauflösung oder ein Timer mit ENABLE_DEFAULT_REGISTER mitgeteilt. Als letztes wird eine Effekt-Konstante gesetzt, die in diesem Fall dem Shader mitteilt, wie stark und in welche Richtung der Blur-Effekt das Bild verwischen soll. Schritt 4: Im Folgenden werden die im Heat-Rendertarget definierten Bereiche mit einer Verzerrung versehen. Text und Quelle: Außerdem interessant:](/screenshots/147x110/2008/12/anno4.jpg)



