+ All Categories
Home > Documents > Modellierung -  · spr¨unglichen Objekte: zwei Halbkugeln, eine Rote und eine Blaue. ... Renault...

Modellierung -  · spr¨unglichen Objekte: zwei Halbkugeln, eine Rote und eine Blaue. ... Renault...

Date post: 04-Jun-2018
Category:
Upload: trinhtram
View: 214 times
Download: 0 times
Share this document with a friend
18
Modellierung Oliver Hartmann [email protected] 18. Juni 2007
Transcript

Modellierung

Oliver [email protected]

18. Juni 2007

Inhaltsverzeichnis

1 Boolesche Operationen 31.1 Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Splines 42.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Kubische Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 B-Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.5 Bezier-Kurven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.6 NURBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.7 Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.7.1 Extrude . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.7.2 Skinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.7.3 Curve Deform . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.8 Umwandlung in Polygone . . . . . . . . . . . . . . . . . . . . . . 11

3 Scultping 11

4 Volumengrafik 124.1 Modellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2 Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.2.1 Marching Cubes . . . . . . . . . . . . . . . . . . . . . . . 144.2.2 Ray Casting . . . . . . . . . . . . . . . . . . . . . . . . . . 144.2.3 Texture Mapping . . . . . . . . . . . . . . . . . . . . . . . 154.2.4 3D-Texture Mapping . . . . . . . . . . . . . . . . . . . . . 16

2

1 Boolesche Operationen

1.1 Operationen

Diese Modellierungstechnik beschrankt sich darauf, zwei Objekte miteinanderzu kombinieren. Es stehen dabei drei verschiedene Operationen zur Verfugung,die in den Abbildungen 2, 3 und 4 gezeigt werden. Abbildung 1 zeigt die ur-sprunglichen Objekte: zwei Halbkugeln, eine Rote und eine Blaue. Wichtig beiden Booleschen Operationen ist ein geschlossenes Mesh. Die Anwendung musserkennen konnen, welcher Raum außerhalb und welcher Raum innerhalb desObjekts liegt.

Abbildung 1: zwei Halbkugeln [2] Abbildung 2: Union [2]

Abbildung 3: Intersection [2] Abbildung 4: Difference [2]

Union (Abbildung 2) beschreibt die Vereinigung. Auf den ersten Blick er-kennt man nach einer Vereinigung keinen Unterschied. Allerdings sind die 2Objekte miteinander verschmolzen, so dass innerhalb des Modells keine Poly-gone mehr zu finden sind.Intersection (Abbildung 3) bildet die Schnittmenge der beiden Objekte. Esbleibt nur das Volumen, das vorher beide Objekte gemeinsam hatten.Difference (Abbildung 4) subtrahiert das zweite Objekt vom ersten Objekt. Hierist es wichtig, dass die Anwendung eine Reihenfolge kennt.

3

1.2 Probleme

Leider eignet sich diese Technik nicht fur alle Objekte. Manche Modelle besit-zen Fehler nachdem eine Operation ausgefuhrt wurde. Als Beispiel sehen wirins Abbildung 5 zwei Kugeln, die mit Union-Operator bearbeitet wurden. Manerkennt bei naherem Hinschauen an der Schnittstelle ein paar Artefakte.

Abbildung 5: Komplikationen bei booleschen Operationen [5]

2 Splines

2.1 Einleitung

Der Begriff Spline entstand aus dem Schiffbau. Er bezeichnete ursprunglich eineHolzlatte des Schiffes. Sie waren sehr elastisch, so dass man sie in die Form desRumpfes bringen konnte, die anhand von mehreren Punkten festgelegt wurde.Ziel war es, die Holzlatten glatt durch die Punkte laufen zu lassen (siehe Abbil-dung 6).

Abbildung 6: Schiffsrumpf [1]

Ein Spline beschreibt die Verbindung zwischen p Punkten, die moglichst glatt

4

verlauft. Man versucht den Raum zwischen p Punkten darzustellen. Dies nenntman Interpolation. Im speziellen Fall der Splines, ist eine zusatzliche Bedingung,dass dabei keine Kanten entstehen.

2.2 Polynome

Eine Methode, um die Punkte zwischen den gegebenen Punkten zu bestimmen,sind Polygone. Gesucht wird dabei ein Polygon, dass durch alle Punkte verlauft.Gegeben sind p Punkte. Ein Polygon hat die Form f(x) = anxn + an−1x

