• Keine Ergebnisse gefunden

Zur Erinnerung: Parametrisierung von Dreiecken

N/A
N/A
Protected

Academic year: 2022

Aktie "Zur Erinnerung: Parametrisierung von Dreiecken"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Zur Erinnerung:

Parametrisierung von Dreiecken

Interpolation über Dreiecke

2

Parametrisierung eines Dreiecks

p   a  (b-a)   (c-a)

p (1   )a  b  c

    

p(     a  b  c mit   

         

Baryzentrische Koordinaten

(2)

Baryzentrische Koordinaten

3

p liegt innerhalb des Dreiecks falls gilt:

0 0 0

 

  

  

  

Baryzentrische Koordinaten

4

Berechne:

b a c a P a

b a c a P a

x x x x x x

y y y y y y

  

     

         

     

p   a  (b-a)   (c-a)

   

   

( , ) a b b a a b b a

a b c b

P P

a c a b b a

P P

y y x x x y x y

y y x x x y x y x

x y

x y y

 

    

   

   

( )

,

1

a c c a a c c a

a c b c a b

P P

a P

c P

a c

y y x x x y x y

y y x x x y x y x x y

y

x y

  

    

     

  

(3)

Texture mapping

... mehr Photorealismus

66

Ein Beispiel kommerzieller Computer Graphik (Kunst) von

Jeremy Birn http://www.3drender.com/jbirn/hippo/hairyhipponose.html

(4)

Wie viel Geometrie ist nötig?

77

Gittermodell

Mit Werkzeugen zur Geometriemodellierung (Splines, NURBS,...) lassen sich detailreiche Modelle erzeugen.

Wie viel Geometrie ist nötig?

88

Gittermodell

Gittermodell + Schattierung +

Texturemapping Gittermodell +

Schattierung

Viele Oberflächendetails lassen sich nichtallein durch Geometrie

erzeugen!

(5)

99

Für jedes Dreieck des Modells muss das entsprechende Dreieck in der Photo-Textur festgelegt werden.

Photo-Texturen

Zum Rastern werden dann die

Pixelkoordinaten in der ‚Texture Map‘ interpoliert.

10

Abbilden der Textur in den Bildraum

10

u v

P1

P3 P2 p1

p3 p2

T (u , v)

Zu jedem Bildpixel muss die entsprechende Position in den Texturkoordinaten ( u,v) gefunden werden, wenn nötig muss zwischen den Texturwerten interpoliert werden.

P1  ( u1 , v1) P3  ( u3 , v3) P2  ( u2 , v2) Textur-Koordinaten

2D Bildraum 3D Objektraum 2D Texturraum

Position Farbe

Wie wurden beim ‚Shading‘ die Polygone gerastert ??

(6)

Wiederholung:

Rasterung von Polygonen mit Beleuchtungsmodell

Die Literatur unterscheidet die Algorithmen bezüglich ihrer Methodik beim Füllen von Polygonen.

N1

N3

N2

I2

I3

I1

Man unterscheidet:

1.) Flat Shading 2.) Gouraud Shading

3.) Phong Shading

im Detail

===>

Wiederholung: Gouraud Shading

13

1. Berechne im Objektraum die Normalenvektoren in den Eckpunkten der Polygone;

for jedes Polygon do

2. berechne im Objektraum das Beleuchtungsmodell an allen Eckpunkten des Polygons;

3. projiziere das Polygon in die Bildebene;

for alle vom Polygon überdeckten Scanlinien do

4. berechne den linear interpolierten Farbwert an der linken und rechten Kante des Polygons;

for jedes Polygonpixel der Scanlinie do

5. berechne den linear interpolierten Farbwert des Pixels.

endfor endfor endfor

(7)

Füllen der Polygone analog zu Gouraud Shading

Was geht hier schief?

Viewport

Gleichmäßige Schrittweiten in den Bildkoordinaten entsprechen nicht gleichmäßigen Schrittweiten auf dem Objekt !

