Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.

Slides:



Advertisements
Ähnliche Präsentationen
Computer Graphics Shader
Advertisements

Hauptseminar - Computer Graphics
Steigung m berechnen Man kann die Steigung auch berechnen,
Vom graphischen Differenzieren
1 Wie weiter oben eingehend behandelt, sind elektromagnetische Wellen trans- versal, haben also zwei Polarisationsrichtungen senkrecht zur Ausbreitungs-
Flächen und Umfang Quadrat Einheitsquadrat Umfang Fläche Dreieck
Körperberechnung Würfel Einheitswürfel Oberfläche Volumen Quader
Finale Semantik und beobachtbares Verhalten
DirectX – Graphics Fortgeschrittene Techniken
MS Office-Paket: Access
Grundlagen der Geometrie
Usability - Kriterien für Web -Anwendungen
Lic.Sc.Inf. Dr. Monique Jucquois-Delpierre
5. Beleuchtung und Schattierung
Phong Shading (Normaleninterpolation)
Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung.
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Prof.
Exotische Texturformen
Fernseher LCD- Bildschirme.
Gleichungen: Grundwissen
Java3d „Licht und Material“
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Sonne, Mond und Erde – Wo kein Licht ist, da ist Schatten
So animieren Sie Kreisdiagramme mit der Eingangs-Animation „Rad“
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Special Effects Realistischeres Rendern einer Scene.
Optik (Lehre vom Sichtbaren)
Computergrafik Begriff: Was ist Computergrafik?
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
F5. Kurzübersicht folgende Parameter werden näher Vorgestellt: FarbeGlanzpunkteTransparenz TexturenHalomaterialienLensflares.
Grundgrößen der Lichttechnik
FHP - Fachbereich Bauingenieurwesen
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
3D- Spieleprogrammierung
Rufe das Leben.
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Wasser in 3D Die Modellierung und realitätsnahe Echtzeitberechnung von Wasser unter Zuhilfenahme der Grafik Engine OGRE 3D Präsentation von Paul van Hemmen.
Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Lupe, astronomisches Fernrohr, Mikroskop
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Beleuchtungsmodelle, Schattierungsmodelle
Michael Schmidt computer graphics & visualization Texture Mapping Lapped Textures.
Lineare Gleichungen mit 2 Variablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
ANIMATION II Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung SS 2013 Softwaretechnologie II (Teil II): Simulation und 3D.
Vom graphischen Differenzieren
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
Zeichnen Mit den Officeprogrammen kann man sehr viele einfache Grafiken direkt im Programm erstellen. Es handelt sich um ein Zeichenprogramm Malprogramme.
Universität zu Köln WS 2014/15 HKI – Softwaretechnologie 2 (Teil 1) Von Tilo Kochs.
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
1. Charakteranimation 2. PlugIns schreiben und laden Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/2011.
Der Begriff Grafik Computergrafik ist die Erstellung und Verarbeitung von Grafiken mit Hilfe eines Computers. Hierzu benötigt man: Eingabegeräte wie zum.
Lernplan für den Die Coulombkraft und das Potenzial in der Umgebung
Die Renderpipeline.
Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Softwaretechnologie II / Visuelle Programmierung Dozent: Prof. Dr. Manfred Thaller WS.
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
ROBERT NYSTROM GAME PROGRAMMING PATTERNS III.8 Thema: Sequencing Patterns Seminar: Softwaretechnologie II (Teil 2) Dozent: Prof. Dr. Manfred Thaller Referent:
Bit (Binary Digit): die kleinste EDV-technische Speichereinheit kann entweder den Wert eins (wahr) oder den Wert null (falsch) einnehmen Physikalisch.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Abiturprüfung Mathematik 2012 Baden-Württemberg Allgemeinbildende Gymnasien Pflichtteil Lösungen
Pflichtteil 2016 Aufgabe 6: Gegeben ist die Gerade
 Präsentation transkript:

Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Dozent: Prof. Dr. Manfred Thaller Referentin: Maike Wosnitza Effekte I

Inhalt Nebel Beleuchtung Alpha-Blending Multi-Texturing

