Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung.

Slides:



Advertisements
Ähnliche Präsentationen
Computer Graphics Shader
Advertisements

8. Jahrgang: Abbildungen DIE ACHSENSPIEGELUNG
verweis-sensitive Grafiken
Kapitel 9.4 Blooming (Postprocess-Effekt). Postprocess-Effekte 2D-Effekte Werden auf das gerenderte Bild im Framebuffer angewendet Beispiele: Bewegungsunschärfe.
Elemente der 3D-Grafikprogrammierung
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Phong Shading (Normaleninterpolation)
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.
OGRE Object-Oriented Graphics Rendering Engine Szenen-orientierte, flexible 3D Engine in C++ Hardware-beschleunigte 3D Grafiken Unterstützt Direct3D und.
Exotische Texturformen
KLIPS 2.0: Navigation über den Modulbaum
Java3d „Licht und Material“
Einführung in die Programmierung mit Java
Diskrete Mathematik I Vorlesung Arrays-
EXCAVE ein 3D-Modell eines archäologischen Grabungsquadranten
So erstellen Sie schnell und einfach eine Übersichtsfolie Herbert Manthei
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Displacement Mapping Dynamische Generierung detaillierter Geometrien
Special Effects Realistischeres Rendern einer Scene.
Modellierung von Baumstrukturen mit einem einzigen Polygonnetz
Heute: Scherenzange zeichnen
Java programmieren mit JavaKara
FHP - Fachbereich Bauingenieurwesen
Computergraphik mit OpenGL Einführung. Bilder Objekt existiert im Raum unabhängig vom Betrachter Objekte sind beschrieben durch die Position verschiedener.
Effiziente Algorithmen
Depth of Field Ein Fachvortrag von: Max Goltzsche und Igor Marijanovic Real-Time RenderingBeuth Hochschule für TechnikSoSe 2012.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
3D- Spieleprogrammierung
Dynamisches Geometrieprogramm Andreas Glöckl, MiB Eichstätt
Grafikformate.
Manfred Lindert, Marketing-Kommunikation,
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Ändern von Merkmalen Geometrie Topologie Attribute.
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.
Typo3 Templates und TypoScript
Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Wasser in 3D Die Modellierung und realitätsnahe Echtzeitberechnung von Wasser unter Zuhilfenahme der Grafik Engine OGRE 3D Präsentation von Paul van Hemmen.
Shader.
Verhalten von Objekten in der Szene
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
ProSeminar WS 2007/08 Leo Hackstein
Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Hilfe Dokumente.
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Beleuchtungsmodelle, Schattierungsmodelle
Michael Schmidt computer graphics & visualization Texture Mapping Lapped Textures.
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
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.
Digitale Langzeitarchivierung Sustainability of Digital Formats Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Hauptseminar.
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.
AGP, PCIE Bus im Vergleich AGP: Accelerated Graphic Port 1997 von Intel entwickelt. Ab 1998 AGP dann in großem Stil in PCs als Grafikkartensteckplatz verwendet.
Random & Probability Universität zu Köln Institut für Medienkultur und Theater AM3: Visuelle Programmierung II WS 2013/2014 Dozent: Prof. Manfred Thaller.
Die Renderpipeline.
Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Softwaretechnologie II / Visuelle Programmierung Dozent: Prof. Dr. Manfred Thaller WS.
Multimedia und Virtual Reality Vorlesung am Martin Kurze Multimedia in 3D.
Einführung in die Programmierung mit Java
Grafikformate educETH; M.Brändle; gs.
1 Grafikformate. 2 Grafikformate 3 Grafikformate 1.Bild mit Hilfe eines Rasters von Punkten beschreiben 2.Bild in geometrische Objekte unterteilen Bitmap-Grafik.
Tutorium Software-Engineering SS14 Florian Manghofer.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
 Präsentation transkript:

Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Visuelle Programmierung Teil 1, WS 12 / 13 Dozent: Dr. Prof. Manfred Thaller Referent: Nelson Marambio

Simulation und 3D-Programmierung : Vertex, Interpolation Primitive: einfache geometrische Grundform (Dreieck, Linie, Punkt) Vertex: Eckpunkt einer Primitive Deklaration des Vertexformat nötig, bevor ein Vertex definiert werden kann: SetFVF (Bitmaske) Interpolation (allgemein): Berechnung von Werten innerhalb definierter Grenzen (hier im Kontext von Farbwerten oder Punkt-Koordinaten) Vorteil: Programmierer muss nur Grenzwerte definieren Nachteil: Ergebnis optisch nicht zwangsläufig ansprechend, Beispiel Scanner

Simulation und 3D-Programmierung : Vertex struct Svertex { tbVector3 vPosition; DWORD dwColor; };

Simulation und 3D-Programmierung : Primitive-Type Primitive: einfache geometrische Grundform (Dreieck, Linie, Punkt) Primitive-Type präzisiert den Modus, wie z.B. bei einem Dreieck die Punktkoordinaten verarbeitet werden, wesentlich Dreieckslisten (intuitiv, drei Punkte bilden ein Dreieck, d.h. Anzahl der Punkte muss durch 3 teilbar sein) Verbundene Dreiecke (Anzahl der Punkte > 3, „1. Seite des 2. Dreiecks ist die 3. Seite des 1. Dreiecks“, S. 142)

Simulation und 3D-Programmierung : Render-States R-S setzen Einstellungen für die gesamte Szene, z.B. Beleuchtung Füllmodus Schattierung Culling (welche Primitive werden überhaupt angezeigt ?) Dithering (Farbe eines Pixels wird aus den Farben umliegender Pixel gemischt)