Bei Gouraud Shading fällt der Fehler nur nicht sehr auf!

15

Auswege

15

1. Verkleinert man die Polygone werden auch die Fehler kleiner!

2. Korrekte perspektivische Rückabbildung,

wird heute von fast allen Systemen verwendet !

zweistufige Abbildung:

Pixel Objekt Textur

(8)

16

Korrekte perspektivische Rückabbildung

16

Pixel Objekt Textur

   

11 12 13

T 21 22 23 T

31 32 33

, , , 1 , , 1

0 0 1

a a a

a a a

x y z u v

a a a

 

 

 

 

 

 

MPT = MTP-1 = [MOP MTO]-1

MTO MOP

MPT

x, y, z, 1

T MTO ,

u v, 1

T

A)

0

0

1 0 0

0 1 0 0

0

0 0 0

1/

0 0 1

MOP

z

 

 

 

 

 

 

B)

11 11 11

21 21 21

31 32 33

0 0 0

0 0

0 0 0 0

1 1

TP OP TO

a a a

a a a

M M M

a a a

z z z

 

 

 

   

 

 

 

 



Durch invertieren von M

TP

ergibt sich eine lineare Abbildung von den Pixelkoordinaten in die Textur.

Korrekte perspektivische lineare Interpolation

17

Vergleiche Interpolation im Bildraum

1

(

2 1

( ) t )

p t   p pp

     

 

1 2 1

1 per

2 1

P x s

z s

x s x x z s z z

 

  

 

 

 

 

  

1 2 1

1 2 1

( )

( )

x s x x x

z s z sz z

            

       

         

mit Interpolation im Objektraum p1 p2

1 2 1

1 2 1

( )

x x x

z t z z

  

d = 1

p(t)

( ) p t

 

1 2 1

( ) P sPs P - P

P1

P2

P s( )

(9)

Korrekte perspektivische Interpolation

18

Wie suchen die Abbildung von

t

nach

s :

Leider haben wir nach der Projektion keinen Zugriff auf z . Von der perspektivischen Abbildung kennen wir jedoch w

1

= z

1

/d und w

2

= z

2

/d

1 2 1

1 2 1

( )

x x x

zt zz  

   

 

1 2 1

per

1 2 1

= P x s x s x x

z s z s z z

    

    

    

 

löse nach

s

als Funktion von

t

auf

:

 

1

2 1 2

t z sz t z z

 

1

 

2

2 1 2

1 2 1

1

1 1 1

t w t w

s w t w w w t w w

 

   

Interpolation über Dreiecke

19

Bilineare Interpolation des projizierten Dreiecks

( p

0

, p

1

, p

2

)

0 1 2