Nebel 1. Realistischer 2. Verhindert Grafikfehler – Objekte springen nicht plötzlich aus dem Nichts 3. Fördert enorm die Atmosphäre Nebelarten Linearer Nebel (feste Start- und Enddistanz) Exponentieller Nebel (keine Start- und Enddistanz) einfach exponentieller Nebel quadratisch exponentieller Nebel

Nebel Nebel mit Direct3D Vertexnebel Pixelnebel Tiefennebel (Tiefe z-Koordinate des Pixels bzw. des Vertex) Entfernungsnebel (tatsächliche Entfernung zur Kamera) Entfernungsnebel funktioniert nicht zusammen mit Pixelnebel

Nebel – Render-States

Nebel Beste Einstellung: Hängt vom Einzelfall ab Generell: Vertexnebel (schnell zu berechnen) + Entfernungsnebel

Beleuchtung Durch Beleuchtung ist das Gehirn in der Lage, Objekte räumlich zu erfassen Lokale Beleuchtungsmodelle: Lichttypen: Punktlichter – geben Licht in alle Richtungen ab Spotlichter/Scheinwerfer – bündeln Licht in einen mehr oder weniger engen Lichtkegel Falloff – Wert, der bestimmt, in welcher Form die Lichtstärke zwischen dem inneren und dem äußeren Lichtkegel abfällt (bei 1 linear) Richtungslichter – extrem weit entfernt, so dass sie scheinbar Licht in nur eine Richtung abgeben (Strahlen nahezu parallel) Hintergrundlicht

Beleuchtung Einfallswinkel: Winkel zwischen dem Normalenvektor der Oberfläche und der Verbindungslinie zwischen Oberfläche und Lichtquelle Oberflächen, die senkrecht (0°) zu einer Lichtquelle stehen sind am meisten beleuchtet Je kleiner der Einfallswinkel, desto stärker die Beeinflussung des Lichts Effektive Reichweite: alles was dahinter liegt, kann man sich von der Berechnung her sparen Material: kann jedem Objekt Material zuordnen – bestimmt Eigenschaft der Oberfläche und wie es auf Licht reagiert

Beleuchtung Farben: Additive Farbmischung (alle Farben zusammen = weiß) Materialstreufarbe + Lichtstreufarbe Zusammen mit Faktor, der bestimmt, wie stark die Oberfläche vom Licht beeinfluss ist (Einfallswinkel), kann die resultierende Farbe berechnet werden: Farbe = f * Lichtstreufarbe * Materialstreufarbe Glanzkraft: Wenn der reflektierte Strahl direkt in die Kamera fällt oder nahe vorbeifliegt, muss ein Glanzeffekt entstehen Glanzfarbe meistens weiß

Beleuchtung

Eigenfarbe: Eigenhelligkeit (z.B. Bildschirme) wird hinzu addiert Bisherige Gleichung:

Beleuchtung Beleuchtung auf Vertexbasis Nachteil: Beleuchtung auf Vertexbasis reicht nicht aus Light Mapping – Der Lichtfleck wird in Form einer Textur aufgelegt

Beleuchtung Glättungsgruppen: trennen, welche Objekte glatt sind und welche scharfe Kanten haben In der Praxis nur eine Zahl – alle Dreiecke mit derselben Glättugnszahl, bilden eine glatte Kante Materialien verdrängen fast vollständig Vertexfarben (D3DMATERIAL9)

Beleuchtung IDIRECT3DDEVICE9::SETMATERIAL aktiviert Material GETMATERIAL fragt aktuelles Material ab

Beleuchtung G_PD3DDEVICE- >SETRENDERSTATE(D3DRS_LIGHTING,TRUE) Besser D3DRS_COLORVERTEX auf FALSE setzen (sichergestellt, dass Material verwendet wird) Nach getaner Arbeit Einstellungen wieder zurücksetzen Glanzeinstellung über D3DRS_SPECULARENABLE auf TRUE setzen

Beleuchtung

Wie viele Lichter ein Gerät zur Verfügung stellt: MAXACTIVELIGHTS der D3DCAPS9-Struktur Es ist besser, nicht so viele Lichter gleichzeitig zu setzen, da die Bildrate dadurch schlechter wird Bei nicht uniformen Skalierungen: Render-State D3DRS_NORMALIZENORMALS aktivieren

