OpenGl 3D mapping Problem



  • Hallo,

    ich habe angefangen OpenGL zu lernen und wollte (nachdem ich ein paar Bilder auf Quads gemappt hatte) jetzt mal auf ein "wirkliches" 3D Objekt mappen...
    Hierzu hab ich mir einen Zylinder rausgesucht 😉

    Erstellt habe ich diesen schon, nun wollte ich ein Bild daraufmappen, aber dieses Bild wird sehr komisch gestreckt und zugeschnitten.
    Ich hab schon gegooglet, doch immer nur Spheren gefunden und ich weiß nicht wo mein Fehler ist 😞

    glBegin(GL_QUAD_STRIP);
    		for(int i = 0; i < vertexes_; ++i){
    			if(i == 0){
    				glTexCoord2f(0.0f, 1.0f);
    			}
    			glVertex3f(xsklein[i], height_, zsklein[i]);
    
    			if(i == 0){
    			        glTexCoord2f(0.0f, 0.0f);
    			}
    			glVertex3f(xsklein[i], - height_, zsklein[i]);
    		}
    
            //damit der Zylinder geschlossen ist
    		glTexCoord2f(1.0f, 1.0f);
    		glVertex3f(xsklein[0], height_, zsklein[0]);
    
    		glTexCoord2f(1.0f, 0.0f);
    		glVertex3f(xsklein[0], - height_, zsklein[0]);
    glEnd();
    

    Zur Erklärung:
    Ich habe einen Kreis mit einer Funktion (vorher) ausgerechnet, die X-Koordinaten stehen im vector xsklein und Z is zsklein. height_ verschiebt diese Koordinaten nur nach unten/oben => Zylinder
    vertexes_ ist die Anzahl der "Ecken" des Kreises...

    Da ich QUAD_STRIP verwende, wollte ich ähnlich wie bei QUADS auch, einfach die Eckpunkte auf die ersten beiden und letzten beiden "Zylinder"koordinaten mappen.

    Nur funktioniert das nicht 😞
    Kann mir jemand weiterhelfen? Muss ich pro Triangle (bzw. QUAD) die Koordinaten mappen? 😕 (wäre ja ein ziemlicher Aufwand)

    Thx für Antworten 😉



  • Texturkoordinaten werden pro Vertex spezifiziert.
    Wenn Du keine Texturkoordinaten angibst gilt weiterhin die, die Du zuletzt gesetzt hast.



  • super danke, hab jetzt jedes Vertex einzeln gemappt und es funktioniert 😉


Anmelden zum Antworten