n−1 +an−2x

n−2+. . .+a1x1 + a0 wobei n den Grad des Polynoms angibt. Um das

Polygon durch alle p Punkte laufen zu lassen, braucht man mindestens ein Gradvon n− 1. Das heißt man hat p unbekannte Vorfaktoren an−1. . . a0. Da sich furjeden Punkt eine Gleichung aufstellen lasst, entsteht ein Gleichungssystem mitp Zeilen:

f1(x1) = anxn1 + an−1x

n−11 + an−2x

n−21 +. . .+a1x

11 + a0

f2(x2) = anxn2 + an−1x

n−12 + an−2x

n−22 +. . .+a1x

12 + a0

f3(x3) = anxn3 + an−1x

n−13 + an−2x

n−23 +. . .+a1x

13 + a0

. . .fp(xp) = anxn

p + an−1xn−1p + an−2x

n−2p +. . .+a1x

1p + a0

Da man ebensoviele Unbekannte a wie Gleichungen hat, lasst sich dieses Glei-chungssystem uber das Gaußsche Eliminationsverfahren losen.Allerdingss benotigtder Algorithmus n3 Operationen, wobei n die Anzahl der Unbekannten darstellt.Bei vielen Punkten wird der Ressourcenbedarf also schnell, sehr groß. Ein weite-res Problem zeigt Abbildung 7: Liegen die Punkte ungeschickt, schlagen mancheKurven sehr schnell aus und werden unschon. Die Kurve ist anhand der Punktenur schwer zu kontrollieren.

Abbildung 7: Polynom vom Grad 4

5

2.3 Kubische Polynome

Um die Probleme des Ressourcenhungers und den unschonen Kurven zum um-gehen, benutzt man jeweils ein Polynom zwischen 2 Punkten. Man hat dannbei p Punkten p − 1 Polynome. Allerdings kommt nun ein weiteres Problemhinzu: Die Verbindung zwischen 2 Polynomen muss glatt verlaufen. Dazu mussdie Steigung und die Krummung an dem Schnittpunkt ubereinstimmen. Im ma-thematischen Sinne ist das die erste und die zweite Ableitung, also f ′(x) undf ′′(x).So bekommen wir wieder ein Gleichungssystem, das sich diesmal aber aus vierGleichungen und vier Unbekannten zusammensetzt. Allerdings nicht fur diekomplette Interpolation, sondern nur zwischen 2 Punkten. Das ist in Fallenmit vielen Punkten trotzdem wesentlich performanter, als ein einziges Polynomzu benutzen. Das Polynom hat also die Form f(x) = a3x

3 +a2x2 +a1x+a0. Es

ist also ein kubisches Polynom. Weiterhin benotigen wir f ′(x) = 3a3x2 +2a2x+

a1 + 0a0 und f ′′(x) = 6a3x + 2a2 + 0a1 + 0a0. Unser Gleichungssystem besitztfolgende Form:

f(x1) = a3x31 + a2x

21 + a1x1 + a0

f(x2) = a3x32 + a2x

22 + a1x2 + a0

f ′(x1) = 3a3x21 + 2a2x1 + a1 + 0a0

f ′′(x1) = 6a3x1 + 2a2 + 0a1 + 0a0

Auch hier kann wieder das Gaußsche Eliminationsverfahren benutzt werden.Wie man in Abbildung 8 erkennen kann, verlaufen die zusammengesetzten ku-bischen Polynome schoner.

Abbildung 8: Kubisches Polynom

6

2.4 B-Splines

Das Wort B-Spline ist eine Abkurzung und steht fur Basis-Spline. Diese Kurvenwerden in der Parameterform dargestellt. Sie basieren auf folgender Formel:

C(t) =n−p∑i=1

PiNi,p,τ (t)

Wobei t die Position des Punktes auf der Kurve bestimmt: t ∈ [0, 1]. C(t) ergibtdann den Punkt an der Stelle t, der durch die Kontrollpunkte Pi und die BasisNi,p,τ (t) bestimmt wird. Die Kontrollpunkte werden auch De-Boor-Punkte ge-nannt. Mit diesen Punkten lasst sich das Aussehen der Kurve leicht steuern.Die Basis entscheidet hierbei uber eventuelle Rundungsfehler und wie gut sichdie Kurve praktisch einsetzen lasst. So hat sich eine bestimmte Basis etabliert,die numerisch stabil ist und eine einfache Berechnung mittels der 3-Term-Rekursionzulasst.