Alpha-Blending Dazu da, teilweise transparente oder durchsichtige Objekte zu zeichnen Alte Bildpunkt spielt noch eine Rolle – wird mit neuem Pixel auf bestimmte Weise verknüpft Objekte werden von hinten nach vorne gezeigt Jede Farbe hat einen Alphawert Muss festgelegt werden, wie sich der Blendfaktor vom alten und neuem Pixel berechnet – bestimmt Anteil einer Farbe am Gesamtergebnis

Alpha-Blending Je höher der Alphawert des neuen Pixels ist, desto stärker beeinflusst er die endgültige Farbe Aktivierung: D3DRS_ALPHABLENDENABLE – TRUE

Alpha-Blending

Verknüpfen von altem und neuem Pixel: Render-State D3DRS_BLENDOP

Alpha-Blending Woher kommt der Alphawert? Bei Vertexfarben – aus den Vertexstreufarben (auch im Fall von Materialen – Streufarben) Ablauf des Zeichnens: 1. Bildpuffer & Z-Buffer leeren 2. Alle völlig opaken Objekte ohne Alpha-Blending zeichnen 3. Alle transparenten Objekte von hinten nach vorne zeichnen Alpha-Testing: Grafikkarte zeichnet nur Pixel, deren Alphawert eine bestimmte Voraussetzung erfüllen D3DRS_ALPHATESTENABLE auf TRUE

Alpha-Blending D3DRS_ALPHAFUNC macht die Vergleichsfunktion – Wert bezieht sich auf Referenzwert, der mit D3DRS_ALPHAREF gesetzt wird

Multi-Texturing Zur drastischen Qualitätssteigerung und Einsparungen an Speicher und Arbeit Erlaubt mehrere Texturen übereinander auf ein und dasselbe Dreieck zu legen Einzelne Texturen müssen nicht die gleiche Auflösung haben Texturschicht-States legen fest, wie genau die einzelnen Texturschichten miteinander verknüpft werden Jede Texturschicht hat einen Operator und zwei oder drei Argumente

Multi-Texturing

Zielregister: Temporäres Register (Zwischenspeicherungen) Standardregister (dieser Wert wird verwendet, um Farbe des zu zeichnenden Pixels zu ermitteln) setzt Alphawert der Texturschicht auf Multiplizieren, erste Argument auf Streufarbe und zweite auf Textur oder umgekehrt sowohl Textur- als auch Streufarbenalphawert tragen zum Ergebnis bei Operatoren festlegen: D3DTSS_COLOROP für Farboperator setzen & D3DTSS_ALPHAOP für den Alphaoperator

Multi-Texturing

Bestimmten der Argumente: Farbargumente: D3DTSS_COLORARG1, D3DTSS_COLORARG2 & D3DTSS_COLORARG0 Alphakanal: D3DTSS_ALPHAARG1, D3DTSS_ALPHAARG2 & D3DTSS_ALPHAARG0

Multi-Texturing Zielregister: mit D3DTSS_RESULTARG Entweder auf D3DTA_CURRENT setzen (Standartregister) oder auf D3DTA_TEMP (temporäre Register) Wie viele Texturen gehen: über MAXSIMULTANEOUSTEXTURES der D3DCAPS9- Struktur Texturkoordinatentransformation: nicht nur Positions- und Normalenvektor sind transformierbar, sondern auch Texturkoordinaten – und zwar einzeln für jede Texturschicht eignet sich hervorragend für viele verschiedene Effekte, wenn es darum geht Texturkoordinaten in Echtzeit zu verändern, ohne die aufwändige Sperrung eines Vertex-Buffers

Multi-Texturing weitere Matrizen einsetzen: eine für jede Texturschicht (D3DTS_TEXTURE0, D3DTS_TEXTURE1,...) Texturkoordinatentransformation mit dem Texturschicht- State D3DTSS_TEXTURETRANSFORMFLAGS aktivieren 2D-Texturmatrizen unterscheiden sich von denen in 3D muss TriBase-Funktion TBMATRIXTOTEX2DMATRIX benutzen, um 3D-Transformationsmatrix in eine Texturtransformationsmatrix umzuwandeln

Literaturverzeichnis David Scherfgen: 3D-Spiele-Programmierung. München, 2006, S