Previous: Körper
Up: Arbeitsgruppe Renderer
Next: Material
Unterabschnitte
Als Grundgeometrieen sind folgende abstrakte Beschreibungsmöglichkeiten
vorgesehen:
- Punktliste
- Verzeigerte Kantenliste
- Verzeigerte Flächenliste
Darüber hinaus war noch die Kugel als vorgefertigte geometrische
Grundstruktur vorgesehen. Die Kugel ist allerdings noch nicht implementiert.
Eine Punktliste besteht einfach aus einer Liste von dreidimensionalen
Koordinaten, die sequentiell durchlaufen und dargestellt werden kann.
Punkten kann man Grösse, Farbe und Materialeigenschaften zuweisen. Die
Grösse eines Punktes erweist sich als etwas schwierig für die
dreidimensinale Darstellung, da sie eine von der Entfernung des Betrachters
unabhängige Grösse ist. Weit entfernte Punkte haben also die gleiche
Grösse, wie nah gelegene. Punkte können mit oder ohne Kantenglättung
gerendert werden. Bei eingeschalteter Kantenglättung werden die Punkte
als kreisrunde Flächen mit der halben Punktgrösse als Radius
gezeichnet. Bei ausgeschalteter Kantenglättung werden sie als quadrate
mit der Punktgrösse als Kantenlänge dargestellt. Ein Beispiel fr ein
Punktmodell
ist in Abbildung
zu sehen.
Punktmodell des Buchstaben C aus dem CGP-2000 Logo. DasModell ist nicht Beleuchtet und die Farben stammen aus einem Array mit RGBAFarben.
Eine verzeigerte Kantenliste ähnelt der Punktliste grundsätzlich. Sie
besteht wie die Punktliste aus einer Liste mit 3D Koordinaten, allerdings
gefolgt von einer Liste mit Indizes, die in die Liste mit Koordinaten
verweisen. Jeweils zwei Indizes werden zu einer Linie zusammengefasst und
gezeichnet. Möchte man einene Linienzug beschrieben, so muss man die
Verbindungspunkte jeweils zweimal aufschreiben.
Eine Indexliste der Form {0,1,2,3,4,6} erzeugt drei voneinander
unabhngige Linien, möchte man einen Linienzug von Punkt 0 zu Punkt 6, so
muss man die Indexliste folgendermassen wählen
{0,1,1,2,2,3,3,4,4,5,5,6}.
In der Abbildung
ist die
Punktgeometrie von Abbildung
als Drahtgittermodell mit Linienzügen zu sehen.
Linienmodell des Buchstaben C aus dem CGP-2000 Logo. DasModell ist nicht Beleuchtet und die Farben stammen aus einem Array mit RGBAFarben.
Die Flächenliste ähnelt in ihrem Aufbau der Kantenliste sehr stark. Im
Gegensatz zu der Kantenliste werden über die Indizes natürlich Flächen
und keine Kanten erstellt. Der letzte Punkt aus der Indexliste wird dabei
automatisch mit dem ersten Punkt verbunden um ein geschlossenes Polygon zu
erreichen, es werden also nur die Eckpunkte des Polygons angegeben. Die
Punkte müssen , wenn man von vorne auf die Fläche schaut entgegen dem
Uhrzeigersinn angegeben werden, damit der Back-Face-Culling Algorithmus
korrekt arbeitet. Ursprünglich war es vorgesehen zu den Flächenlisten
optional Normalenvektoren angeben zu können. Im Moment ist es allerdings
so, dass die Normalen immer automatisch berechnet werden.
Es ist möglich der Flchenbeschreibung Farben mitzugeben. Die Farben sind
per Seite und nicht per Vertex zu verstehen. Sollte das Array mit Farben
kürzer sein, als die Flächenliste, so wird am Anfang des Arrays neu
gestartet.
Die Eckpunkte für eine Fläche müssen ein konvexes nicht gekrümmtes
Polygon beschreiben, da der Darstellungsalgorithmus ansonsten undefinierte
Effekte bringt. Die automatische Tesselierung von Polygondaten ist nicht
vorgesehen.
Auf Abbildung
ist ein ohne Materialeigenschaften gerendertes Flächenmodell zu sehen.
Flächenmodell des Buchstaben C aus dem CGP-2000 Logo. DasModell ist nicht Beleuchtet und die Farben stammen aus einem Array mit RGBAFarben.
Previous: Körper
Up: Arbeitsgruppe Renderer
Next: Material