Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.04.2012, 19:06

Open GL - FPS Kamera

Tach,

ich mache es mal kurz, undzwar hab ich neulich mit Open GL angefangen und versuche derzeit eine First Person Shooter Kamera in mein 3D test Projekt einzubauen!
Nein, ich möchte keinen Shooter machen, ich brauche lediglich eine freibewegliche Kamera um halt durch meine test "Welt" zu fliegen...

Und ich versuche derzeit die Parameter der Funktion gluLookAt(...) zu verstehen, bis jetzt habe ich durch mehrere Tests rausbekommen was
der UP Vektor für eine bedeutung hat, und hab ihm die Werte (0.0, 1.0, 0.0) gegeben.

Bleiben noch der Eye und Center Vektor, der Eye Vektor ist schätze ich mal, die Position der Kamera, bis jetzt hab ich es auch
hin bekommen die Kamera zu bewegen, jedenfalls glaube ich das ( :P ).

Was mir fehlt ist die Rotation der Kamera nach oben, unten, rechts und links... ich schätze mal das der Center Vektor
für die Rotation zuständig ist, scheint es aber nicht zu sein, weil die Angabe für den Winkel fehlt (?)...

Und deswegen, frage ich nun hier, ob mir vielleicht jemand helfen kann, leider finde ich wirklich was
die Thematik angeht nur schlechte Beschreibungen, tote Links, Beispiele in Verbindung mit Engines, Beispiele mit tausend Header Dateien,
veraltete Beispiele und manchmal sogar die gleichen schlechten Beschreibungen auf mehreren Seiten wo nur ein bis zwei Sätze geändert wurden...

Was gute Referenzen zu Open GL angeht, habe ich das Gefühl... gewinnt Direct X... (Nein, das war keine Kriegserklärung!!!)

Ein bisschien Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        if(sf::Keyboard::IsKeyPressed(sf::Keyboard::W))
        {
            eyeY += 0.001;
        }
        else if(sf::Keyboard::IsKeyPressed(sf::Keyboard::A))
        {
            eyeX -= 0.001;
        }
        else if(sf::Keyboard::IsKeyPressed(sf::Keyboard::S))
        {
            eyeY -= 0.001;
        }
        else if(sf::Keyboard::IsKeyPressed(sf::Keyboard::D))
        {
            eyeX += 0.001;
        }

        ::gluLookAt(eyeX, eyeY, 0.0,
                  0.0, 0.0, 0.0, 0.0, 1.0, 0.0);


Aber selbst bei der positionierung der Kamera, scheint ne menge nicht zu funktionieren...
Bei der Bewegung der Kamera habe ich das Gefühl, dass
Y = Z
X = Y
ist... :crazy: :crazy: :crazy:

Danke im Voraus für jede nützliche Erklärung und Hilfestellung!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jack« (12.04.2012, 19:11)


3

12.04.2012, 20:45


Ich blicke da ehrlich gesagt nicht durch, ...

Deswegen habe ich auch diesen Thread erstellt, in der Hoffnung das mir jemand es vielleicht anfänger gerecht
erklären kann, ohne direkt dabei tausend Gleichungen aufzustellen...

Zumindest habe ich jetzt die positionierung der Kamera hinbekommen, jetzt fehlt wirklich
nur noch die Rotation, kann ich da einfach die Projektions Matrix rotieren?
Oder muss ich die Primitiven rotieren?

EDIT:
Ach, ich hab mir inzwischen selber was zusammen gebastelt!
Ich frage mich wieso ich überhaupt diese Funktion verwenden wollte...
Aber ist ja auch egal, funktioniert jetzt alles perfekt!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jack« (12.04.2012, 21:02)


4

12.04.2012, 22:30

Das Hauptproblem an OpenGL ist, dass die einzelnen Versionen nicht so strickt voneinander getrennt sind, wie in DX. Und das es eine Menge total veralteter Tutorials gibt, die aber immer noch jeder benutzt.
GLU ist zum Beispiel auch schon veraltet. Eine relativ aktuelle Seite gibt es hier:
http://www.opengl-tutorial.org/
Da ist zum Beispiel auch die OpenGL 4.0 Spezifikation verlinkt, die Umfangreich und aktuell ist. Von daher: Es gibt schon sehr gute Infos, nur erkennt man die nicht direkt und merkt oft nicht, wenn irgendwas längst schon nicht mehr aktuell ist.
Lieber dumm fragen, als dumm bleiben!

5

13.04.2012, 09:05

Ja, das war und ist auch mein Problem und das macht es so schwer motiviert zu bleiben, wenn man nachdem man Minuten lang ein
Tutorial gelesen hat irgendwann merkt, dass es noch Open GL 2.0 verwendet und die Funktionen schon lange ganz anders heißen...
Denn aus purer Theorie kann ich nicht lernen, ich brauche auch praxis um motiviert zu bleiben und um meine Erfahrungen zu sammeln...

Das Tutorial was du da verlinkt hast, ist garnicht mal so schlecht, ich hatte es auch schon durch gearbeitet nur
leider ist es halt nicht sehr umfangreich...

Ich hatte auch diese Delphi Tutorials mit Open GL durchgearbeitet, anfangs konnte man es am Stück lesen,
was mir sehr gefallen hat, und es war auch sehr gut. Aber dann kamen leider plötzlich dazwischen einige Tutorials
wo z.B plötzlich der Typ mit Terrains anfängt und diese sollen nicht flach sein usw... Und teils waren da irgendwie 3
Tutorials zur texturierung... Da hab ich dann einfach rage gequitet, weil ich schon davor die Schnauze voll hatte was
schlechte Tutorial Reihen angeht... :thumbdown:

Aber naja, inzwischen mache ich es ohne Tutorials, ich versuch mir das wissen selber anzueignen...
Ich hoffe damit komme ich weit...

Werbeanzeige

Ähnliche Themen