2.5 Bezier-Kurven

Die Bezier-Kurve wurde in den 60er Jahren von Pierre Bezier, der damals beiRenault arbeitete, erfunden. Sie ist auch heute noch ein wichtiges Werkzeug invielen CAD- und Modellierungsanwendungen. Diese Kurve stellt eine Teilmengeder B-Splines dar, da sie eine besondere Basis benutzt: die BernsteinpolynomeB. Sie haben ein paar besondere Eigenschaften: linear unabhangig, Positivitat(Bi,n(t) > 0 fur alle t ∈ [0, 1]), die Zerlegung der 1 (

∑ni=0 Bi,n(t) = 1) und nur

ein Extrema im Intervall [0, 1].Die Kurve verlauft allerdings nicht durch alle Kontrollpunkte, sondern nur durchden ersten und den letzten. Die anderen Punkte wirken wie Magnete auf die Kur-ve. Außerdem wirkt sich eine Veranderung eines Punktes global auf die kom-plette Kurve aus. Deshalb werden in der Praxis mehrere Kurven festen Gradeszusammengesetzt, die an ihren Schnittstellen stetig ubergehen. In Blender [5]

Abbildung 9: Bezier-Kurve mit 4 Punkten

werden Bezier-Kurven eingesetzt, die aus 4 Punkten aufgebaut sind (siehe Ab-bildung 9). Die Punkte b und c werden also sogenannte Anfasser bzw. Handlereingesetzt. Die Gerade durch a und b (c und d) kann man als Tangente anden Punkt a (d) sehen. Werden nun mehrere Kurven aneinander gesetzt wiein Abbildung 10 - hier sind es drei Kurven -, so laßt man die Tangenten andem Schnittpunkt parallel verlaufen, damit kein Knick zwischen den Kurvenentsteht. Allerdings muss dies nicht immer so sein. In Blender stehen fur dieSchnittpunkte vier verschiedene Handler zu Verfugung. Diese sind in Abbil-dung 10 bis 13 dargestellt. Abbildung 10 zeigt die bereits vorgestellte Methode.

7

Abbildung 10: Aligned [5] Abbildung 11: Free [5]

Abbildung 12: Vector [5] Abbildung 13: Auto [5]

Man kann die Handler von manuell bewegen, ohne dass ein Knick zwischen 2Kurven entsteht. In Abbildung 11 lassen sich die Handler ebenfalls frei bewe-gen, mit dem Unterschied, dass sie diesmal unabhangig von der Nachbar-Kurvesind. Es sind nun auch Ecken in der Kurve moglich. Abbildung 12 zeigt denVector-Modus: er ist eine Erweiterung des Free-Modus, in dem die Tangentenautomatisch in die Richtung der Nachbar Punkte ausgerichtet wird. So entste-hen lineare Strecken zwischen den Punkten. Im Auto-Modus aus Abbildung 13versucht die Anwendung die Handler so auszurichten, dass eine moglichst rundeKurve entsteht.

2.6 NURBS

Abbildung 14: NURBS-Kurve [5]

Die Abkurzung NURBS steht fur nonuniform rational basis splines. Sie istdie allgemeinste Form um Kurven zu zeichnen. Zum Beispiel ist es mit Bezier-Kurven nicht moglich einen echten Kreis zu zeichnen. Er wird immer nur eineAnnaherung an einen Kreis darstellen. Dies wird mit NURBS ermoglicht. Auf-grund ihrer Exaktheit finden diese Kurven ihren haufigsten Einsatz in CAD-Anwendung in der Industrie.Eine wichtige Eigenschaft dieser Kurven ist ihre Rationalitat: Wie stark einKontrollpunkt die Kurve steuert laßt sich uber eine Gewichtung einstellen. Diesmacht die Kurve aber ein Stuck schwerer zu handhaben wie die Bezier-Kurven.

8

2.7 Anwendung

2.7.1 Extrude

