Terrain Gitter in OpenGL erstellen! Wie?



  • Hallo,

    ich möchte ein Terrain Gitter in OpenGl erstellen. Wie stelle ich das am Besten an? Doch nicht komplett "per Hand" die Linien verlegen, oder doch?
    Es soll ungefähr so aussehen: http://wiki.freepascal.org/images/5/50/Gl_trinity.jpg



  • Warum nicht von Hand?
    Zeichne doch einfach in einer for-schleife je ein Quadrat auf der X-Achse und geh dann jeweils nach rechts nach jedem Quad. Dann das ganze in der nächsten Reihe wieder.
    Alternativ kann man das dann entweder als Display-List oder Array rendern. Wobei ich hier ein Array nehmen würde.
    Einfacher gehts net, nur kompilzierter :D.

    edit: Ich hab hier noch ein wenig alten Code gefunden eben.. is nen simples Flaches Terrain:

    for(int i = 0; i < 20; i++)
        {
            for(int j = 0; j < 20; j++)
            {
                // TexCoords
                VertexBuffer->TexCoords[array+0] = dgTexCoords( 0.0f, 0.0f);             
                VertexBuffer->TexCoords[array+1] = dgTexCoords( 1.0f, 0.0f); 
                VertexBuffer->TexCoords[array+2] = dgTexCoords( 1.0f, 1.0f); 
                VertexBuffer->TexCoords[array+3] = dgTexCoords( 0.0f, 1.0f);  
    
                VertexBuffer->Points[array+0] =  dgPoint(15.0f + x, -1.2f, 15.0f + z);
                VertexBuffer->Points[array+1] =  dgPoint(10.0f + x, -1.2f, 15.0f + z);
                VertexBuffer->Points[array+2] =  dgPoint(10.0f + x, -1.2f, 10.0f + z);
                VertexBuffer->Points[array+3] =  dgPoint(15.0f + x, -1.2f, 10.0f + z);
    
                VertexBuffer->Normals[array+0] = dgPoint(0.0f, 0.0f, 0.5f);
                VertexBuffer->Normals[array+1] = dgPoint(0.0f, 1.0f, 0.0f);
                VertexBuffer->Normals[array+2] = dgPoint(0.0f, 1.0f, 0.0f);
                VertexBuffer->Normals[array+3] = dgPoint(0.0f, 1.0f, 0.0f);
                  x += -5;
                array += 4;
            }
            x  =  0;
            z += -5;    
        }
    

    So stell ich mir das vor 🕶
    rya.



  • Einfacher gehts net

    es waere hinreichend, jeden eckpunkt nur einmal zu speichern.



  • hellihjb schrieb:

    Einfacher gehts net

    es waere hinreichend, jeden eckpunkt nur einmal zu speichern.

    Ja, das ist richtig. Der Code ist aber 1.) uralt (aus meinen ersten Versuchen mit OpenGL) und dient 2.) nur zu veranschaulichung.
    rya.



  • Scorcher24 schrieb:

    So stell ich mir das vor 🕶
    rya.

    ich als alter OpenGL noob frag mich gerade wie ich das mit dem VertexBuffer korrekt anstelle?
    Ich google mal los...



  • AndiLatte schrieb:

    Scorcher24 schrieb:

    So stell ich mir das vor 🕶
    rya.

    ich als alter OpenGL noob frag mich gerade wie ich das mit dem VertexBuffer korrekt anstelle?
    Ich google mal los...

    Das ist nur ein struct mit 3 Arrays, mehr nicht... 1 für de TexturCoords, 1 für die Normale und 1 für die Vertices..
    Du renderst dann einfach als Array mit glDrawArray etc.
    Es reicht aber auch 1 Array nur für die Vertices erstmal.. is dir überlassen.
    rya.


Anmelden zum Antworten