Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi OpenGL Kamera Problem - Drehung (https://www.delphipraxis.net/54076-opengl-kamera-problem-drehung.html)

Neutral General 2. Okt 2005 11:43

Re: OpenGL Kamera Problem - Drehung
 
Bitte achte auf meine Delphi Version -.-

Mr_T 2. Okt 2005 12:22

Re: OpenGL Kamera Problem - Drehung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Öhm ... ja, so ein altes Delphi habe ich aber leider nicht :(
Lässt sich der Source denn nicht kompilieren? Ich habe nun einfach mal die EXE dazu angehängt, denn siehste ja, was für eine Kamerasteurung in dem Programm realisiert wurde und den PAS-Source solltest du dir ansehen können mit dem Delphi 3 ... denn der Source funktioniert so einwandfrei, also erst rotieren, denn translaten ;)

Neutral General 2. Okt 2005 12:51

Re: OpenGL Kamera Problem - Drehung
 
Delphi-Quellcode:
procedure Render;
begin
 glClear(GL_COLOR_BUFFER_Bit or GL_DEPTH_BUFFER_BIT);
 glLoadIdentity;
 glpushname(0);

 glrotated(25,0.5,0,0);
 glrotated(180,0.0,1.0,0.0); // Hier setze ich die Position wo die kamera startet.. und genau das ist das problem -.-
 gltranslated(-5,-0.2,0.0);  // wenn ich das weglasse gehts -.-

 if Mauspos = 1 then begin
  Grad := Grad - (0.3* timefactor);
 end;
 if Mauspos = 2 then begin
  Grad := Grad + (0.3* timefactor);
 end;

 if GetAsyncKeystate(Ord('W')) <> 0 then begin
   PosX := PosX + sin(degtorad(Grad)) * 0.1 * Timefactor;
   PosZ := PosZ - cos(degtorad(Grad)) * 0.1 * Timefactor;
 end
 else
 if GetAsyncKeystate(Ord('S')) <> 0 then begin
   PosX := PosX - sin(degtorad(Grad)) * 0.1 * Timefactor;
   PosZ := PosZ + cos(degtorad(Grad)) * 0.1 * Timefactor;
 end;

glrotated(Grad,0,1,0);
glTranslated(PosX,0,PosZ);
Siehe Quelltext... :wall:
Danke nochmal für alles ;)
Aber wo setze ich jetzt die Anfangsposition ?

Mr_T 3. Okt 2005 00:07

Re: OpenGL Kamera Problem - Drehung
 
Also wenn du für dein Spiel oder was das werden soll eine Startposition machen würdest, denn würde es Sinn machen PosX, PosY und rotate beim respawn neu zu setzen bzw. in kleinen Demos (mach ich auch immer so) in OnCreate ... ist am einfachsten und spart ogl-Befehle, die nur Renderpower kosten ;)

Phobeus 3. Okt 2005 12:53

Re: OpenGL Kamera Problem - Drehung
 
Da höre ich wieder das böse Wort mit Shooter. Junge, lass die Finger vom "richtigen 3D Raum" und lasse nicht alle Achsen um 360° rotieren. Das spart eine Menge Mathematik und erleichtert gerade dem Einsteiger eine Menge Frust.
Ansonsten gibt es sicherlich langfristig bessere Möglichkeiten, aber ich werfe hier einfach einmal glulookat in den Raum, dass vielleicht für den Anfang leichter zu verwenden ist, um eine Kamera auszurichten. Dieses direkt nach dem glLoadIdentity aufgerufen, wird so aussehen, wie eine Kamera, die im Raum plaziert wird.

Neutral General 3. Okt 2005 14:33

Re: OpenGL Kamera Problem - Drehung
 
Ach ich muss eh mal sehen. Wahrscheinlich wird das Projekt eh an irgendwas scheitern... Jetzt nicht an der Kamera aber nachher vielleicht an den Kollisionen oder an 3D-Modellen die ich verzweifelt versuchen werde mit irgendwelchen Tutorials einzubinden :mrgreen:
Naja hauptsache ich hab ein bisschen gelernt ... ;)

Ach ja.. glulookat hab ich auch schon probiert... Ich kapier zwar glaube ich wofür die Parameter sind aber meine Kamera guckt trotzdem immer schief xD


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr.
Seite 2 von 2     12   

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