Probleme mit gluProject
-
Hi Leute,
ich habe ein kleines Problem: ich verstehe nicht ganz wie ich mit gluProject etwas anfangen kann.
Ich weiß was es machen soll aber nicht wie ich das hinbekomme.Ich zeig euch mal meinen Code:
// 3D Koordinaten die in Fensterkoordinaten umgerechnet werden sollen double PointX = 1.0, PointY = 0.0, PointZ = 0.0; // Kamera informationen (muessen spaeter invertiert positioniert werden) float CamRotX = 0.0f, CamRotY = 45.0f, CamRotZ = 0.0f; float CamPosX = 10.0f, CamPosY = 5.0f, CamPosZ = -10.0f; // Temporaere variablen double X, Y, Z; int Viewport[4]; double Projection[16], Modelview[16], Matrix[16]; glLoadIdentity(); // Kamera Position (entgegengesetzte Translation) glScalef(1.0, 1.0, 1.0); glRotatef(-CamRotZ, 0.0f, 0.0f, 1.0f); glRotatef(-CamRotX, 1.0f, 0.0f, 0.0f); glRotatef(-CamRotY, 0.0f, 1.0f, 0.0f); glTranslatef(-CamPosX, -CamPosY, -CamPosZ); // Ermitteln der Matrizen und des Viewports glGetIntegerv(GL_VIEWPORT, Viewport); glGetDoublev(GL_MODELVIEW_MATRIX, Modelview); glGetDoublev(GL_PROJECTION_MATRIX, Projection); // gluProject soll die 3D Koordinaten in Fenster Koordinaten umrechnen gluProject(PointX, PointY, PointZ, Modelview, Projection, Viewport, &X, &Y, &Z); // Meine Fenster Koordinaten WinX = (int)X; WinY = (int)Y;
So, ich bin ziemlich sicher dass ich da was falsch mache denn ich sehe nicht das erwünschte Ergebniss.
Kann mir jemand sagen was ich falsch mache?!
-
es waere von vorteil wenn du zumindestens sagen wuerdest was das gewuenschte ergebniss ist und was wirklich zu sehen ist, das kristalkugeln heute nicht mehr so zuverlaessig sind wie frueher ;);)
-
Nun das genaue Ergebniss der WinX und WinY Werte weiß ich nicht, deshalb soll es ja auch errechnet werden.
Jedenfalls sehe ich dass es nicht richtig aussieht und ich frage euch ob euch an diesem Code etwas falsches auffällt?!
-
schaut fuer mich richtig aus, wenn du etwas an position 1,0,0 zeichnest und auf dem bildschirm siehst, muesste die funktion an die selbe stelle x und y ausgeben.