oGL - nix zu sehen.. ?



  • Hi,

    Also oGL ist bei mir doch schon ne Weile her. 😞

    Ich möcte ein Heightfield darstellen. sehe aber rein garnichts.
    oGL ist initialisiert und ich rufe meine Methode Terrain->Show aus dem GetMessageLoop auf (momentan zumindest). Das Ganze sieht so aus:

    while (!bQuit)
        {
            /* check for messages */
            if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
            {
                /* handle or dispatch messages */
                if (msg.message == WM_QUIT)
                {
                    bQuit = TRUE;
                }
                else
                {
                    TranslateMessage (&msg);
                    DispatchMessage (&msg);
                }
            }
            else
            {
                /* OpenGL animation code goes here */
               //   gluLookAt(212, 60, 194,  0, 0, 0,  0, 1, 0);    
                glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
                glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    
                  Terrain->Show();
                SwapBuffers (Terrain->hdc);
    
            }
        }
    

    (Wers nicht erkannt hat, das ist das standard - gl - main beim devcpp)
    Terrain->Show tut eigentlich nur das hier:

    void C_Terrain::Show()
    {
        int X; int Y; int Pos;
    
        glBegin(GL_QUADS);
    
           for ( Y = 0; Y < Header.SizeOfKachel-1; Y ++)
              for ( X = 0; X < Header.SizeOfKachel-1; X ++)
              {
                 Pos = Y * Header.SizeOfKachel + X;
    
                                 // Ausgangspunkt
                  glColor3f (ColR[View[Pos]], ColG[View[Pos]], ColB[View[Pos]]);
    //              glVertex3f (X, Y, View[Pos] * 0.5);
                  glVertex2f (X, Y); 
    
                   Pos += 1;     // rechter Nachbar        
                  glColor3f (ColR[View[Pos]], ColG[View[Pos]], ColB[View[Pos]]);
    //              glVertex3f (X, Y, View[Pos] * 0.5);
                  glVertex2f (X + 1, Y); 
    
                   Pos += Header.SizeOfKachel; // rechter unterer Nachbar
                  glColor3f (ColR[View[Pos]], ColG[View[Pos]], ColB[View[Pos]]);
    //              glVertex3f (X, Y, View[Pos] * 0.5);
                  glVertex2f (X + 1, Y + 1); 
    
                   Pos -= 1;     // unterer Nachbar;
                  glColor3f (ColR[View[Pos]], ColG[View[Pos]], ColB[View[Pos]]);
    //              glVertex3f (X, Y, View[Pos] * 0.5);
                  glVertex2f (X, Y + 1); 
    
              }
        glEnd();      
    
        Status = 0;
    }
    

    Header.SizeOfKachel ist ein Wert aus meiner Weltdatei, - hier 50. Der sichtbare Bereich meiner Welt ist also 50 * 50 Pixel groß. Das Array View ist definitiv da und gefüllt.

    Ich hab die Vertex3f mal durch 2fs ausgetauscht, um herauszufinden, ob ich vielleicht einfach nur mit der Kamera unter dem ganzen gelandet bin.

    Irgendwas haut hier nun aber nicht hin. was mach ich falsch?

    cYa
    DjR

    [ Dieser Beitrag wurde am 19.05.2003 um 08:52 Uhr von DocJunioR editiert. ]


  • Mod

    hast du auch alle matrizen gesetzt? falls nicht, klau sie dir aus nem tutorial zum teste... wäre sowieso vielleicht am besten wenn du ein tutorial nehmen würdest und dort einfach die renderfunktion durch dein terrain ersetzt.. falls du gerade nicht so familier mit oGL bist, das hilf sehr fehler zu vermeiden 🙂

    rapso->greets();



  • haste Pixelformat gesetzt?
    haste mit den Wiggle-funktionen ein Renderingcontext created und auf current gesetzt?
    haste Viewport & Fustrum initialisiert?

    Schau mal bei NeHe OpenGL Lesson vorbei, der einfach Tutorials.
    Einfach in die google eingeben.

    Gruss
    dw-Inc

    << Wenn man die Natur einer Sache durchschaut hat, werden die Dinge berechenbar. >>



  • Wenn Du Lesson 34 meinst, dann muss ich dir sagen, dass ich da schon war.

    Da muss irgendwas anderes nicht stimmen. wenn ich einfach mal ein paar Vertize von Hand setze, kann ich sie ja sehen...

    cYa
    DjR


Anmelden zum Antworten