prev up next

Previous: Beleuchtung Up: Arbeitsgruppe Renderer Next: Renderer

Unterabschnitte


Kamera

Die Kamera verkapselt die Daten für das View Frustum. Die Kamera ist sinnbildlich als reale Kamera mit bestimmten Eigenschaften für die Renderingqualität zu sehen. Die Kamera kann an einen bestimmten Punkt in der Szene plaziert werden. Als weitere Information benötigt sie den Fokussierungspunkt, sowie den View Up Vektor. Als weitere Einstellung erlaubt die Kamera die angabe des Blickwinkels, man kann hier also einstellen, ob es sich um ein Teleobjektiv, oder eher um ein Fisheyeobjektiv handelt. Für das Rendeern von 3D Szenen ist es über die normalen Kameraeigenschaften natürlich noch notwendig den Aufnahmebereich der Kamera, also Front- und Backplane festzulegen.

Kameraführung

Die Kamera hat eine gewisse Menge an get und set Methoden, über die man den Standpunkt, bzw. die anderen Statusinformationen abfragen und setzen kann. Die Kamera selbst enthält keine Logik um sich zu bewegen, sondern ist ein rein statisches Objekt in der Szene. Möchte man mit der Kamera einen Bewegungspfad abgehen, so ist der Benutzer selbst dafür verantwortlich in angemessenen Intervallen die Standortinformationen zu ändern und dem Renderer die neue Kamera zum rendern zu übergeben.

Qualiätseigenschaften

Die Kamera kann als beschränkender Faktor für die Renderingqualität genutzt werden. Das heisst die Renderqualität ist maximal so gut, wie in der Kamera definiert, kann aber für bestimmte Objekte auch einzeln heruntergesetzt werden. Sollte die Software auf einem leistungsschwachen Rechner benutzt werden so gibt es die Möglichkeit in der Kamera bestimmte Leistungsmerkmale in ihrer Qualität zu verschlechtern, bzw. ganz auszuschalten. Die Kamera verfügt über eine Bitmaske mit möglichen Qualitätseigenschaften. Weiterhin sind in der Kamera gewisse Konstatnen definiert, die bestimmte Bits widerspiegeln. Über get und set und switch Methoden kann man die Informationen abfragen und setzen.

Schattierung

Es besteht die Möglichkeit Oberflächen in einer Farbei einzufärben, die über die Farbe in den jeweiligen Eckpunkten gemittelt wird, oder die Farbe über die Fläche zu interpolieren (Smooth- oder Gouraudshading). Zu den Problemen bei dem Entwurf der Geometrie und der Beleuchtung sind die Anmerkungen in Kapitel 3.0.6 zu studieren. Unter Schattierung ist nicht die Möglichkeit Schatten zu rendern gemeint. Dies ist eine Eigenschaft des Renderers, die in dem derzeitigen Stand der Implementation nicht vorgesehen ist.

Kantenglättung

Unter Kantenglättung (Antialiasing) versteht man den Vorgang, eine Linie nicht durch einen einfachen Zug von Pixeln darzustellen, sondern die Helligkeit jedes gestreiften Pixels zu betrachten und das entsprechende Pixel gegebenenfalls entsprechend einzufärben. Die Möglichkeit der Kantenglättung ist auch für Punkte implementiert und für Flächen zumindest vorgesehen. Ohne Kantenglättung werden Punkte einfach als Quadrate gezeichnet und Linien weisen das typische Treppenstufenmuster auf. Mit Kantenglättung werden Punkte als kreisrunde Flächen gezeichnet und die Linienpixel entsprechend ihrer Überlappung eingefärbt. Bei Polygonen ergäbe sich für die Kanten ein ähnlicher Effekt, wie bei geglätteten Linien. Die Glättung von Punkten, Linien und Polygonen kann getrennt voneinander ein- und ausgeschaltet werden. Auf der Abbildung

gif

kann man sehr schön die Unterschiede von geglätteten zu nicht geglätteten Punkten und Linien erkennen.






Links ein Beispiel für geglättete Punkte und Linien. Beider rechten Abbildung sind die Punkte und Linien nicht geglättet und dieTreppenstufen bei den Linien sind deutlich zu erkennen. Ausserdem sind diequadratischen Punkte nicht schön dargestellt.

Nebel

Die Kamera sieht schon die Möglichkeit vor Nebel ein bzw. auszuschalten. Wir haben Nebel auch einmal als Technologiestudie gerendert, obwohl die eigentliche Implementation keinen Nebel kann. Auf Abbildung

gif

ist das CGP-2000 Logo von Abbildung

gif

einmal mit Nebel gerendert.


CGP-2000 Logo mit Nebel


prev up next
Previous: Beleuchtung Up: Arbeitsgruppe Renderer Next: Renderer