Beim Extrudieren gibt der man der Kurve eine Hohe. Ist die Kurve offen, ent-steht eine Wand senkrecht uber der Kurve (siehe Abbildung 15). Diese besitztallerdings keine Dicke. Ist die Kurve geschlossen, werden den Wanden automa-tisch sogenannte Caps hinzugefugt, die das Volumen oben und unten schließen.Zusatzlich lassen sich diese Volumen an den Enden noch abrunden. Dieser Effektnennt sich Bevel (siehe Abbildung 16). Der Feinheitsgrad laßt sich dabei einstel-len. Man kann dieses Verfahren auch noch erweitern, in dem man zusatzlich zu

Abbildung 15: Extrude [5] Abbildung 16: Extrude mit Bevel [5]

dem Profil auch noch einen Pfad angibt, der das Objekt nicht nur senkrecht indie Hohe wachsen laßt, sondern der Hohe den Weg beschreibt. In Abbildung 17wurde ein Kreis als Profil benutzt. Die zweite Kurve wurde als Pfad verwendet.Die Kombination der beiden Kurven sieht man in Abbildung 18. Die entstan-

Abbildung 17: Pfad und Profil [5] Abbildung 18: Ergebnis [5]

dene Figur laßt sich nochmal zusatzlich verfeinern, indem man einen Punkt desPfades selektiert und an dieser Stelle manuell die Dicke des Objekts andert. EinBeispiel sieht man in Abbildung 19. Wahlweise kann die Dicke auch uber einezusatzliche Kurve, wie in Abbildung 20 angeben.

2.7.2 Skinning

Eine weitere Moglichkeit mit Splines zu arbeiten ist das Skinning. Man kanndas Verfahren in 4 Schritte unterteilen:

9

Abbildung 19: Manuelle Dicke[5]Abbildung 20: Verwendung einer zusatzli-chen Kurve [5]

1. Erstellen eines Profils aus einer Kurve (Abbildung 21)

2. Kopieren des Profils entlang der X-Achse (Abbildung 22)

3. Verandern der Profile, durch Verziehen der Kontrollpunkte, Skalieren, Ver-schieben und Rotieren bis die gewunschte Form entsteht. (Abbildung 23)

4. Uberziehen der Haut. Daher stammt auch der Begriff Skinning. (Abbil-dung 24)

Wichtig bei diesem Verfahren ist, dass alle Profile die selbe Anzahl an Kontroll-punkten besitzen. Deshalb wird standardmaßig auch so verfahren, dass man einProfil erstellt, das dann kopiert wird.

Abbildung 21: Profil erstellen [5] Abbildung 22: Kopieren des Profils [5]

Abbildung 23: Verandern des Profils [5] Abbildung 24: Skinning [5]

10

2.7.3 Curve Deform

Abbildung 25: Verformung entlang eines Pfades [5]

Entlang eines Pfades Verformen ist eine einfache Methode ein Objekt eineVerformung zu geben. Eine Achse des Objekts wird durch einen Pfad ersetzt.Nun wird das Mesh entlang dieser Achse verschieben und die Polygone pas-sen sich der Kurve an. Abbildung 25 zeigt einen Affenkopf, der zusatzlich mitSubdivision Surfaces bearbeitet und mit der Kurve verbunden wurde. Man kanndeutlich die Verformung an den 3 verschiedenen Positionen der Kurve erkennen.

2.8 Umwandlung in Polygone

Fur das Rendern werden die Objekte, die man aus Splines erstellt, in Polygoneumgewandelt. Insbesondere ist es fur das Shading wichtig, da dazu die Normalengebraucht werden. Hierbei laßt sich die Auflosung beliebig einstellen. Abbildung26 zeigt ein mit Spline modelliertes Glas, das mit einer hohen Polygon-Auflosunggerendert wurde, wahrend Abbildung 27 ein Mesh mit geringer Auflosung zeigt.

Abbildung 26: Hohe Auflosung [5] Abbildung 27: Niedrige Auflosung [5]

3 Scultping

Beim Sculpting dreht es sich nur um die Modifikation eines vorhandenen Meshes:um die nachtragliche Verfeinerung und Einarbeitung von Details. Es lassen sichkeine zusatzlichen Vertices, Edges oder Splines hinzufugen bzw. entfernen. AlsAusgangsmodell sollte man ein hochauflosendes Mesh benutzen oder vor demSculpting Subdivision Surfaces verwenden.