Simulation und 3D-Programmierung : Matrizen Rendering: Bild wird intern, d.h. nicht sichtbar, gezeichnet und abgespeichert Projektionsmatrix: unbewegtes, dreidimensionales Bild benötigt Sichtfeld (Winkel), Seitenverhältnis, Sichtfeld-Grenze (Clipping) Translationsmatrix: definiert den Abstand des Objekts zum Betrachter Rotationsmatrix: definiert Umdrehung eines oder mehrerer Objekte pro Render-Vorgang

Simulation und 3D-Programmierung : Zeichenvorgang Render-States setzen Bildpuffer leeren (komplett, oder nur einzelne Objekte), Übersicht Parameter S. 140 Szene einleiten (IDirect3Device9::BeginScene() ) Objekte in Bildpuffer zeichnen (hier: einzelnes Dreieck) Szene beenden (IDirect3Device9::EndScene() ) Bildpuffer ausgeben (IDirect3DDevice9:Present(), S. 144)

Simulation und 3D-Programmierung : Texturen Textur = Grafik, die definiert um ein dreidimensionales Objekt „gewickelt“ wird Texel = Pixel einer Textur Schema (bei Dreieck): jedem Vertex wird ein Punkt der Textur zugeordnet, dadurch wird der passende Ausschnitt der Textur ohne Verzerrung über das Objekt gelegt (Textur-Koordinaten sind unabhängig von absoluter Auflösung, Größe eines Punktes wird berechnet ) Ursprung linke obere Ecke

Simulation und 3D-Programmierung : Texturen Textur = Grafik, die definiert um ein dreidimensionales Objekt „gewickelt“ wird Texel = Pixel einer Textur Schema : jedem Vertex wird ein Punkt der Textur zugeordnet, dadurch wird der passende Ausschnitt der Textur ohne Verzerrung über das Objekt gelegt (Textur-Koordinaten sind unabhängig von absoluter Auflösung, Größe eines Punktes wird berechnet ) Ursprung linke obere Ecke

Simulation und 3D-Programmierung : Sampler-States Sampler-States informieren über die Methode, mit der die Grafikkarte die Farbe eines texturierten Pixels ermittelt Intuitiv: absolutes Auslesen des korrespondierenden Texels Nachteil: Pixelkoordinaten werden bei geringer Distanz zum Objekt abgerundet („Playstation-Effekt“) Abhilfe: bilinearer Filter a) rundet nicht ab, b) interpoliert mit vier umliegenden Texeln Effekt: weiche Farbübergänge, Rasterung vermieden Filter definierbar für Textur-Vergrößerung und -Verkleinerung

Simulation und 3D-Programmierung : Sampler-States Texturkoordinaten eigentlich immer nur zwischen 0 und 1 (Konvention: x/y für Vertex- , u/v für Texturkoordinaten) Sampler-State D3DSAMP_ADDRESSU , D3DSAMP_ADDRESSV definieren Verhalten, wenn Koordinaten die physische Textur verlassen. Möglichkeiten (S. 154): Kachelung (mit und ohne Spiegelung) (D3DTADDRESS_WRAP, D3DTADDRESS_MIRROR) Randfarbe (Werte größer 1 auf 1 zurücksetzen) (D3DTADDRESS_CLAMP) Definierte Randfarbe (per D3DTADDRESS_BORDERCOLOR) 1x spiegeln (Betrag aus Koordinate bilden, danach Randfarbe)

Simulation und 3D-Programmierung : MIP-Mapping Problem: bei kleinen Objekten ist Textur größer als das Objekt = Textur hat nicht genügend Platz Lösung: MIP (multum in parvo)-Maps erstellen, enthalten kleinere Ausschnitte der Original-Textur (jeweils ¼  256x256 , 128x128, 64x64 usw.)

Simulation und 3D-Programmierung : Verwendung, Speicherklasse D3DUSAGE: - 0 für normale Textur, - D3DUSAGE_RENDERTARGET für animierte Texturen - D3DUSAGE_DYNAMIC (komfortabel, aber nicht von jeder GraKa unterstützt) D3DPOOL (in welchem Speicher wird die Ressource abgelegt ?): D3DPOOL _DEFAULT (optimaler Speicher wird ausgewählt) D3DPOOL _MANAGED (Systemspeicher + Kopie in schnelleren Speicher, wenn verfügbar) D3DPOOL_SYSTEMMEN (Systemspeicher, Kopie in anderen Speicher muss manuell angestoßen werden) D3DPOOL_SCRATCH (Systemspeicher, unabhängig, ob Hardware Format der Ressource unterstützt) Filter S. 161

Simulation und 3D-Programmierung : Vertex- / Index-Buffer Bisher: Anlegen von Arrays aus Punkten in Systemspeicher  einfach, aber langsam Vertex-Buffer: Speicher innerhalb der Grafikkarte, enthält … was ??? Index-Buffer: s.o. Vorteil: schnellere Zugriffszeit, weil näher an „ausführender“ Hardware Filter S. 161

Simulation und 3D-Programmierung : Sperren Um Daten aus Buffern (woraus später Objekte gezeichnet werden) verändern zu können, muss der Buffer ganz oder teilweise gesperrt werden. Prinzip: Buffer wird gesperrt Auslesen der Daten aus Buffer und Kopie in Systemspeicher (Anwendung kann erst jetzt Daten „sehen“) Anwendung manipuliert Daten … kopiert Daten zurück in den Buffer Entsperrt Buffer Objekte können gerendert werden Filter S. 161