Registriert: Fr Jan 04, 2008 21:29 Beiträge: 419 Wohnort: Lübeck
Hi ich habe mir gerade die Frage gestellt, ob man das glFrustum so einstellen kann, dass man einen rundum Blick der Szene in einen Pixelbuffer rendern kann. Ich hab mir das so vorgestellt, dass man ganz links hat, das was praktisch hinter dem Betrachter liegt, in der Mitte was vor einem ist und rechts, dass was wieder hintereinem liegt. gleichzeitig soll die obere Kante den Blick nach oben darstellen und die untere Kante den Blick nach unten.
wahrscheinlich denkt sich jetzt jeder was dieser Blödsinn soll, so will doch keiner zocken. Mag sein, aber ich wollte so die shadowmaps für pointlights in einem Rutsch rendern, dass kann dann auch ruhig in einer hohen Auflösung passieren, weil ja pro Licht nur noch 1renderpass gemacht werden muss und nicht 6 (die meisten benutzen garantiert ein cubemap ähnliches system).
Also wenn jemand schonmal mit dem Frustum rumgespielt hat und eine Idee hat, wie man das Frustum setzen kann, dann wäre ich sehr dankbar über eine kurze Erklärung. Wenn es funktioniert bin ich auch gerne bereit das Ergebnis hier zu posten um nicht als geiziger Abstauber da zustehen^^
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Du musst das in mindestens 2 schritten machen, da OpenGL auf einen Blickwinkel von Maximal 180° beschränkt ist.
Wie man das mit 2 Schritten lösen kann, solltest du mal nach Paraboliden Maps suchen(GLSL von nöten).
Registriert: Fr Jan 04, 2008 21:29 Beiträge: 419 Wohnort: Lübeck
hmm, also soweit ich weiß ist opengl da nicht eingeschränkt. Nur dass der perspektiv Modus einen maximalen FOV von 179.9~ hat ist mir bekannt. Das mit den Paraboliden Maps ist schon nah dran, aber ich versuch eine 1pass Möglichkeit zu finden... Ich stöber dazu gerade alte Mathe und Programmier Bücher durch. Das müsste im Prinzip ja wie ne Projektion der Erde auf eine Weltkarte funktionieren.
Wenn ich was hab, sag ich bescheid... kann länger dauern.
Registriert: So Feb 06, 2005 17:29 Beiträge: 187
Programmiersprache: C, C++
hallo,
soweit ich weiss geht das was du vorhast nicht. Guck dir mal http://wiki.delphigl.com/index.php/Frustum an, da ist ein sehr schoenes bild. Die Form dieser "Sichtpyramide" wird ja mit glFrustum oder gluPerspective bestimmt (oder halt glOrtho fuer 2d). Bei groesserem FOV wird die Pyramide dann immer flacher. Wenn man sich das vorstellt, merkt man warum 180 Grad und mehr auch mit glFrustum nicht erreicht werden koennen.
Ich hoffe ich hab das Problem auch verstanden und nicht etwas laenst bekanntes wiederholt
Registriert: Fr Jan 04, 2008 21:29 Beiträge: 419 Wohnort: Lübeck
das Problem was sich mir stellt ist, ob man eine eigene Matrix als Projektionsmatrix setzen kann. Ansonsten muss man sich wirklich mit der Orthogonalen und der Trapetz Projektion begnügen, was sehr schade wäre.
Wenn man eine solche Rundumsicht in eine Projektionsmatrix schreiben könnte, dann müsste man lediglich zFar und zNear für das Frustum setzen, da die restlichen Grenzen ja wegfallen.
also gibt es eine Möglichkeit die PerspektivMatrix von Hand zu schreiben?
Registriert: Di Sep 06, 2005 18:34 Beiträge: 362 Wohnort: Hamburg
Habe jetzt keinen Beitrag zu deinem Problem mit demPanorama, aber eine eigene Matrix kannst du über den Befehl glLoadMatrix laden.
_________________ Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.