OpenGL (3): Unterschied Ortho- und 1st-Person-Camera


#1

Kann den Unterschied jemand erklären?
Ungefähr weiß ich, was Viewpoint und Field of View ist, aber die Details oder Mathematik dahinter verstehe ich noch nicht so ganz.
Wahrscheinlich ist der Unterschied, dass es keine “Verzerrung” durch den gedachten Fluchtpunkt gibt, aber ist das richtig erklärt?


#2

Bei der Orthographischen Projektion gibt es keine Tiefe.
Vertices die sich weiter weg befinden sind nicht “kleiner” bzw. gestauchter.

Ein Würfel sieht dadurch aus als ob er nach hinten hin größer wird weil unser Gehirn erwartet dass er kleiner wird mit der Distanz und nicht gleich groß bleibt.
Nützlich bei CAD Anwendungen, dort ist ein realistisches Rendering eher hinderlich.
Genauso bei 2D Programmen und Spielen.

Die meisten 3D Spiele werden jedoch nicht die orthogonale Projektion bevorzugen.


#3

“First person camera” hat nicht notwendigerweise etwas mit der perspektivischen Verzerrung zu tun - eher damit, dass die Kamera der Sicht des Protagonisten entspricht, und man meistens mit WASD+Maus in der Gegend rumlaufen und schauen kann.

Die Kamera könnte dann auch eine orthographische sein, aber das wäre verwirrend und sogar sinnlos, weil die Tiefenwahrnehmung fehlt.

Der wichtig(er)e Unterschied ist zwischen “perspective camera” und “orthographic camera”. Die erste ist perspektivisch verzerrend, die andere nicht. Da findet man aber auch vieeele Seiten (mit anschaulichen Bildern!) im Web.


#4

Weil entlang Parallelen projiziert wird, und nicht, wie bei der perspektivischen Kamera, entlang Windschiefer auf einen Fluchtpunkt zulaufend?

Wäre diese Kamera sehr gut geeignet, um Pixel für Pixel (2D) zu zeichnen?


#5

So geeignet wie die realistische Projektion auch, dadurch dass du sowieso nur auf einer Ebene zeichnest.

Wenn du den Depth-Buffer verwendest ist die orthogonale Projektion besser weil du die Z-Achse dafür verwenden kannst.

Meist will man in 2D aber auch transparente Pixel zeichnen und dafür ist der Depth-Buffer wiederum ziemlich hinderlich.
Eine eigene Z-Achse (Zeichenreihenfolge) in 2D einzuführen und zu berechnen ist dabei unendlich leichter als im 3D Bereich und dann ist die verwendete Projektionsmatrix ziemlich egal.

Um es kurz zu machen: ja!