p( ,       (1   )p   p   p

bestimme für jeden Pixel

p

die Baryzentrischen Bildkoordinaten

  

bestimme aus diesen Baryzentrischen Bildkoordinaten

  

die Baryzentrischen Weltkoordinaten

w

 

w

 

w

Vor der Projektion gilt:

0 1 2

0 1 2

0 1 2

0 1 2

0 1 2

1 1 1

p( , (1 )

x x x

y y y

z z z

w w w

w w w

     

     

     

     

     

     

     

     

1 x y z w

w

   

  

   

 

(10)

Baryzentrischen Weltkoordinaten  w   w   w

0 1 0 2 0

1 1 1 1 1 1

ww

ww 

ww  1 / w ist linear in Bildschirmkoordinaten

1 x y z w

w

  

  

  

 

0 1 2

0 1 2

0 1 2

0 1 2

0 1 2

1 1 1

p( , (1 )

x x x

y y y

z z z

w w w

w w w

     

     

     

     

     

     

     

     

Alle in Weltkoordinaten linearen Variablenksind als k / w linear in Bildschirmkoordinaten.

0 1 0 2 0

0 1 0 0 0

Welt

w w w w w w

                z.B. für 

Welt

gilt:

?

21

Baryzentrischen Weltkoordinaten  w   w   w

0 1 0 2 0

1 1 1 1 1 1

ww

ww 

ww 

1 Welt

w w

z.B. für 

Welt

gilt:

(2)

(1) durch (2) 1

0 1 0 2 0

1 1 1 1 1

Welt w

w w w w w

   

   

   

0 2

1 2 2 0 1 1 0 2

Welt w w

w w w w w w w w

 

 

    

(1)

   

0 1

1 2 2 0 1 1 0 2

Welt w w

w w w w w w w w

 

 

    

(11)

Perspektivisches Rastern eines Dreiecks

22

Compute bounds for x =xi/wiand y =yi/wi for all xdo

for all ydo

compute () for (x,y)

if (  in [0,1]   in [0,1]  in [0,1]) then

d = w1 w2 + w2 w0 - w1) + w1  w0 - w2)

welt= w0 w2 / d

welt = w0 w1 / d

welt= 1 -welt  welt

u = weltuo + weltu1 + weltu2 v = weltvo + weltv1 + weltv2

drawpixel( x, y) with color texture( u, v)

23 23

Ebene

Verschiedene Projektionen einer Textur auf ein Objekt

Kugel

Zylinder

(12)

Texturierung komplexer Objektoberflächen

1. Zylinder

Idee: 1. Umhülle das Objekt mit einer parametrisierbaren Oberfläche.

2. Projiziere das Objekt auf diese Fläche

 

atan 2 ,

2

zyl zyl

y y x x

u

  

min , max ,

min

,

zyl zyl

zyl

z z

z v z

 

2. Kugel  

2 , 2 arctan

y ymittel x xmittelb

u   

   



 

    

,min

2

2 ,

2 arctan

zyl mittel

mittel y y z z

x x v

25 25

Schachbrettmuster: was geht hier schief?

(13)

26

Aliasing Effekte

26

Viewport

Wenn mehrere Texturwerte ( Texel ) auf einen Pixel abgebildet werden, hängt es oft vom Zufall ab welcher Wert dem Pixel zugeordnet wird!

Die Projektion eines einzelnen Pixels (Quadrats) auf die Texturebene ergibt ein Parallelogramm ( Footprint ), das von folgenden Vektoren aufgespannt wird:

y v y u r x

v x u

r1 und 2

27

Vom „footprint“ zum Pixelwert

27

Idealerweise würde die Projektion eines jeden Pixels in die Textur (footprint) bestimmt werden und dann alle Texel innerhalb des Footprints gemittelt.

Pixel Footprint of Pixel

2 2

x v x a u

2 2





 





 

y v y b u

a

b

Im Allgemeinen wird die Mittelung der Texel vorberechnet und in Texturkarten (Mip-Maps) niederer Auflösung gespeichert.

Die meisten Texturierungsverfahren unterscheiden sich nur in der Approximation des Footprintinhalt.

Dies ist sehr viel Rechenaufwand!!

(14)

Mip-Mapping

Beim Mip-mapping-Verfahren, wird jede Textur in eine

Auflösungspyramide überführt, dabei werden immer 4 Pixel durch Mitteln auf ein Pixel der nächst niederen Auflösungsstufe reduziert.

Der Speicherbedarf erhöht sich um ein Drittel!

Die Mittelung von 4 Pixel zu einem wird auch Box-Filterung genannt.

29

Box-Filterung ist nicht die Regel!

29

Zur Bildverkleinerung muss das Abtasttheorem herangezogen/optimiert werden (Shannon).

siehe Lehrbuch zur Bildverarbeitung!

(15)

Approximation des Footprintinhalts

d = log

2

( max(a,b) )

Klassisches Mip-Mapping: Der Footprint wird auf ein Texel (quadratisch) der Mip-Map der Kantenlänge 2

d

gerundet.

a Nachteil: Es werden viel zu viele b

Texel zusammengefasst.

Footprint Assembly: Die kürzeste Kantenlänge des Footprint bestimmt die Mip-Map-Stufe. Dann wird der Footprint durch mehrere Mip-Map-Texel überdeckt.

31 31

Standard MIP-Mapping Foot-Print-Assembliy

(16)

Beleuchtungsmodelle und Texturemapping

32

Constant Diffuse Color Diffuse Texture Color Texture used as Label Texture used as Diffuse Color

Bump-, Normal- &Displacement-Mapping

33

Ziel: Auf eine gegebene grobe Geometrie sollen mehr geometrische Details durch ein Verfahren ähnlich zum „textrue mapping“ abgebildet werden!

Es existieren verschiedene Verfahren, leider ist die Literatur in den Bezeichnungen nicht immer einheitlich.

Zwei unterschiedliche Vorgehensweisen:

A) Es werden tatsächlich zusätzliche Vertices auf die grobe Geometrie abgebildet: „Displacementmapping“, „Subdevisiontechnique“:

(i.a. sehr aufwändig)

B) Durch eine Manipulation der Normalenwerte kann über das Beleuchtungsmodell eine komplexere Geometrie simuliert werden.

„Bumpmapping“, „Normalmaps“

(17)

34

Displacement Mapping

34

Hier wird eine Karte benutzt um die Oberflächenpunkte wirklich zu verschieben.

Die Geometrie muss vor der Prüfung auf Sichtbarkeit verändert werden.

Bump Mapping

35

Originalfläche P(u) mit Normalen N(u)

Displacement-Map h(u)

Perturbierte Normalen N‘(u) Offsetfläche P‘(u)

Idee: Für das Beleuchtungsmodell soll die Oberflächennormale moduliert werden, was eigentlich nur durch eine Veränderung der Geometrie möglich ist.

Wie lässt sich die Modulation der Normalen auf beliebige Objekte abbilden ?

und ' NP

u

'  P

v

' '( , ) ( , ) ( , )

P u vP u vh u v N

(18)

Bump Mapping (2)

36

Idee: Im Beleuchtungsmodell sollen die Oberflächennormalen moduliert werden, was einer Veränderung der Geometrie entspricht!

'

u u u u

P   P h n hnP '

v

  P

v

h n hn

v

v

     

'

u v

u v v u u v

N   P Ph n P   h P n   h h n n

   

'

u v v u

0 NNh n P   h n P  

Es reicht aus h

u, hv

in einer Bump-Map (entsprechend einerTexturkarte) abzuspeichern!

mit N nN

und normiere N´

37

More Bump Mapping

37

(19)

39

Reflektion- & Environment-Mapping

39

(20)

Environment Mapping Beispiel

40

Terminator II

41

Reflektion- & Environment-Mapping

41

(21)

42

Reflection-Mapping

42

Die Helligkeitsverteilung der Umgebung soll auf ein Objekt abgebildet werden.

Zum Aufhellen oder Abschatten eines Objekts oder zur Simulation spiegelnder Oberflächen.

1. Möglichkeit: Ray Tracing ! Sehr aufwändig und muss für jeden Blickpunkt neu

berechnet werden.

2

2

R V V N N R V V N N

 

 

.

(

,

)

out amb diff spec refl map

LLLLL

  2. Reflection Map Die gesamte Szene wird

durch eine einzige virtuelle Kugel ersetzt, und auf dieser als Texture-map mit und  parametrisiert (Kugelradius >> Objekt). Die Richtung des auf der Oberfläche

reflektierten Strahls ergibt die Position in der Reflectionmap.

43

Environment-Mapping

43

Anstatt auf eine Kugel abzubilden, wird häufig auf einen Würfel projiziert, dies hat den Vorteil, dass leichter über einen Bereich zu interpolieren ist. Somit kann über den Sichtbereich eines Pixels besser integriert werden.

