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?!


  • Mod

    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?!


  • Mod

    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.


Anmelden zum Antworten