Programmierpraktikum 3D Computer Grafik

Ähnliche Dokumente
3D Programmierpraktikum: Schattenberechnung in Echtzeit

Kapitel 4: Schattenberechnung

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Programmierpraktikum 3D Computer Grafik

3.6 Schattenberechnung

3D Programmierpraktikum: Szenegraphen und Texturierung

Die Welt der Shader. Fortgeschrittene Techniken III

Shadowing. Vortrag im Rahmen des PIXAR-Seminars, Juli Philipp Freyer

4.4 Glättung von Kanten

Beleuchtung. in Computerspielen

Im Original veränderbare Word-Dateien

Rendering: Lighting and Shading

Newtek Lightwave Grundlagen der 3D-Vektorgrafik

OpenGL. (Open Graphic Library)

UIKit (Cocoa Touch) Framework für ios Apps. Objective C. Model View Controller Pattern

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

Die untere Abbildung zeigt eine Szene aus einer 3D-Computeranimation.

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Game Engine Architecture and Development. Effekte (Sound, Partikel, Physik)

Stellen Sie das Projekt Druckluftmotor auf aktuell. Öffnen Sie die Baugruppe Druckluftmotor.

Beleuchtung. Matthias Nieuwenhuisen

Gerenderte Produktanimation mit Creo bzw. Pro/ENGINEER. Für Montage, Fertigung, Marketing und andere Einsatzbereiche

5 Mapping-Techniken. 5.1 Motivation

Rendering Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

PhysX Evaluation. Softwarepraktikum Computergraphik. Daniel Brock, Robert Kreuzer, Simon Kufner. 5. Juli 2010

Abb. 5-5 Gegenüberstellung von Flat-Shading und Gouraud-Shading. Beleuchtungsberechnung mit nur einer Flächennormale pro Polygon

künstliches Objekt, dargestellt durch Anzahl von Punkten in Raum und Zeit (bei bewegten, animierten Objekten).

SPEZIALEFFEKTE IN CINEMA4D:

Computer Graphics Shader

Speziell-Relativistischer (Flug-) Simulator

Raytracing. Schlussbericht. Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997

Seminar Computerspiele Räumliche Datenstrukturen. Ralf Pramberger

VektorWorks - Einführungskurs

Jörn Loviscach Hochschule Bremen

[ tutorial - block animation ]

Symbole. Mike McBride Jost Schenck Anne-Marie Mahfouf Deutsche Übersetzung: Jürgen Nagel

Für die Camerasettings wurden folgende Einstellungen verwendet:

Nichtrealistische Darstellung von Gebirgen mit OpenGL

Advanced Rendering Interior Szene

Reconstruction and simplification of surfaces from contoures

Im Original veränderbare Word-Dateien

Non-Photorealistic Rendering

Inhalt. Seite 4... Am Anfang: Fotos, Fotos, Fotos-Referenzmaterial. Seite 4... Modellieren, texturieren und beleuchten

Kapitel 8 Text für eine Internetseite erstellen

7.1 Polygon Offset. Anwendung - Darstellung von Polygonen als Teil von Oberflächen - Beispiel: Gradlinien auf der Erde - Schwierigkeit:

MF Breadcrumbs. Sergej Schefer & Fabian Marx

3D Grafik mit TrueSpace 5. Crashkurs März März 2013 Einführung in die 3D-Bearbeitung Frank Kaden 1/26

3D-Grafik-Chips. Informatik-Seminar Michael R. Albertin. Betreuer: E. Glatz

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung

7 Blender Intern Renderer

White Paper Order Independent Transparency (OIT) in PTC Creo Parametric 2.0

Tutorial. Übungsblatt CAD: Faltwerkdach für Bühne

Open Office Impress. PHBern Institut Sekundarstufe 1 Studienfach Informatik. Unterlagen zum Praktikum Anwenderprogramme. Inhalt

Posertutorial - Renderoptionen. Rendern in Poser 3

Computergrafik II. OpenGL Einführung

