24
Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Dozent: Prof. Dr. Manfred Thaller Referent: Artur Wilke

Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Embed Size (px)

Citation preview

Page 1: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Effekte 1

Universität zu KölnHistorisch Kulturwissenschaftliche Informationsverarbeitung

Softwaretechnologie II (Teil 1): Simulation und 3D ProgrammierungDozent: Prof. Dr. Manfred Thaller

Referent: Artur Wilke

Page 2: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Inhalt

• Nebel• Beleuchtung• Alpha-Blending• Multi-Texturing

Page 3: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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

Page 4: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Nebel

Lösung:• Nachahmung der „Wirklichkeit“• Landschaft schein nahtlos in den Horizont

überzugehen• Zuschauer kann nicht sehen was „dahinter“ ist

Page 5: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Nebel

Vorteile:• Realismus wird suggeriert • Verhindern von Grafikfehlern• Atmosphäre wird erzeugt

Page 6: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Page 7: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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

Page 8: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Exponentieller Nebel

• Nebelstärke nicht exponentiell zu.• Kein Anfangs- und Endwert• Beginnt direkt vor der Kamera und geht

theoretisch bis in Unendliche

Page 9: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Direct3D Berechnung

Einfacher exponentiellen Nebel:

f(d) = 1e^(d*dichte)

o Rückgabewert: 1=Kein Nebel; 0=vollständiger Nebel

Page 10: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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

Page 11: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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

Page 12: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Beleuchtung

• Die Eigenschaften von Licht komplett nachzuahmen ist rechnerisch zu aufwändig

• Besonders rechnungsintensiv ist die ReflexionDaher vereinfachte, lokale

Beleuchtungsmodelle

Page 13: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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)

Page 14: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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

Page 15: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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

Page 16: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Farbe

Farbe= f * Lichtstreufarbe * Materialstreufarbe

f = Lichtbeeinflussfaktor (Werte zwischen [0;1]), 1 wäre volles Licht, 0 gar kein Licht

Page 17: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Weitere Beleuchtungen

• Hintergrundbeleuchtung (ambient color)• Glanzfarbe (specular color)• Eigenfarbe / Strahlungsfarbe (emissive color)

Wird bei Berechnung einfach hinzuaddiert

Page 18: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Beleuchtung auf Vertexbasis

• Erlaubt glattere ÜbergängeReicht in einigen Fällen nicht ausLösung Light –Mapping• Lichtfleck wird in Form ein Textur aufgelegtMulti-Texturing

Page 19: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Alpha-Blending

• Durch transparente Pixel bleiben opake Pixel sichtbar

• Z-Buffer kann dabei nicht genutzt werden• Transparente Pixel werden immer nach den

opaken gezeichnet

Page 20: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

Alphawert

• Jede Farbe bekommt einen Alphawert• Je höher dieser, desto undurchsichtiger (opak)

Page 21: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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

Page 22: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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)

Page 23: Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung

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