Graphische Datenverarbeitung IV Dr. Markus Heitz.
-
Upload
adalheidis-helfert -
Category
Documents
-
view
108 -
download
2
Transcript of Graphische Datenverarbeitung IV Dr. Markus Heitz.
Graphische Datenverarbeitung IV
Dr. Markus Heitz
Beleuchtungsmodelle
• Lokales Beleuchtungsmodell: Shading (z.B. OpenGl)– Wechselwirkung zwischen Objekten wird nicht berücksichtigt
– Keine Spiegelung
– Kein Schatten
– Relativ niedrige Rechenzeit
• Globales Modell: Ray Tracing (z.B. Povray)
• Globales Modell: Radiosity
Ray Tracing
• Globales Modell• Rückverfolgung des Lichtstrahls vom Auge ausgehend für jedes
Bildpixel.• Trifft der Lichtstrahl auf eine Fläche, wird er gebrochen und/oder
gespiegelt: Strahlaufteilung• Von jedem getroffenen Punkt wird ein Strahl zu allen Lichtquellen
berechnet (Verdeckung durch andere Objekte): Berechnung des Shading-Anteils
• Baumstruktur der Strahlverfolgung• Nur Reflektion und Brechung, keine Streuung• Realitätsnahe Bilder mit Schatten, Spiegelbildern etc.• Blickwinkelabhängiges Verfahren• Hohe Rechenzeit
Ray TracingLicht
undurchsichtiges Objekt
halbtransparentes Objekt
Auge
Pixel
Bild
Radiosity
• Basiert auf der Theorie der Wärmeübertragung
• Lichtenergie wird auf Flächen der Szene verteilt
• Diffuse Wechselwirkung zwischen den Flächen
• Keine Reflexionen
• Iteratives Verfahren
• Verdeckungsberechnung
• Sehr hohe Rechenzeit
• Blickwinkelunabhängiges Verfahren
Povray
• Persistence of Vision Ray-Tracer
• Einfache Szenenbeschreibungssprache
• Bibliothek mit vordefinierten Materialen, Texturen, Farben
• Platformunabhängig
• Public Domain
• Beispieldateien mit vorgefertigten Szenen
• Parallel Processing auf mehreren vernetzten Rechnern (Rendering Farm)
Beispieldatei: Skyvase.pov
Scene Description Language
• Linkshändiges Koordinatensystem
• Include Dateien:#include "colors.inc" // Farben#include "stones.inc" // Materialien
• Betrachter:camera {
location <0, 2, -3>look_at <0, 1, 2>
}
Objekte
• Kugel:sphere {
<0, 1, 2>, 2texture {
pigment { color Yellow }}
}• Definition von Mittelpunkt und Radius.• texture gibt die Materialeigenschaften an.
Beleuchtung
• Lichtquelle mit Position und Farbe:light_source { <2, 4, -3> color White}
Beispiel
• Beispieldatei: #include "colors.inc” background { color Cyan } camera { location <0, 2, -3> look_at <0, 1, 2> } sphere { <0, 1, 2>, 2 texture { pigment { color Yellow } } } light_source { <2, 4, -3> color White}
Beispiel
Quader
box {
<-1, 0, -1>, // Near lower left corner
< 1, 0.5, 3> // Far upper right corner
texture {
T_Stone25 // Pre-defined from stones.inc
scale 4 // Scale by the same amount in all
// directions
}
rotate y*20 // Equivalent to "rotate <0,20,0>"
}
Zylinder
cylinder {
<0, 1, 0>, // Center of one end
<1, 2, 3>, // Center of other end
0.5 // Radius
open // Remove end caps
texture { T_Stone25 scale 4 }
}
Ebene
plane { <0, 1, 0>, -1
pigment {
checker color Red, color Blue
}
}• Richtungsvektor
• Abstand vom Ursprung
Constructive Solid Geometry
• Vereinigung:
union {
}• Schnittmenge:intersection {
}• Differenz
difference {
}• Merge:
merge {
}
CSG: Beispiel
#declare Lens_With_Hole = difference {
intersection {
sphere { <0, 0, 0>, 1
translate -0.5*x
}
sphere { <0, 0, 0>, 1
translate 0.5*x
}
rotate 90*y
}
cylinder { <0, 0, -1> <0, 0, 1>, .35 }
}
CSG: Beispiel, Fortsetzung
merge {
object { Lens_With_Hole translate <-.65, .65, 0> }
object { Lens_With_Hole translate <.65, .65, 0> }
object { Lens_With_Hole translate <-.65, -.65, 0> }
object { Lens_With_Hole translate <.65, -.65, 0> }
pigment { Red filter .5 }
}
CSG: Beispiel
mit union
mit merge
Differenz: Achtung bei Flächenkoninzidenz
• Falsch:difference {
box { -1, 1 pigment { Red } }
cylinder { -z, z, 0.5 pigment { Green } }
}
Richtig:difference {
box { -1, 1 pigment { Red } }
cylinder { -z*1.01, z*1.01, 0.5 pigment { Green } }
}