Hallo meine lieben Tutorials.de - Mitglieder!
Wer hätte es gedacht, ich stecke mal wieder bei einem Problem mit openGL fest (ich mach jetzt dann glaub einen Sammelthread...).
Es geht diesmal darum wie ich herausfinde, an welcher Position in der 3D-Welt der Spieler mit der Maus gedrückt hat. Ich habe dazu schon einige Mittel online gelesen und auch versucht, aber bis jetzt noch keines erfolgreich anwenden können.
Was ich versucht habe:
Mit der Variante von OpenGL und SELECTION-Rendermode. Allerdings stelle ich es mir irgendwie etwas übel vor jede Szene immer zweimal zu rendern.
- Mit gluUnproject mal die Koordinaten entsprechend umzuwandeln.
Die Ausgabe sieht jedoch folgendermassen aus:
Position: x y 1
Wobei x und y die Druckkoordinaten sind im 2-D Bereich.
Welche Möglichkeiten habe ich nun performant zu berechnen, an welchen ungefähren Koordinaten der Mausklick stattgefunden hat?
Mit besten Grüssen
Cromon
Wer hätte es gedacht, ich stecke mal wieder bei einem Problem mit openGL fest (ich mach jetzt dann glaub einen Sammelthread...).

Es geht diesmal darum wie ich herausfinde, an welcher Position in der 3D-Welt der Spieler mit der Maus gedrückt hat. Ich habe dazu schon einige Mittel online gelesen und auch versucht, aber bis jetzt noch keines erfolgreich anwenden können.
Was ich versucht habe:
Mit der Variante von OpenGL und SELECTION-Rendermode. Allerdings stelle ich es mir irgendwie etwas übel vor jede Szene immer zweimal zu rendern.
- Mit gluUnproject mal die Koordinaten entsprechend umzuwandeln.
Code:
GLdouble modelMatrix[16];
glGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix);
GLdouble projMatrix[16];
glGetDoublev(GL_PROJECTION_MATRIX, projMatrix);
int viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
double position[3] = { 0 };
gluUnProject(x, y, 0.0f, modelMatrix, projMatrix, viewport, &position[0], &position[1], &position[2]);
printf("Position: %f %f %f\n", position[0], position[1], position[2]);
Die Ausgabe sieht jedoch folgendermassen aus:
Position: x y 1
Wobei x und y die Druckkoordinaten sind im 2-D Bereich.
Welche Möglichkeiten habe ich nun performant zu berechnen, an welchen ungefähren Koordinaten der Mausklick stattgefunden hat?
Mit besten Grüssen
Cromon