ich hab' mich schon immer gewundert, wie in einem Ego-Shooter der Sniper-Zoom realisiert wird. Ich nehme mal an, es wird eine transparente Schicht mit einem den Bildschirm füllenden Fadenkreuz im 2D-Modus gezeichet. Aber wie funktioniert der eigentliche Zoom? Erst dachte ich, man könnte doch einfach die Kamera 50m weiter nach vorne bewegen, aber wenn ich mich in einem Shooter vor eine Wand stelle, und dann draufzoome, müsste ich ja eigentlich durch die Wand zoomen. Wie kann man denn einen Zoom realisieren, der sich der Entfernung des Objektes, welches man anzoomt, anpasst?
Mfg, Gran
_________________ Der Bump Mapping User ist nur zu faul, selbst eine Wand mit Tesselation zu erstellen
Verkleiner den Sichtwinkel (wenn du GluPerspektive nutzt, musste nur einen Wert ändern).
Je kleiner der Sichtwinkel, desdo größer der Zoomfaktor (normal sind 60-90°, für sinper würd ic ca 20° oder so ausprobieren)
Registriert: Di Dez 02, 2003 12:47 Beiträge: 300 Wohnort: Marburg
Bei der Initialisierung von Opengl oder vor jedem Rendervorgang wird folgende Funktion aufgerufen:
gluPerspective(Angle,Width/Height,Min,Max);
Angle gibt den Sichtwinkel.
Width/Height ist das Seitenverhältniss deines Renderfensters (640/480 oder so).
Min und Max geben die minimale und maximale Sichtweite.
Zoomen ist im Prinzip lediglich eine Verkleinerung des Sichtwinkels (Optischer Zoom)
Dadurch bleibt auch die Wand hübsch vor dir
Bei 60° Sichtwinkel müsstest du ihn auf
arcsin(sin(60°)/2)
verkleinern um 2X zu Zoomen (glaub ich) für 3X halt auf
arcsin(sin(60°)/3)...
Den Zoom ans Objekt anzupassen wird je nach anwendung komplizierter (wurde letztens gerade diskutiert).
_________________ Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.