![]() |
OpenGL: Kamera anstatt Landschaft bewegen
Hi Leute, ich hab da noch mal so ne frage zu opengl:
In der unten beschriebenen Szene wird doch nicht die Kamera, sondern die 3ds Szene bewegt, oder? (d.h man meint nur die Kamera bewege sich, da alles rundherum um die Kamera bewegt und rotiert wird) Wie kann ich nun aber die Kamera anstatt die Szene bewegen?
Delphi-Quellcode:
procedure render;
begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); //Farb und Tiefenpuffer löschen glClearColor(1,0,1, 0.0); //Hintergrundfarbe glLoadIdentity; // World Matrix zurücksetzen glrotatef(rotationx,1,0,0); glrotatef(rotationy,0,1,0); gltranslatef(xpos, ypos, zpos); Szene.Draw; // 3ds Szene zeichenen SwapBuffers(form1.myDC); //scene ausgeben end; Vielen Dank |
Re: OpenGL: Kamera anstatt Landschaft bewegen
Stichwort "GL_Projection" und "GL_Modelview"! Guck einfach mal auf
![]() |
Re: OpenGL: Kamera anstatt Landschaft bewegen
tutorials lesen ;)
Es gibt in OpenGL keine Kamera bzw. Kamerabewegung. Die Kamera sitzt immer am Punkt (0;0;0) und schaut nach (0;0;0). Du musst die Scene rundrum bewegen. wobei natürlich ein verschieben der Kamera um 6 Einheiten nach "links" dassselbe ist wie ein verschieben der Scene um 6 Einheiten nach "rechts". Analog gilt das auch für Rotation. |
Re: OpenGL: Kamera anstatt Landschaft bewegen
Das wusste ich schon, was ich meinte ist ender etwas mit glMatrixMode(GL_MODELVIEW) oder glMatrixMode(GL_GL_PROJECTION). Wie würde man den so ein Multiplayergame mit mehreren Kameras erstellen?
|
Re: OpenGL: Kamera anstatt Landschaft bewegen
Zitat:
|
Re: OpenGL: Kamera anstatt Landschaft bewegen
wie geht das denn genau? Kann ich den nicht die Szene unbewegt lassen und nur die Sicht ändern oder entspricht das etwa nicht der Kamera?
|
Re: OpenGL: Kamera anstatt Landschaft bewegen
Ich habs Gefunden!!!! Die Funktion heisst gluLookAt!!!!
|
Re: OpenGL: Kamera anstatt Landschaft bewegen
glTranslatef würde genauso gehen, gluLookAt ist nur eine Hilfsfunktion, die die Worldmatrix manipuliert. Bei uns auf der Seite gibt es ein Kamera-Tutorial, dass Dir auch dann noch weiterhelfen sollte, wenn es gleich um mehre Achsen gehen soll. Letztendlich sollte man sich bei OpenGL ein wenig von unserer Weltansicht verabschieden. Wer sagten den, dass Du Dich durch die Welt bewegst? Wenn ich mich auf der Stelle, dreht sich ja schließlich die Welt auch um mich ;-)
Rein von der Perspektive ist es ja auch egal, wer von den beiden sich bewegt. Daher muss man bei OpenGL immer ein wenig umdenken und nicht in "Kameras", sondern Objektbewegungen denken. Aber gut, dass Problem hat sich ja bereits erledigt und ich vermeide mal längere Monologe ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz