3D Grafik und Virtuelle Realität
 
Referenten
Mario Lorenz, Marco Wenisch, Michael Heymann
(Fakultät für Informatik, Professur Computergrafik & CA-Techniken, TU Chemnitz)

Inhalt:

 

Überblick und Einordnung :

 

Was ist Computergrafik ?

grafik.GIF (8071 Byte)

 

Wesentliche Teilgebiete der Bilderzeugung :

 

Begriffe

3D-Modell : computerinterne Beschreibung von Objekten als Gesamtheit von geometrischen Primitiven und Attributen

3D-Szene : ein 3D-Modell, welches um Beleuchtungs- und Kamerabeschreibungen erweitert wurde

3D-Welt : eine interagierbare 3D-Szene mit Simulationsfunktionalität

3D-Grafik : Berechnung rastergrafischer Bilder aus einer mathematischen, computerinternen Beschreibungsform (Modell, Szene)

3D-Animation : Berechnung einer rastergrafischen Bildfolge bei gleichzeitiger Veränderung modell- bzw. szenenbeschreibender Parameter (Topologie, Geometrie, Beleuchtung, Ansicht)

Virtuelle Realität : Realitätsgetreue Nachbildung bzw. Simulation eines Weltausschnittes unter Einbeziehung des Nutzers ( Visualisierung, Interaktion,  physikalische Eigenschaften, ... )

 

 


Wie entsteht eine 3D Grafik ?

 

3D-grafik.GIF (20261 Byte)

 

 


Anforderungen

Die Qualität der Darstellung ist abhängig von

Gegenüberstellung der Verfahren
Merkmal Shading Raytracing Radiosity
Beleuchtungsmodell lokal global global
Beleuchtungsinterpolation Flat / Gouraud / Phong Phong Flat / Gouraud
Schatten nein ja, aber hart ja, real aussehend
Transparenz stark eingeschränkt ja nein
Brechung nein ja nein
Spiegelung nein ja nein
 
 
Darstellungs- und Beleuchtungsverfahren

Als erstes muß erklärt werden, daß nahezu alle Grafiksysteme (außer Raytracer) die modellierten Objekte der zu visualisierenden 3D - Szene in kleine Polygone (Facetten) zerlegen. Entsprechend des Umlaufsinns der Polygone werden diesen Normalenvektoren zugeordnet, die u.a. die Vorder- und Rückseite definieren.

3D-Modell --> Polygonzerlegung
facett.gif (2840 Byte)
 

Wire Frame

Es werden jeweils nur die begrenzenden Kanten der beschreibenden Flächenstücke angezeigt.

Vorteil : Sehr schneller und einfacher Algorithmus.

Nachteil : Der Informationsgehalt der Darstellung ist sehr gering, Beleuchtung und Texturen haben keine Wirkung.

Beispiel :

mouse-wire.jpg (210752 Byte)
 

Flat Shading

Mittels der Flächennormale wird für jedes Flächenstück die Beleuchtung der Szene durchgerechnet. Das Ergebnis ist die Farbe, mit der das gesamte Flächenstück gezeichnet wird.

flat.gif (3376 Byte)

Vorteil : relativ schneller und einfacher Algorithmus, einmal pro Facett zu durchlaufen

Nachteil : Bei relativ großen Flächenstücken wirkt das Modell in seiner Ansicht mehr oder weniger kantig. Durch spekulare Reflexion entstehende Glanzpunkte werden nicht korrekt bzw. gar nicht dargestellt. Texturierte Darstellungen machen keinen Sinn.

Beispiel :

mouse-flat.jpg (156766 Byte)
 

Gouraud Shading, smooth shading von OpenGL

Im Gegensatz zum Flatshading werden die Normalenvektoren nicht für die Flächenstücke, sondern für alle Eckpunkte ( vertex ) bestimmt. Für jeden Eckpunkt erfolgt die Berechnung des Farbwertes in Analogie zum Flatshading. Schließlich werden die ermittelten Farbwerte über das Facett interpoliert.

gouraud.gif (3199 Byte)
 

Vorteil : Die Qualität der Darstellung ist deutlich besser als beim Flatshading. Gekrümmte Oberflächen wirken glatter.

Nachteil : Der Rechenaufwand ist deutlich höher als beim Flatshading. Spekulare Reflexionen werden ebenfalls nicht korrekt dargestellt.

spotlight.gif (2212 Byte)

Beispiel :

mouse-gourand.jpg (157365 Byte)
 

Phong Shading, nicht Bestandteil von OpenGL

In Erweiterung des Gouraud-Shading werden die Normalenvektoren, die für die Eckpunkte definiert sind, über das Facettinnere interpoliert, d.h. auf jedem Pixel erfolgt die Berechnung der Normalen und anschließend des zugehörigen Farbwertes.

phong.gif (4824 Byte)

Vorteil : Die Darstellung wirkt sehr realistisch, Spekulare Reflexionen werden korrekt dargestellt.

Nachteil : Der Aufwand steigt drastisch, so daß dieses Modell von geläufigen Grafiksystemen nicht unterstützt wird.
 

Lichtquellen
Man unterscheidet in der 3D-Grafik zwischen vier Arten von Lichtströmen bzw. seinen Quellen :
 
Reflexionsarten
Die endgültige Berechnung des Farb- und Helligkeitswertes eines bestimmten Punktes in der Szene ergibt sich aus der Summe des an diesem Punkt reflektierten Lichtes.

Licht := ambienter Anteil + diffuser Anteil + spekularer Anteil

Raytracingalgorithmen berücksichtigen weiterhin Lichtanteile aus Brechung und Transparenz, welche beim Shading keine Anwendung finden. OpenGL kann mit ALPHA-Blending arbeiten, welches zur Simulation von Transparenz benutzt wird.

 

 


Rendering - Engines im Vergleich

 

PHIGS und PHIGS PLUS

phigs-pipe.gif (11368 Byte)

 

OpenGL und Mesa

opengl-pipe.gif (13322 Byte)

 

einfache vertexbasierte Primitive :
  • Punkte
  • Linien
  • Polygone
  • komplexe polygonbasierte Primitive ( Triangle Strip, Fan, Mesh, ... )
  • GL-Utility-Lib ( GLU ) : Kreisring ( Quadric ), Ringsegment, Zylinder, Kugel, ...
analytisch beschriebene Primitive (Freiformkurven und -flächen) :
  • nach Bézier, trimmbar
  • Non Uniform Rational B-Splines ( NURBS ), trimmbar
Vertices sind Punkte im Raum, die die Geometrie und Beschaffenheit von Primitiven beschreiben.

Vertices sind implizit oder explizit in Befehlen enthalten und werden beschrieben durch :

  • Koordinaten ( 2D, 3D )
  • optional :
    •  
    • Farbdefinition
    • Normalenvektor
    • Texturkoordinaten
    • Materialdefinition
Zwischenspeicher für Ausgabebefehle ( Primitive ) zur verzögerten Ausgabe, optional.
Algorithmische Tricks - Was bringt was ?
 
Feature Anwendung
Perspektivisch korrigierte Texturen Reduzierung der Polygone in Bezug auf Z-Buffering und Erleichterung des HLHSR <
Level-of-detail MIP-Mapping Verhindert das Texture-Aliasing
Bi-linear and advanced texture filtering Eliminiert die Pixelization-Effekte
Texture compositing and morphing Ermöglicht realitätsnahe Beleuchtungseffekte
Animated texturing macht Videoströme als Texturen
Anti-aliasing Kantenglättung, keine Treppeneffekte
Gouraud modulation Spekulare and diffuse Beleuchtungseffekte durch zufällige Manipulation der Normalenvektoren
Sub-pixel correction Verhindert Darstellungsfehler für Polygone und Texturen
Per-pixel alpha blending effects Transparenz und atmosphärische Effekte ( Nebel )
 
 
Beispielprogramm : Texturen unter OpenGL ( MS KB )
 

Hardwareunterstützung der OpenGL Rendering Pipeline

Notwendige Speicher der Rendering-Pipeline :
Speicherplatz
 
Speicherbereich Tiefe in Bit Speicherform
R G B 8 + 8 + 8 VRAM
Alpha 8 VRAM
Stencil 1 + 1 + 1 + 1 VRAM
Z-Buffer 16 VRAM
Accum R G B A 16 + 16 + 16 + 16 DRAM
bei Auflösung 1280*1024 werden gebraucht : 16 MB (2* 8 MB double buffer) VRAM + 10 MB DRAM
 

Notwendige Anforderungen an die Graphics Engine :

Sinnvolle Ergänzungen :
 

Aktuelle Prozessoren aus dem PC-Sektor :

3Dfx Interactive Voodoo Chip

 
 

3D-Labs GLINT MX

Silicon Graphics Octane / MXI
Leistungswerte :
 

 

Modellierung virtueller Welten mit Sense 8 World Toolkit

wtk-1.gif (72694 Byte)

 


 

wtk-2.gif (70560 Byte)

 


 

wtk-3.gif (39013 Byte)

 


 

wtk-4.gif (45066 Byte)

 


 

wtk-5.gif (75317 Byte)

 

 

wtk-6.gif (62290 Byte)

 


 

wtk-7.gif (81405 Byte)

 

 
wtk-8.gif (34552 Byte)
 

 

wtk-9.gif (50974 Byte)

 

wtk-10.gif (73275 Byte)

 

 


November 1997

Mario Lorenz (Mario.Lorenz@informatik.tu-chemnitz.de)

Marco Wenisch (Marco.Wenisch@informatik.tu-chemnitz.de)

Michael Heymann (Michael.Heymann@informatik.tu-chemnitz.de)