Hallo !
Ich versuche mich seit letzter Woche in der 3D Programmierung mit openGL.
Leider habe ich das Problem, dass ich es nicht hinbekomme, eine vernünftige Kamera zu simulieren. Hab schon mehrere Möglichkeiten durch:
Erst Kamera Rotieren, dann verschieben: Rotation funktioniert gut, beim verschieben ist allerdings das Problem, dass er nicht parallel zum Weltkoordinatensystem verschiebt.
Erst verschieben, dann rotieren: Jetzt funktioniert das verschieben, aber er rotiert nicht mehr um die eigendliche Kamera bei (0,0,0).
Erst Kamera Rotieren, dann nach Objekt verschieben, Kamera zurückdrehen, nach Kamera verschieben, Kamera und Objekt drehen: jetzt funktioniert es einigermaßen, leider ist aber noch ein Fehler beim Drehen drin, sodass es die Objekte verzieht (die Kanten z.B. bei einem Würfel stimmen nicht mehr zusammen, zwschen den Seiten sind Lücken), wenn sie aus mehreren Primitiven bestehen ( ich resette für jede Primitive die Matrix, weil ich mir einen OO - Wrapper gebaut habe... )
Bei "verschieben" oder "drehen / rotieren" sind immer glTranslate bzw. glRotate Befehle gemeint.
Die Ideallösung wäre halt eine Kombination der ersten beiden (hab ich ja bei der 3. probiert)...
Die Funktion gluLookAt funktioniert auch nicht wirklich, wahrscheinlich gebe ich der aber die falschen Parameter mit ( gluLookAt(camera.x, camera.y, camera.z, camera.xrotation, camera.yrotation, camera.zrotation, 0, 1, 0);
)
Hab mir auch schon das Kamera Tutorial bei delphigl durchgelesen, werde daraus aber nicht schlau...
Dazu muss ich sagen, dass wir in der Schule Matrizen und Vektoren noch nicht durchgenommen haben (wenn überhaupt noch (9. Kl. Gym)). Mein gesamtes Wissen darüber beschränkt sich quasi auf das, was so in div. openGL Tutorials beschrieben wird und was mir mein Mathelehrer gezeigt hat (auch nicht viel: was sind Vektoren o. Matrizen, rotationsvektoren...).
Kennt hier jemand eine Methode, sodass es wirklich wie eine frei im Raum schwebende Kamera aussieht, oder einen Link, wo das beschrieben wird (am besten so, dass ich es auch verstehe) ?
Mfg, Yoschi