11

Beim Sculpting wird mit verschieden Pinseln auf dem Mesh gemalt. Durch 8verschiedene Pinsel konnen unterschiedliche Effekte erzielt werden. Zu jedemPinsel lasst sich die Große des Pinsels und die Starke einstellen. Manche Pinselbesitzen auch zusatzliche Optionen:

• Draw – Malt eine weiche Kurve auf das Model

• Smooth – Glattet die Vertices an der Stelle des Pinsels

• Pinch – Zieht die Vertices in die Mitte des Brushes

• Inflate – Verschiebt die Vertices in die Richtung ihres Normalvektors

• Grab – Nimmt mehrere Vertices und verschiebt diese mit dem Pinsel

• Layer - Malt eine Kurve mit einer limitierten Hohe auf das Model

• Flatten – Erzeugt eine ebene Flache anhand der Normals

Die Sculpting Technik eignet sich sehr gut fur organische Modelle. Sie ist nichtdafur ausgelegt, Objekte mit klaren Formen zu erstellen, da das Modellierenmit dem Pinsel ungenau ist. Dafur lassen sich aber einfach Unregelmaßigkeiteneinbauen.

Abbildung 28: Sculpting [5]

4 Volumengrafik

Die Volumengrafik wird hauptsachlich in der Medizin verwendet. Im Gegensatzzu der Polygontechnik, die nur die Oberflache eines Modelles beschreibt, be-sitzt die Volumengrafik auch Informationen uber den Inhalt. Die Informationenwerden in sogenannten Voxeln gespeichert. Dieser Begriff setzt sich aus den bei-den Begriffen Pixel und Volumen zusammen. Jedes dieser 3D-Pixel besitzt einenDichte-Wert. Diese Voxel werden in 3D-Arrays gespeichert, die beliebige Großenbesitzen konnen. Aus diesem Grund eignet sich die Technik auch sehr gut furModelle ohne klare Formen, wie Landschaften, Felsen, Wolken, flussige Stof-fe und halbtransparentes Gewebe. Vor allem Materialien, die semitransparentsind, haben einen Vorteil gegenuber Polygonmodellen, da diese keine Angabenuber den Inhalt geben. Ein großes Problem bei Volumengrafik ist die Menge anDaten, die verarbeitet werden mussen. So verbraucht ein Array mit den Maßen2563 und 8 Bit Dichte schon 16 Megabyte an Speicher. Wird die Große auf 10243

erhoht, wird bereits 1 Gigabyte benutzt.

12

Abbildung 29: 3D-Array [10]

4.1 Modellierung

Es gibt viele Moglichkeiten ein 3D-Array zu fullen. Oft werden diese kombiniertum auf das gewunschte Ergebnis zu kommen. Einige Methoden waren:

• Hardware: In der Medizin werden die Daten oft uber die Kernspintomo-graphie oder die Computertomographie gewonnen. Die Kernspintomogra-phie wird auch Magnet-Resonanz-Tomographie genannt und kann uber einMagnetfeld die Dichte von Gewebe ermitteln, welche darauf in Voxeln ge-speichert wird. Die Computertomographie gewinnt ihren Daten uber vieleaus verschiedenen Richtungen aufgenommenen Rontgenstrahlen.

• Prozedural: Mit mathematischen Formeln und Fraktalen lassen sich re-gelmaßige und unregelmaßige Strukturen erstellen. Dieses Verfahren wirdsehr oft mit anderen kombiniert.

• Sculpting: Diese Methode wurde bereits in Kapitel 3 vorgestellt. Sie eig-net sich nicht nur fur Polygonmodelle, sondern auch fur die Volumengrafik.

• Boolesche Operationen: Primitive und boolesche Operationen sind oftdie Grundlage fur verschiedene Formen. Wolken werden oft aus vielenKugeln erstellt.

• Simulation: Wasser, Rauch oder Feuer kann man uber Simulationen er-zeugen. Dazu werden jedem Voxel bestimmte Eigenschaften und Abhangig-keiten untereinander gegeben. Damit laßt sich dann die Bewegung jedesVoxels und die Veranderung ihrer Eigenschaften uber die Zeit berechnen.Vorteil dieser Technik ist außerdem, dass man zusatzlich gleich eine Ani-mation bekommt.

