Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik...

33
1 Kapitel 16: 3D-Repräsentation Computergrafik 2008 Oliver Vornberger

Transcript of Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik...

Page 1: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

1

Kapitel 16:3D-Repräsentation

Computergrafik 2008Oliver Vornberger

Page 2: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

2

Repräsentation + Darstellung

• Datenstruktur zur Beschreibung der Szene

• Lichtquellen

• Synthetische Kamera

• das daraus berechnete 2D-Pixelbild

Rep

äsen

tation

Dar

stel

lung

Page 3: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

3

Repräsentationshierarchie

• Elementarobjekt (Kugel, Würfel, Kegel, Pyramide,Zylinder)

• Drahtmodell(Punkte, Kanten)

• Flächenmodell(Punkte, Kanten, Flächen, Normalen)

Page 4: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

4

Darstellungshierarchie

• Punktmodell• Drahtmodell• Drahtmodell, verdeckte Kanten entfernt• Flächenmodell, ohne abgewandte Flächen• Flächenmodell, verdeckte Flächen entfernt• Flächenmodell mit Beleuchtung• Flächenmodell mit Beleuchtung + Schatten• Flächenmodell mit Spiegelung + Brechung

Page 5: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

5

Datenstruktur für Polyeder

• Punkte

• Kanten

• Flächen

• Normale

• Farbe

• Materialeigenschaften

• Textur

• Bump Map

Page 6: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

6

Beispiel: Tetraeder

P1

P2

P4

P2, P1, P4

N4, N5, N6

N4

N5

N6(255,255,0)

P3

F2F1P2→P1:F1

P1→P4:F3

P4→P2:F4

F2

F3

F4

Farbe, Punkte, Kanten, Flächen, Normalen

Page 7: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

7

Drahtgitterdarstellung

für jede Fläche F tue {für jede Kante E von F tue {

falls !bearbeitet(E) {falls sichtbar(F)

zeichne E solide;falls !sichtbar(F) {

falls sichtbar(Nachbarfläche(F))zeichne E solide;

falls !sichtbar(Nachbarfläche(F))zeichne E gestrichelt;

}markiere E als bearbeitet;

}}

}

Page 8: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

8

Würfel

(+0.5, +0.5, +0.5, 1.0)(+0.5, -0.5, +0.5, 1.0)(-0.5, +0.5, +0.5, 1.0)(-0.5, -0.5, +0.5, 1.0)(+0.5, +0.5, -0.5, 1.0)(+0.5, -0.5, -0.5, 1.0)(-0.5, +0.5, -0.5, 1.0)(-0.5, -0.5, -0.5, 1.0)

Kantenlänge 1Schwerpunkt im Ursprung

Page 9: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

9

Zylinder

x

y

z

1

1

1

Schwerpunkt im Ursprung

Zwei Deckflächen mit Radius 1

Eine Mantelfläche der Länge 2

Page 10: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

10

Approximation eines Zylinders

α

α = 2·π/n

[cos(ϕ), sin(ϕ), +1,1][cos(ϕ+α),sin(ϕ+α), +1,1][cos(ϕ+α),sin(ϕ+α), -1,1][cos(ϕ), sin(ϕ), -1,1]

ϕ = i·α, i = 0, ..., n-1

[cos(ϕ), sin(ϕ), 0,0][cos(ϕ+α),sin(ϕ+α), 0,0][cos(ϕ+α),sin(ϕ+α), 0,0][cos(ϕ), sin(ϕ), 0,0]

Eckpunkte: Normalen:

Page 11: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

11

φ

Kugel

Radius 1 im Ursprung

ϕ

( cos(ϕ), sin(ϕ), , 1)

0 ≤ ϕ < 2·π 0 ≤ φ < π

xy

z

cos(φ)sin(φ)· sin(φ)·

Page 12: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

12

Approximation einer Kugel

• wähle n gerade

• bilde n/2 Längenkreise(alle gleich groß)

• bilde n/2-1 Breitenkreise(verschieden groß)

Page 13: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

13

Kugel für n=10

n/2 = 5 Längenkreise

n/2-1 = 4 Breitenkreise

2n=20Dreiecke

n·(n/2-2)=30Rechtecke

Page 14: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

14

Dreiecke von Kugel

(0, 0,+1, 1),

(sin(α) cos(φ), sin(α) sin(φ), cos(α), 1),

(sin(α) cos(φ+ α), sin(α) sin(φ+ α), cos(α), 1)

φ = k · α, k ∈ {0, ..., n− 1}

α = (2π)/n, n ∈ N gerade

Page 15: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

15

Rechtecke von Kugel

φ = k · α, k ∈ N, k < nα = (2π)/n, n ∈ N gerade

(sin(θ) cos(φ), sin(θ) sin(φ), cos(θ), 1)

(sin(θ) cos(φ + α), sin(θ) sin(φ + α), cos(θ), 1)

(sin(θ + α) cos(φ + α), sin(θ + α) sin(φ + α), cos(θ + α), 1)

(sin(θ + α) cos(φ), sin(θ + α) sin(φ), cos(θ + α), 1)