3.1 Motivation. - Mit (mehreren) Koordinatentransformationen wird das Objektsystem in das Gerätesystem transformiert.

Andreas Asanger Cinema 4D 9 Studio. Modelling, Texturing, Animation und Rendering mit allen Modulen. Galileo Design

Real-Time High-Dynamic Range Texture Mapping

Beleuchtung Schattierung Rasterung

Tutorial. 1. Neue Animation erstellen 2. Kartenobjekte animieren 3. Film erstellen. Tutorial 1

"rendern" = ein abstraktes geometrisches Modell sichtbar machen

Blick durch ein Glas. 1. Fotografieren Sie das Glas.

So viel wie möglich Extremwertaufgaben aus Geometrie

Lokale Beleuchtungsmodelle

Photonik Technische Nutzung von Licht

Beleuchtung Schattierung Rasterung

Erster Schritt mit Mocha:

Einführung in die Dynamische Geometrie-Software GeoGebra

Rendern mit PSD Ebenen in Poser

Zweites Instant-Grid Treffen

Überblick Echtzeit-Rendering. Uwe Domaratius

Volumenverarbeitung und Optimierung II

Computergrafik 1 Beleuchtung

Handbuch für DOF. (Programm der Bakkalaureatsarbeit Merkmals-Extraktion in der Volumsvisualisierung) Martin Haidacher

Vorstellung der Aufgabe Nonogramme

Computergrafik Universität Osnabrück, Henning Wenke,

AVG Free 201X Installation Die Screenshots sind von der Version 2014, gelten aber sinngemäß auch für neuere Versionen.

BlendaX Grundlagen der Computergrafik

(13) Hot Topics. Vorlesung Computergrafik T. Grosch

RTT DeltaGen Suite. Materialeinstellungen für OpenGL, RTT RealTrace & Global illumination. Copyright 2010 by Realtime Technology AG

- Für die beiden zu überblendenden Farben (source und destination) werden Blending-Faktoren besimmt (S r

Lights & Cameras Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Sichtbarkeitsalgorithmen im Zusammenhang mit CAD

Digitale Bildverarbeitung - Rechnerübung 3

BIJ-V Photoshop Workshop, Teil 1 Bild öffnen, Voreinstellungen, einfache Bildretusche Trainer: Andreas Moser, amodesign

5 Programme mit Parametern

Echtzeitfähige hige Verfahren in der Computergrafik. Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM

Einführung in Powerpoint M. Hasler Wie erstelle ich eine Präsentation mit Powerpoint? - Eine Kurzanleitung

Mit Steuerung auf eine Ebene mit einem freigestelltem Objekt klicken (linke Maustaste), um nur dieses Objekt zu markieren

Computergrafik Universität Osnabrück, Henning Wenke,

[ tutorial - block animation ]

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Texture Mapping. Texturen

Arbeitsblatt 6: Programmierung geometrischer Figuren

Mesh-Visualisierung. Von Matthias Kostka. Visualisierung großer Datensätze

MaTHEMATISCHE GRUNDLAGEN BUGA-AR TELESCOPE. Marko HeRBERTZ

Rendering: Lighting & Shading

Graphische Datenverarbeitung und Bildverarbeitung

Transkript:

Prof. Andreas Butz, Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung

Agenda Der Stencil-Puffer Der 1-bit Stencil-Puffer Der 8-bit Stencil-Puffer Volumetrische Echtzeitschatten Soft-Shadows Reflexionen Weitere Anwendungen

Der Stencil-Puffer Weiterer Puffer der Grafikkarte, neben Tiefen- und Framebuffer Stencil-Werte werden zusammen mit den Tiefenwerten gespeichert Stencil bedeutet Schablone, d.h. einzelne Pixel des Bildes können bestimmte Werte gegeben werden

Der Stencil-Puffer OpenGL-Funktionen: gl{enable Disable}(GL_STENCIL_TEST); glclearstencil(glint s); glstencilmask(gluint mask); glstencilfunc(glenum func, GLint ref, GLuint mask); glstencilop(glenum fail, GLenum zfail, GLenum zpass); Weitere Informationen zu den Funktionen: OpenGL Reference Page: http://www.mevis.de/opengl/glstencilop.html

Der 1-bit Stencil-Puffer Zwei mögliche Zustände: 0 und 1, z.b. sichtbar vs. unsichtbar Mögliche Anwendung: Masken-Effekt

Der 1-bit Stencil-Puffer Weitere Vorteile des 1-bit Stencil-Puffers: Unnötige Arbeit verhindern: Feste Bereiche im Bild nicht bei jedem Frame neu berechnen Entlastet die Hardware Beispiel: Siehe Folie 5 Fade-Effekt zweier bewegter Szenen: Sinnvoll bei Animationen (selten bei Spielen) Sichtbares Bild hat alle Stencil-Werte auf 1, unsichtbares auf 0 Übergang zwischen beiden Bildern durch Vertauschen einzelner Stencil-Werte zwischen beiden Bildern Erzeugen von (Stereo) 3D Bildern für spezielle Hardware HMD, Shutterbrillen, etc.

Der 8-bit Stencil-Puffer Ermöglicht 256 Unterschiede pro Pixel, statt der 2 beim 1-bit Puffer Üblicherweise werden die 8 Bit auf verschiedene Effekte aufgeteilt: 1 Bit für den Maskierungseffekt 4 Bits für die Schattenberechnung Restliche Bits für einen weiteren Effekt Mögliche Effekte: Volumetrische Schatten Reflexionseffekte

Echtzeitschatten Erfolgt meist am Schluss der Rendering-Pipeline, d.h. wenn alles fertig gerendert und texturiert ist Benötigte Parameter: z-wert jedes Pixels im Tiefen-Puffer Standort der Lichtquelle Vorgang: Betrachten des Tiefen-Puffers aus Sicht der Lichtquelle und nicht von der Kameraposition

Echtzeitschatten (Verf.) Schatten beginnen an den Kanten eines Objekts und folgen der Gerade, die von der Lichtquelle ausgeht Beispiel (Schattendreiecke):

Echtzeitschatten

Echtzeitschatten Nun folgt die Tiefenwert-Berechnung der Dreiecke Test, ob die Pixel im Framebuffer innerhalb dieser Schattenzone liegen

Echtzeitschatten Nun folgt die Tiefenwert-Berechnung der Dreiecke Test, ob die Pixel im Framebuffer innerhalb dieser Schattenzone liegen Liegen diese innerhalb, werden die entsprechenden Stencil-Bits erhöht

Echtzeitschatten Nun folgt die Tiefenwert-Berechnung der Dreiecke Test, ob die Pixel im Framebuffer innerhalb dieser Schattenzone liegen Liegen diese innerhalb, werden die entsprechenden Stencil-Bits erhöht Nun blendet man ein abgedunkeltes Viereck über die gerenderte Szene

Echtzeitschatten Nun folgt die Tiefenwert-Berechnung der Dreiecke Test, ob die Pixel im Framebuffer innerhalb dieser Schattenzone liegen Liegen diese innerhalb, werden die entsprechenden Stencil-Bits erhöht Nun blendet man ein abgedunkeltes Viereck über die gerenderte Szene Dieses Viereck ist nur an den Stellen sichtbar, an denen Stencil-Flags sind

Vol. Echtzeitschatten Veranschaulichung:

Echtzeitschatten (Adv.) Weitere Form der Schattenberechnung mit dem Stencil-Puffer: Entsprechende (markierte) Pixel neu rendern Material- und Nebeleffekte wirken besser Etwas aufwendigerer Ansatz, aber auf moderner Hardware immer noch sehr schnell

Echtzeitschatten

Echtzeitschatten Neuer Ansatz:

Echtzeitschatten Neuer Ansatz: Szene untexturiert und unschattiert rendern

Echtzeitschatten Neuer Ansatz: Szene untexturiert und unschattiert rendern Nur Tiefenwerte speichern und Schattendreiecke bestimmen

Echtzeitschatten Neuer Ansatz: Szene untexturiert und unschattiert rendern Nur Tiefenwerte speichern und Schattendreiecke bestimmen Mit Stencil-Bit markierte Bereiche mit deaktivierten Lichtquellen berechnen

Echtzeitschatten Neuer Ansatz: Szene untexturiert und unschattiert rendern Nur Tiefenwerte speichern und Schattendreiecke bestimmen Mit Stencil-Bit markierte Bereiche mit deaktivierten Lichtquellen berechnen Nicht-markierte Bereiche mit aktivierten Lichtquellen berechnen

Echtzeitschatten Neuer Ansatz: Szene untexturiert und unschattiert rendern Nur Tiefenwerte speichern und Schattendreiecke bestimmen Mit Stencil-Bit markierte Bereiche mit deaktivierten Lichtquellen berechnen Nicht-markierte Bereiche mit aktivierten Lichtquellen berechnen Liefert beste Resultate, ist aber auch am aufwendigsten

Echtzeitschatten Alle Verfahren funktionieren am besten, solange das Objekt einfach gehalten ist In Spielen wird daher die einfachste Variante des entsprechenden Objekts gewählt, falls mehrere verfügbar sind Volumetrischer Echtzeitschatten Standardschatten als grauer Fleck

Soft-Shadows

Soft-Shadows Reine Echtzeitschatten sind nicht realistisch genug

Soft-Shadows Reine Echtzeitschatten sind nicht realistisch genug Schatten besitzen normalerweise keine kantigen Ränder Verlauf

Soft-Shadows Reine Echtzeitschatten sind nicht realistisch genug Schatten besitzen normalerweise keine kantigen Ränder Verlauf Ansatzweise sind Soft-Shadows durch den Stencil- Puffer realisierbar

Soft-Shadows

Soft-Shadows Verfahren:

Soft-Shadows Verfahren: Zusätzlich größeres Schattendreieck mit höherem Transparenzwert berechnen

Soft-Shadows Verfahren: Zusätzlich größeres Schattendreieck mit höherem Transparenzwert berechnen Dieses Schattendreieck über das originale Schattendreieck legen

Soft-Shadows Verfahren: Zusätzlich größeres Schattendreieck mit höherem Transparenzwert berechnen Dieses Schattendreieck über das originale Schattendreieck legen Funktioniert nur bei Schattenwürfen auf Böden und Mauern Weitere Möglichkeit:

Soft-Shadows Verfahren: Zusätzlich größeres Schattendreieck mit höherem Transparenzwert berechnen Dieses Schattendreieck über das originale Schattendreieck legen Funktioniert nur bei Schattenwürfen auf Böden und Mauern Weitere Möglichkeit: Minimale Verschiebung der Lichtquelle und Ändern des Transparenzwerts und jeweils eine Neuberechnung der Szene

Soft-Shadows Beispiel: Vergleich von Echtzeitschatten und Soft-Shadows Approximierte Soft-Shadows

Reflexionen Stencil-Puffer ist ein hilfreiches Mittel für Reflexionen Objekte spiegeln sich eventuell nicht an allen Oberflächen Es werden daher nur Polygone markiert, die auch reflektieren sollen

Weitere Anwendungen Verhinderung von Polygonflackern (z-fighting), d.h. Co-planare Dreiecke flackern nicht Leucht-Effekt (Halo): Objekt wird mit Stencil-Puffer gezeichnet, vergrößert und dort halbtransparent gezeichnet, wo keine Stencil-Werte gesetzt sind

Literatur OpenGL Reference Page: http://www.mevis.de/opengl/opengl.html GLUT Man Pages: http://www.cs.uccs.edu/~semwal/man.html 3D Concepts: http://www.3dconcept.ch/artikel/stencilpuffer/