• Displacement Mapping: Es wird erst eine Textur erstellt, die man dannals Hohenangabe benutzt. Oft besitzen diese Texturen einen 8-Bit Far-braum. Dieses Bild wird dann auf das Array gelegt. Der Farbwert 0 er-gibt die tiefste Stelle im Gegensatz zu 256 der dann einen Berg darstellenwurde. Diese Technik eignet sich gut fur Landschaften.

• Polygone: In diesem Verfahren wird zuerst ein Polygonmodell erstellt.Dieses laßt sich dann uber ein Algorithmus in ein Volumenmodell verwan-deln.

13

4.2 Darstellung

4.2.1 Marching Cubes

Bei der Marching Cubes Technik handelt es sich um ein Verfahren, Voxeldatenin Polygondaten umzuwandeln. Dies hat den Vorteil, dass Polygondaten hard-warebeschleunigt dargestellt werden konnen. Als erster Schritt wird das Array inkleine Wurfel unterteilt, die jeweils mit 8 Voxeln beschrieben werden. Anhandeines Grenzwertes, den man vorher festgelegt hat, wird anhand seiner Dichteentschieden ob ein Voxel innerhalb des Modells liegt oder nicht. So bekommtjeder Voxel eine 0 oder eine 1 zugewiesen. Da jeder Wurfel 8 Ecken, mit je ei-nem Voxel besitzt, kann man diesem einen 8 Bit Wert zuweisen. Es gibt also28 = 256 verschiedene Kombinationen. Jetzt kommt die sogenannte Triangle

Abbildung 30: TLT [9]

Lookup Table (TLT - Abbildung 30) zum Einsatz. In dieser Tabelle gibt eszu jedem der 256 Werte eine von 15 Moglichkeiten wie die Polygone innerhalbdieses Wurfels liegen konnen. Weitere Algorithmen konnen diese Methode nochverfeinern, indem sie nicht jeden Wurfel seperat betrachten, sondern auch dieNachbarn miteinbeziehen.

4.2.2 Ray Casting

Diese Technik verspricht eine sehr gute Qualitat, allerdings ist sie dank fehlen-der Hardwareunterstutzung sehr langsam.Am Anfang werden jedem Voxel anhand seiner Dichte, weitere Materialeigen-schaften wie Farbe, Reflexion und Transparenz zugewiesen. Dies ist vor allemwichtig wenn man zum Beispiel Daten aus dem Computertomographen be-kommt, der nur eine Information liefert.Der nachste Schritt besteht darin, das Shading zu berechnen. Bei Polygonmo-dellen wird das anhand der Normalen und deren Winkel zur Bildflache gemacht.Bei Volumengrafiken berechnet man das Aquivalent dazu: den Gradienten. Die-ser zeigt in die Richtung der geringsten Dichte.Da die Voxel nulldimensional sind und kein Volumen besitzen, wird der Raumzwischen den Punkten interpoliert. Dazu gibt es mehrere Moglichkeiten: linear

14

Abbildung 31: Compositing [8]

(es wird der Durchschnitt zwischen 2 Voxeln gebildet), bilinear (4 Voxel) odertrilinear (8 Voxel).Am Schluss folgt das eigentliche Rendering, auch Compositing (Abbildung 31)genannt. Dazu wird von der Bildebene aus pro Pixel ein Strahl ausgeschickt, derdurch das Volumen geht. Jeden Wurfel, den ein Strahl durchquert, verandertFarbe und Transparenz und ergibt am Schluss den Farbwert fur den Pixel aufder Bildebene.

4.2.3 Texture Mapping

Abbildung 32: Texture Mapping [8]

Das Array wird in 2D-Schichten geschnitten. Anhand der Voxeldaten werdenfur jede Schicht eine Textur im RGBA Format erstellt. Damit am Schluss nichtnur die erste Schicht betrachtet wird, besitzen die Texturen ein Alphakanalund konnen damit Transparenz darstellen. Der Vorteil dieses Verfahren liegt inder Geschwindigkeit. 2D-Schichten konnen als Polygone dargestellt werden undwerden dadurch durch die meisten Grafikkarten unterstutzt.

15