θ = l · α, l ∈ N, 0 < l < (n/2− 1)

Page 16: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

16

Normalen von Kugel

φ = k · α, k ∈ N, k < nα = (2π)/n, n ∈ N gerade

(sin(θ) cos(φ), sin(θ) sin(φ), cos(θ), 0)

(sin(θ) cos(φ+ α), sin(θ) sin(φ+ α), cos(θ), 0)

(sin(θ + α) cos(φ+ α), sin(θ + α) sin(φ+ α), cos(θ + α), 0)

(sin(θ + α) cos(φ), sin(θ + α) sin(φ), cos(θ + α), 0)

θ = l · α, l ∈ N, 0 < l < (n/2− 1)

Page 17: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

17

Java-Applet zur Wireframe-Projektion

~cg/2008/skript/Applets/3D-wire/App.html

4 Dreiecke6 Vierecke8 Dreiecke12 Fünfecke20 Dreiecke

PlatonischeKörper

Page 18: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

18

parametrisierte Fläche

P00

P01

P10

P11

(1-v)·P00+ v·P01 (1-v)·P10+ v·P11

P (u, v) =1Xi=0

1Xj=0

fi(u) · fj(v) · Pi,j

f0(t) = 1− t

f1(t) = t

(1-u)·[ ]+u·[ ]

f0(u)f0(v)P00 + f0(u)f1(v)P01+ f1(u)f0(v)P10 + f1(u)f1(v)P11

Page 19: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

19

Bezier-Kurve

P (t) =3Xi=0

Bi,3(t) · Pi

Pi =

⎛⎝ xiyizi

⎞⎠

Page 20: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

20

Kubische Bernstein-Polynome

1.0

1.0

0.0

1.0

1.0

0.0 1.0

1.0

0.0

1.0

1.0

0.0

B0,3 = (1− t)3

B2,3 = 3 · t2 · (1− t) B3,3 = t3

B1,3 = 3 · t · (1− t)2

Page 21: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

21

Gekrümmte Fläche

P00

P01

P02

P03

P10

P11

P12

P13

P20

P21

P22

P30P31

P32

P33P23

P (u, v) =3Xi=0

3Xj=0

·Bi,3(u) ·Bj,3(v) · Pi,j

Page 22: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

22

Drahtgitterdarstellung

for (u=0.0; u<=1.0; u=u+0.1){for (v=0.0; v<=1.0; v=v+0.1){p = new Punkt();for (i=0; i<=3; i++){

for (j=0; j<=3; j++){p = add(p,Bi,3(u)·Bj,3(v)·Pi,j);

}}// Punkt p verarbeiten

}}

Page 23: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

23

Flächendarstellung

Zerlege Rechteck in 2 Dreiecke

berechne Normalenvektoren

färbe Dreiecke ein

Page 24: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

24

Normalen berechnen• im Approximationspunkt

Bezierkurve nach u ableiten

• im Approximationspunkt Bezierkurve nach v ableiten

• Kreuzprodukt beider Tangenten berechnen

∂P (u, v)

∂v=

3Xi=0

3Xj=0

Bi,3(u) ·B0j,3(v) · Pi,j

∂P (u, v)

∂u=

3Xi=0

3Xj=0

B0i,3(u) ·Bj,3(v) · Pi,j

Page 25: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

25

Bezier-Flächen anstückeln

Q01

Q31Q21Q11

Q30

Q00

Q10Q20

Pi2, Pi3 = Qi0, Qi1 collinear

|Pi3−Pi2||Qi1−Qi0| konstantVerhältnis der Abstände

Anschlusspunkte

P12

P02P13

P03

P22

P23

P32

P33

Page 26: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

26

Rotationskörper

2D 3D

Page 27: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

27

CSG

Constructive Solid Geometry

• Objekte sollen physikalisch realisierbar sein• Objekte haben Volumen, Gewicht• Objekte lassen sich maschinell herstellen

Page 28: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

28

\

CSG-Beispiel

Page 29: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

29

Schnittmengen

Page 30: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

30

Innen und außen

Objekt Boundary Interior

Abstand = 0 vom Objekt undvom Komplement des Objekts

Komplement von Boundarybzgl. des Objekts

Page 31: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

31

Regularisierte Verknüpfung

Ab ∩ Bb same

A ∩* B = A ∩ Binterior( )closure( )

Ai ∩ Bb

Ai ∩ Bi Ab ∩ Bi

B

A

B

A

A ∩ B

Page 32: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

32

Quadtree

A

C D

B

AB

C D

strukturiere 2D-Fläche durch Baum vom Grad 4

Effizientes ∪ ∩ \ durch Traversieren

Page 33: Computergrafik 2008 Oliver Vornberger Kapitel 16: 3D ...cg/2008/PDF/folie-16.pdf · Computergrafik 2008 Oliver Vornberger. 2 Repräsentation + Darstellung • Datenstruktur zur Beschreibung

33

Octree

strukturiere 3D-Raumdurch Baum vom Grad 8

0 1

2 3

5

7

4

A

A A A A

C

B

C

BBBB

Effizientes ∪ ∩ \ durch Traversieren