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 (
).
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...
Danke im Voraus für jede nützliche Erklärung und Hilfestellung!