Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012...

23
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz

Transcript of Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012...

Page 1: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Softwaretechnologie II (Teil 1):Simulation und 3D ProgrammierungManfred ThallerWS 2011/2012

  

Stereo-3D-Grafik 

Linda Scholz

Page 2: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Räumliches Sehen

Beide Augen suggerieren räumliche Tiefe Gehirn verarbeitet zwei Bilder aus

verschiedenen Blickwinkeln Durch Verschiebung beider Bilder wird die Tiefe

berechnet

Page 3: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Tiefenschärfe

Vermittelt Realismus

Schärfe und Unschärfe setzen den Blickpunkt

Größe von Objekten lässt Entfernung von Objekten anmuten

Page 4: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.
Page 5: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Stereo-3D-Grafik

Darstellung von Bildern aus zwei Perspektiven Überlagerung der beiden Anisichten Größere Verschiebung = Entfernung zum

Betrachter

Page 6: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.
Page 7: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Stereo-3D-Grafik

Soll das menschliche Auge täuschen

Dreidimensionalität von Objekten wird vorgetäuscht

Page 8: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.
Page 9: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Stereo-3D-Grafik

2 Bilder müssen gerendert werden Jedes Auge darf nur das jeweilige Bild sehen

VR-Helme 3D-Shutter-Brillen 3D-Kino-Lösung Rot-Blau/Rot-Grün Stereografie

Page 10: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

VR-Helme

Virtual Reality Anstelle der Gläser zwei Displays, die separat

angesteuert werden Vorteil:

sehr gute Qualität Nachteil:

Grafikkarte muss Helm unterstützen und jeden Frame doppelt rendern

Hohe Kosten

Page 11: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

3D-Shutter-Brillen

Augen werden abwechselnd verdunkelt Monitor zeigt abwechselnd die Sicht von links

und rechts Vorteil:

günstige Lösung und gute Bildtrennung Nachteil:

Grafikkarte muss Brille unterstützen 50% Helligkeit geht verloren Bildwiederholungsfrequenz muss verdoppelt werden

Page 12: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

3D-Kino-Lösung

Zwei Projektoren strahlen den Film einmal aus linker Sicht und einmal aus rechter an die Wand

Licht der Projektoren unterscheidet sich durch Polarisation

Filter in den 3D-Brillen lassen jeweils nur einen Licht-typ durch

Technik lässt sich für Computerspiele kaum verwenden Zwei LCD-Projektoren vor die man je einen

Polarisationsfilter stellt

Page 13: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Rolt-Blau/Rot-Grün

Ein Bild arbeitet mit rotem Licht eines mit blauem oder grünem Bilder werden abwechselnd von links und rechts

gezeigt Flackern entsteht

Im Bild werden Rot und Blau/Grün kombiniert

Page 14: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

3D-Kino-Lösung

Vorteil Kostengünstig Funktioniert auf fast allen Grafikkarten Einfach zu implementieren

Nachteil Eine Farbe geht komplett verloren

Page 15: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Stereografie

Auf den ersten Blick undeutliches Bild Durch Verstellung der Augen wird 3D Objekt

erkennbar Tiefe der Pixel sind von Bedeutung um ein

stereografisches Bild zu berechnen Stereografische Bilder in Echtzeit durch Zugriff

auf den Bildpuffer Farbe des Pixels von seiner Tiefe abhängig

machen (Pixel-Shader)

Page 16: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.
Page 17: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Implementierung

Renderstate D3DRS_COLORWRITEENABLE Farbkanäle beim Rendern kontrollieren, dass

nur roter und grüner Farbkanal geschrieben wird D3DCOLORWRITEENABLE_RED D3DCOLORWRITEENABLE_GREEN

Page 18: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Implementierung

Szene beginnen & Puffer leeren D3DRS_COLORWRITEENABLE auf

D3DCOLORWRITEENABLE_RED setzen Szene von links rendern (Kamera entlang der X-

Achse verschieben) Z- und Stencil-Buffer leeren – nicht Bildpuffer

D3DRS_COLORWRITEENABLE auf D3DCOLORWRITEENABLE_BLUE setzen

Szene von rechts rendern Szene beenden & Bildpuffer sichtbar machen

Page 19: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Blickpunkt der Kamera

Bei Stereo-3D-Grafik sollte sich der Blickpunkt der Kamera bei dem Objekt befinden, das in der Bildmitte zu sehen ist.

Page 20: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Galactica Game.cpp

#include "Galactica.h"

// Folgendes #define schaltet den 3D-Brillen-Modus ein:

// #define _3D_GLASSES_

Page 21: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

CGAME::Render#ifdef _3D_GLASSES_

D3D->Clear(0, NULL, D3DCLEAR_TARGET, tbColor(0.0f), 1.0f, 0);

for(int i = 0; i < 2; i++){

D3D->Clear(0, NULL, D3DCLEAR_ZBUFFER, tbColor(0.0f), 1.0f, 0);

D3D->BeginScene();

if(i == 0) D3D.SetRS(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_BLUE);

else D3D.SetRS(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_RED);

// Kamera setzenSetupCamera();

Page 22: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

CGAME::SetupCamera#ifdef _3D_GLASSES_

static DWORD dwFrame;

dwFrame++;

if(dwFrame % 2) m_vCameraPos -= tbVector3Cross(tbVector3Normalize(m_vCameraLookAt - m_vCameraPos), m_vCameraUp) * 0.01f;

else m_vCameraPos += tbVector3Cross(tbVector3Normalize(m_vCameraLookAt - m_vCameraPos), m_vCameraUp) * 0.01f;

#endif

Page 23: Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Manfred Thaller WS 2011/2012 Stereo-3D-Grafik Linda Scholz.

Vielen Dank

Schöne Ferien