Top Banner
Graphische Datenverarbeitung IV Dr. Markus Heitz
22

Graphische Datenverarbeitung IV Dr. Markus Heitz.

Apr 05, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Graphische Datenverarbeitung IV

Dr. Markus Heitz

Page 2: 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

Page 3: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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

Page 4: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Ray TracingLicht

undurchsichtiges Objekt

halbtransparentes Objekt

Auge

Pixel

Bild

Page 5: Graphische Datenverarbeitung IV Dr. Markus Heitz.
Page 6: Graphische Datenverarbeitung IV Dr. Markus Heitz.
Page 7: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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

Page 8: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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)

Page 9: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Beispieldatei: Skyvase.pov

Page 10: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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>

}

Page 11: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Objekte

• Kugel:sphere {

<0, 1, 2>, 2texture {

pigment { color Yellow }}

}• Definition von Mittelpunkt und Radius.• texture gibt die Materialeigenschaften an.

Page 12: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Beleuchtung

• Lichtquelle mit Position und Farbe:light_source { <2, 4, -3> color White}

Page 13: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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}

Page 14: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Beispiel

Page 15: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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>"

}

Page 16: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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 }

}

Page 17: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Ebene

plane { <0, 1, 0>, -1

pigment {

checker color Red, color Blue

}

}• Richtungsvektor

• Abstand vom Ursprung

Page 18: Graphische Datenverarbeitung IV Dr. Markus Heitz.

Constructive Solid Geometry

• Vereinigung:

union {

}• Schnittmenge:intersection {

}• Differenz

difference {

}• Merge:

merge {

}

Page 19: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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 }

}

Page 20: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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 }

}

Page 21: Graphische Datenverarbeitung IV Dr. Markus Heitz.

CSG: Beispiel

mit union

mit merge

Page 22: Graphische Datenverarbeitung IV Dr. Markus Heitz.

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 } }

}