Die optimale Qualitat wird erreicht, wenn die Schichten parallel zur Bildebenestehen. Sobald sich das Array aber dreht, wird die Darstellung schlechter. Umdiesen Effekt ein wenig zu verringern benutzt man 3 verschiedene Arrays undkann damit den Winkel ≤ 45 Grad halten. Ein weiteres Problem entsteht beimRendern einer perspektivischen Projektion. Dazu mußten die Schichten gebogensein.

4.2.4 3D-Texture Mapping

Abbildung 33: 3D Texture Mapping [8]

Es handelt sich dabei um eine Abwandlung des Texture Mapping (Kapitel4.2.3), die spezielle Hardware voraussetzt. Vorteil ist eine bessere Bildqualitat,da die Schichten immer parallel zur Bildebene gehalten werden. Vor dem Ren-dering wird der gesamte Satz in den Grafikkartenspeicher geladen. Erst danachwird das Array in Scheiben geschnitten. Da dies bei jedem Frame erneut ge-macht wird, ist es moglich die Schichten immer parallel zur Bildebene zu halten.Allerdings erfordert es spezielle Hardware um dies flussig darzustellen.

16

Literatur

[1] Splines in Theorie und Praxis: http://www.mathematik.de/spudema/spudema_beitraege/beitraege/scheiffert/index.htm

[2] Blender Dokumentation: http://de.wikibooks.org/wiki/Blender_Dokumentation

[3] Wikipedia - B-Spline: http://de.wikipedia.org/wiki/B-Spline

[4] Informatik Universitat Osnabruck - Kurven: http://www-lehre.informatik.uni-osnabrueck.de/~cg/2000/skript/7_Kurven.html

[5] Blender - open source 3D content creation suite: http://www.blender.org/

[6] Magnetresonanztomographie http://www.netdoktor.at/ratschlaege/untersuchungen/magnetresonanztomographie.shtml

[7] Direkte Volumenvisualisierung auf unstrukturierten Gittern mit OpenSGin AVS/Express http://www.cgv.tugraz.at/0x811be082_0x00004aef

[8] Volume Rendering von Martin Seelge http://www.informatik.uni-mainz.de/lehre/cg/SS2006_SCG/talks/VolumeRendering/VolumeRendering.pdf

[9] Marching Cubes von Arnfried Weber http://www.informatik.uni-mainz.de/lehre/cg/SS2006_SCG/talks/MarchingCubes/MarchingCubes.ppt

[10] Wikipedia - Marching Cubes http://de.wikipedia.org/wiki/Marching_Cubes

17

Abbildungsverzeichnis

1 zwei Halbkugeln [2] . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Union [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Intersection [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Difference [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Komplikationen bei booleschen Operationen [5] . . . . . . . . . . 46 Schiffsrumpf [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Polynom vom Grad 4 . . . . . . . . . . . . . . . . . . . . . . . . . 58 Kubisches Polynom . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Bezier-Kurve mit 4 Punkten . . . . . . . . . . . . . . . . . . . . . 710 Aligned [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811 Free [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812 Vector [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813 Auto [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814 NURBS-Kurve [5] . . . . . . . . . . . . . . . . . . . . . . . . . . 815 Extrude [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916 Extrude mit Bevel [5] . . . . . . . . . . . . . . . . . . . . . . . . 917 Pfad und Profil [5] . . . . . . . . . . . . . . . . . . . . . . . . . . 918 Ergebnis [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919 Manuelle Dicke[5] . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 Verwendung einer zusatzlichen Kurve [5] . . . . . . . . . . . . . . 1021 Profil erstellen [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022 Kopieren des Profils [5] . . . . . . . . . . . . . . . . . . . . . . . . 1023 Verandern des Profils [5] . . . . . . . . . . . . . . . . . . . . . . . 1024 Skinning [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025 Verformung entlang eines Pfades [5] . . . . . . . . . . . . . . . . 1126 Hohe Auflosung [5] . . . . . . . . . . . . . . . . . . . . . . . . . . 1127 Niedrige Auflosung [5] . . . . . . . . . . . . . . . . . . . . . . . . 1128 Sculpting [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 3D-Array [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1330 TLT [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1431 Compositing [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532 Texture Mapping [8] . . . . . . . . . . . . . . . . . . . . . . . . . 1533 3D Texture Mapping [8] . . . . . . . . . . . . . . . . . . . . . . . 16

18


Recommended