Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung...
-
Upload
ottoline-stuckman -
Category
Documents
-
view
109 -
download
1
Transcript of Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung...
Effekte 1
Universität zu KölnHistorisch Kulturwissenschaftliche Informationsverarbeitung
Softwaretechnologie II (Teil 1): Simulation und 3D ProgrammierungDozent: Prof. Dr. Manfred Thaller
Referent: Artur Wilke
Inhalt
• Nebel• Beleuchtung• Alpha-Blending• Multi-Texturing
Warum Nebel?
Problem in bei größeren Landschaften (Out-Door): • Anzahl der zu zeichnenden Objekte nimmt zu• Bei großer Sichtweite „springen“ Objekte ins Bild• Unrealistisch
Nebel
Lösung:• Nachahmung der „Wirklichkeit“• Landschaft schein nahtlos in den Horizont
überzugehen• Zuschauer kann nicht sehen was „dahinter“ ist
Nebel
Vorteile:• Realismus wird suggeriert • Verhindern von Grafikfehlern• Atmosphäre wird erzeugt
Linearer Nebel
• Festgelegter Start- und Endwert (Distanz)• Einfluss des Nebel steigt zwischen diesen
Werten mit gleicher Höhe (linear)
f(d) = Ende – d d steht für die Tiefe des Pixels
Ende-Start
Exponentieller Nebel
• Nebelstärke nicht exponentiell zu.• Kein Anfangs- und Endwert• Beginnt direkt vor der Kamera und geht
theoretisch bis in Unendliche
Direct3D Berechnung
Einfacher exponentiellen Nebel:
f(d) = 1e^(d*dichte)
o Rückgabewert: 1=Kein Nebel; 0=vollständiger Nebel
Vertexnebel vs Pixelnebel
• Pixelnebel ist genauer, da Nebeleinfluss für jedes einzelne Pixel berechnet wird
Dadurch jedoch aufwändiger zu berechnen und leistungsintensiver (Performance!)
Daher wird für die meisten Fälle der Vertexnebel bevorzugt
Tiefennebel vs Entfernungsnebel
• Tiefennebel arbeitet mit Angabe der Z-Koordinate (Tiefe)
• Entfernungsnebel wird die tatsächliche Entfernung zur Kamera angegeben
• Tiefennebel ist schneller zu berechenen• Entfernungsnebel funktioniert nur im
Zusammenspiel mit Vertexnebel
Beleuchtung
• Die Eigenschaften von Licht komplett nachzuahmen ist rechnerisch zu aufwändig
• Besonders rechnungsintensiv ist die ReflexionDaher vereinfachte, lokale
Beleuchtungsmodelle
Grundprinzipien der Beleuchtung
• Verschiedene Lichttypen:- Punktlichter: Geben Licht in alle Richtungen ab
(Glühbirne)- Spotlichter: Geben Licht gebündelt in einem
Lichtkegel ab (Scheinwerfer)- Richtungslichter: Geben Licht in eine Richtung ab
(Sonne)
Grundprinzipien der Beleuchtung
• Oberflächen die senkrecht zum Licht stehen werden am stärksten beleuchtet, bei 90 Grad Winkel -> keine Beleuchtung
• Licht außerhalb seiner effektiven Reichweite wird nicht mehr berechnet
• Objekte werden einem Material zugeordnet welches gewisse Eigenschaften zum Licht hat
Farbe
• Licht ist eine Mischung aus Farben (RGB zum Beispiel)
• Wir sehen ein Objekt in jener Farbe, die am stärksten reflektiert wird.
Gleiches Prinzip in der Lichtberechnung:• Material hat eine Materialstreufarbe, Licht
eine Lichtstreufarbe• Streufarbe: engl. Diffuse Color
Farbe
Farbe= f * Lichtstreufarbe * Materialstreufarbe
f = Lichtbeeinflussfaktor (Werte zwischen [0;1]), 1 wäre volles Licht, 0 gar kein Licht
Weitere Beleuchtungen
• Hintergrundbeleuchtung (ambient color)• Glanzfarbe (specular color)• Eigenfarbe / Strahlungsfarbe (emissive color)
Wird bei Berechnung einfach hinzuaddiert
Beleuchtung auf Vertexbasis
• Erlaubt glattere ÜbergängeReicht in einigen Fällen nicht ausLösung Light –Mapping• Lichtfleck wird in Form ein Textur aufgelegtMulti-Texturing
Alpha-Blending
• Durch transparente Pixel bleiben opake Pixel sichtbar
• Z-Buffer kann dabei nicht genutzt werden• Transparente Pixel werden immer nach den
opaken gezeichnet
Alphawert
• Jede Farbe bekommt einen Alphawert• Je höher dieser, desto undurchsichtiger (opak)
Multi-Texturing
• Multi-Texturing erlaubt mehrere Texturen mit unterschiedlicher Auflösung übereinander zu legen
Speicher wird eingespart• Beispiel: Light-Maps zu Abbildung von
statischen Licht und Schatten
Multi-Texturing
• Erlaubt Effekte wie Partikel in einem Schutzschild
• Erlaubt Rotieren einer der Texturen in Echtzeit• Maximale Anzahl der Texturen wird von der
Grafikkarte bestimmt (2005 max. 16 Texturen)• Ersetzt Alpha-Blending• Einsatz als Beleuchtung (Light-Map)
Umsetzung
• Jede Texturschicht hat einen Operator und zwei oder drei Argumente
• Das Ergebnis wird ein Zielregister geschrieben, welches wiederum ein Argument der nächsten Textur sein kann
• Argument kann ein Register, Texturfarbe oder Streufarbe sein
• Zielregister kann das Standardregister oder ein temporäres sein
• Beispiel:Pixelfarbe = (Streufarbe * Textur1) + Textur2
Quellen:
• David Scherfgen: 3D-Spiele-Programmierung, S. 182-225
• http://cdn2.sbnation.com/assets/3227507/RSG_GTAV_Screenshot_340.jpg
• http://static.hothdwallpaper.net/51957c353196518884.jpg
• http://www.itwissen.info/bilder/beispiel-fuer-alpha-blending-mit-verschiedenen-transparenzstufen.png
• http://www.flipcode.com/archives/alpha.gif• http://img.tfd.com/cde/_ALPHACH.GIF