Einzelnen Beitrag anzeigen

Zudomon

Registriert seit: 14. Feb 2007
84 Beiträge
 
Turbo Delphi für Win32
 
#120

AW: Eigenes 3D MMORPG mit Delphi möglich?

  Alt 5. Apr 2015, 14:55
Ich glaube, das Hauptproblem ist, dass es sich um eine Planare Abbildung handelt. Und nun bin ich einfach überfragt, wie ich das, was ich bisher damit an Erfahrung gesammelt habe, in normale Worte formuliere. Also ich weiß es nicht wirklich auszudrücken.
Im Gegensatz zur echten Wahrnehmung hat man ja ein kleineres Blickfeld. Im Endeffekt kommen beim normalen echtzeit 3D Rendering ja eine bestimmte Projektion zustande. Mal angenommen man schaut mit der Kamera in die Z Richtung und die Punkte werden dann einfach XY auf dem Bildschirm abgebildet, dann kommt eine orthogonale Projektion zustande. D.h. es ist keine Perspektive vorhanden. Das ist nicht sehr realistisch, aber dadurch kann man Größen direkt vergleichen. In 3D Programmen mit verschiedenen Ansichten wird eine solche orthogonale Projektion benutzt. Wenn man nun Perskeptive haben möchte, nimmt man die XY Werte und teilt diese noch durch Z. Das bedeutet, umso weiter die Punkte weg sind, umso kleiner wird X und Y.
Stellt man sich nun das, was die Kamera im Raum abdeckt, als Volumen vor, so erhält man eine Pyramide, dessen Brennpunkt in der Kameraposition liegt. Eigentlich gibt es dabei noch eine Near- und Far-plane. Also alles was näher ist, als die Near-Plane und alles was weiter ist, als die Far-Plane werden nicht gerendert. Dadurch wird es dann tatsächlich zur einer Pyramide mit abgeschnittener Spitze. Nun ist das Problem an dieser ganzen vereinfachten Sache, dass man den Winkel der Kamera nicht beliebig öffnen kann. Stellt man sich diese Pyramide vor, wie diese immer weiter gestaucht wird, um immer größere bereiche abzudecken, so wird man feststellen, dass bei 180° die Pyramide unendlich groß sein müsste, um dies abzudecken... außerdem würden ja dann alle linien auf eine ebene fallen.
fov.jpg
In dem Bild hab ich mal versucht, dass ein wenig abzubilden, was ich meine. Man sieht das das Viewfrustum von oben. Unten im Bild ist dann die Kamera.
Beim Raytracen hatte ich mal rumprobiert. Also da hat man die Außenlinien des Viewfrustum und interpoliert dann so, dass jeder Pixel ein Sichtstrahl bekommt. Wenn man nun die länge normalisiert, also dass dann quasi das Viewfrustum hinten (die Far-Plane) immer den gleichen Abstand zur Kamera hätte, dann würde das Bild automatisch so eine Fischaugenverzerrung bekommen. Dann wäre die Far-Plane auf den Bildern auch keine Linie mehr, sondern ein Bogen. So könnte man dann aber auch eine Perspektive mit beliebigen FOV abbilden, auch 360° und mehr. Aber wie gesagt, dass sind Raytracing Sachen und auch da würde es nicht aussehen, wie in der Wirklichkeit.
Bei Animationsfilmen fallen diese Randverzerrungen nicht auf, weil dort mit kleinen Winkeln gearbeitet wird. Also 30-60°...
Bei Spielen wiederrum müsst ihr mal drauf achten, wenn ihr euch ein Objekt aussucht, z.B. einen Ball und dann eure Sicht dreht, so dass dieser an den Bildrand kommt, dann sieht der Ball eher aus wie eine Elipse.
20150405_4.jpg20150405_5.jpg
  Mit Zitat antworten Zitat