Spezielle Probleme der Zentralprojektion, der "Kamera-Winkel"
Nur mit Zentralprojektion möglich: Man steht im Wald

Das Problem

Während die Darstellungen mit der Parallelprojektion bei beliebigen Parametern weitgehend unkritisch (und deshalb in der Regel zu bevorzugen) sind, bietet die Zentralprojektion zusätzliche Möglichkeiten und damit auch Risiken (man beachte die Bemerkungen zum Versagen der Projektionsformeln am Ende der theoretischen Darstellung auf der Seite "Mathematik der Zentralprojektion").

Wenn der "Eye point" in ausreichender Entfernung von dem darzustellenden Objekt liegt, gibt es bei der Zentralprojektion eigentlich keine Probleme. Die Möglichkeit, den "Eye point" auch in das darzustellende Objekt hineinzulegen (vgl. nebenstehende Abbildung), verlangt einige besondere Maßnahmen, die der Programmierer zu beachten hat. Hier werden die Probleme diskutiert und die Vorsichtsmaßnahmen beschrieben, die in den CanvasGI-Funktionen eingebaut sind, um einerseits kritische Operationen zu vermeiden, andererseits möglichst mit jeder Einstellung "ein vernünftiges Bild" zu erzeugen. Hier werden zunächst die zu beachtenden Probleme gelistet:

"Eye point" für
Zentralprojektion:
x = 
y = 
z = 
Referenzpunkt:
x = 
y = 
z = 
Kamerawinkel:
α °
Zoom ...   So sieht es ein
Spaziergänger ...
Verschiebung: 

Realisierung in CanvasGI

In CanvasGI sind einige Vorsichtsmaßnahmen getroffen worden, die (bei recht geringem Aufwand) die meisten der genannten Probleme umgehen, so dass der Programmierer in der Regel auf die (für ihn und das Programm) aufwendigen Algorithmen zur Realisierung der beschriebenen "3D-Clipping-Strategie" verzichten kann. Mit dem nebenstehend zu sehenden Bild, einer Modifikation des auf der Seite "Modell mehrfach kopieren, Zoom and Move" ausführlich erläuterten "Waldes", kann man die folgenden Eigenschaften der CanvasGI-Funktionen erproben:

Das "Clipping" wird also in den 2D-Bereich verlegt (und ist damit nicht sonderlich aufwendig). Linien, deren Endpunkte außerhalb des "Viewing frustums" liegen, sind also mit einem eventuell sichtbaren Anteil durchaus zu sehen. Es fehlen nur die Linien, bei denen ein Punkt im "Forbidden halfspace" (oder "beinahe im Auge") liegt und die trotzdem einen Teil innerhalb des "Viewing frustums" haben. Diese seltenen Ausnahmen rechtfertigen aber kaum eine aufwendige Schnittpunktberechnung.

Man kann das alles ausprobieren mit dem "Canvas", der hier einen "Wald" zeigt mit den Angeboten zur Einstellung der Projektionsparameter einschließlich Kamera-Winkel. Dazu sollte man ungefähr wissen, was mit welchen Abmessungen dargestellt wird (bei der Zentralprojektion kann es durchaus passieren, dass man "ins Leere" blickt):

Die 36 "Bäume" stehen in einem Quadrat auf der x-y-Ebene, der Fußpunkt des Stammes des Baumes vorn links hat die Koordinaten (0,0,0), der Fußpunkt des Stammes des Baumes hinten rechts hat die Koordinaten (75,75,0). Man darf sich die Dimension "Meter" dazudenken. Die x-Achse verläuft also entlang der vorderen Baumreihe, die y-Achse entlang der linken Baumreihe.

Dann steht also ein Betrachter mit dem "Eye point" - wie nebenstehend angegeben - im Wald ("Eye point" entspricht etwa der Augenhöhe) und blickt geradeaus "von (35,20,1.6) nach (35,100,1.6)". Diese Parameter werden automatisch eingestellt, wenn man oben auf das Menüangebot "So sieht es ein Spaziergänger im Wald" klickt.

Auch den Einfluss des Kamera-Winkels sollte man ausprobieren. Allgemein mag folgende Empfehlung gelten: Wenn der "Eye point" innerhalb des Objekts liegt, liefern kleinere Kamera-Winkel schönere Ansichten, bei "Außen-Ansichten" sollte man den voreingestellten Winkel (45°) akzeptieren, eventuell auch einen größeren Winkel wählen, was allerdings sehr schnell zu deutlichen Verzerrungen an den Bildrändern führt.

Beipiel-Programm "Spezielle Probleme der Zentralprojektion, Kamera-Winkel"

Das Beipiel-Programm "Spezielle Probleme der Zentralprojektion, Kamera-Winkel" enthält neben den oben beschriebenen Funktionen noch weitere Angebote. Es startet mit folgendem Bild:

Weiterlesen