Reflection- und Environmentmapping sind immer nur ein schwacher Ersatz für Raytracing.

1. Es wird immer nur eine Reflektion berücksichtigt.

2. Annahmen der planaren Umgebung führt zu Verzerrungen.

(22)

44

Environment-Mapping

44

Environment Maps

45

(23)

Welche graphische Repräsentation ?

46

47

3D Texturen

47

(24)

48

3D Texturen

48

1. Schritt: Abbilden der 3D Objektoberfläche in 3D Texturkoordinaten.

x y z , , 

Finv map_

u v w , ,

2. Schritt: Berechnung der eigentlichen Farbwerte.

u v w , , 

CTextur

, ,r g b

Die Objektgeometrie wird aus dem dreidimensionalen Texturvolumen

„herausgeschnitten“.

ist im Allgemeinen eine funktionale Beschreibung und keine gemessene diskrete Funktion.

3D Textur

C

49

Holz als Beispiel

49

_

inv map

FIdentität

Da Holz nicht homogen wächst, wird der Radius periodisch moduliert .

 

2 1

sin

1

R   R kR

Holz bestehe aus Zylindern mit RadiusRentlang der Längsachse w.

2 2

R

1

uv

Kreisrunde Zylinder sind unnatürlich:

R

3

R

2

a sin   

Ein Jahresring habe die Dicke

d  0.3  d   R

3

mod 0.3 / 0.3 

Farbe variiert nicht linear zwischen hell und dunkel:

r g b , , d r g b

1

, ,

1 1

 1 d r g b

2

,

2

,

2

(25)

50

3D Texturen: gibt es ein Prinzip?

50

1. Schritt: Moduliere Oberfläche mit einer Dichtefunktion

D(x,y,z)

.

2. Schritt: Moduliere

D(x,y,z)

mit verschiedenen Stör- oder Rauschfunktionen.

   , =

n

...,

2

1

0

      

H D X X f f f f D X

Diese Vorgehensweise wird auch mit Hypertextur bezeichnet. (Perlin 85)

Wie simuliert man das Rauschen?

Es soll einerseits den Zufall simulieren und dennoch stetig sein C C0, 1...

An den diskreten Gitterpunkten des Volumens werden Zufallszahlen ermittelt. Zwischen diesen wird dann trilinear interpoliert.

51 51

http://legakis.net/justin/MarbleApplet/

(26)

Referenzen

ÄHNLICHE DOKUMENTE

Gem¨ass einer Erd¨os und Debrun- ner zugeschriebenen Ungleichung kann das zentrale Teildreieck 0 nicht das fl¨achen- kleinste der vier sein... das Minimum, das geometrische Mittel

// disable texture mapping and automatic texture coordinategeneration glDisable( GL_TEXTURE_CUBE_MAP );. glDisable(

Ein Kupferdraht mit Querschnitt A und einem spezifischem Widerstand ρ leitet einen Strom der Stärke I. b) Berechnen Sie die Driftgeschwindigkeit v D der Elektronen im Metall

Sie erarbeiten sich die Bedienung einer dynamischen Geometriesoftware, wodurch sie die Aufgaben lösen und überprüfen können.

»Fakt« und »Fiktion« müssen sich aber nicht notwendigerweise als derart un- überbrückbare Widersprüche gegenüber- stehen, vor allem dann nicht, wenn die ausschlaggebende

Im Frühling werden die Tage dann allmählich länger und im Sommer geht die Sonne dann schon in den frühen Morgenstunden auf und erst spät am Abend wieder unter.. Die Tage

Schneide die Teile aus und lege die Figur nach... Figuren

Fragen Sie zuvor in der Klasse nach, ob einzelne Schülerinnen und Schüler einen oder mehrere ihrer Joker ein- setzen wollen, damit Sie diese Punkte in der Bestenliste