leider schaffe ich es einfach nicht eine Textur mehrfach auf eine Oberfläche zu zeichnen. Die Textur wird immer gestreckt.
Hier der Code:
Code: Alles auswählen
SDL_Surface *pngImage;
GLuint texid;
pngImage = IMG_Load(filename);
glGenTextures(1, &texid);
glBindTexture(GL_TEXTURE_2D, texid);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, pngImage->w, pngImage->h, 0, GL_RGB, GL_UNSIGNED_BYTE, pngImage->pixels);
SDL_FreeSurface(pngImage);
....
glEnable(GL_TEXTURE_2D);
GLint w, h;
glBindTexture(GL_TEXTURE_2D, texid);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &w);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &h);
GLboolean resident;
if (!glAreTexturesResident(1, &texid, &resident))
printf("[E] TexturID %i was not loaded\n", texid);
glBegin(GL_QUADS);
glColor4f(r1,g1,b1,a1);
glTexCoord2f(0,1);glVertex3f(x1,y1,z1);
glColor4f(r2,g2,b2,a2);
glTexCoord2f(1,1);glVertex3f(x2,y2,z2);
glColor4f(r3,g3,b3,a3);
glTexCoord2f(1,0);glVertex3f(x3,y3,z3);
glColor4f(r4,g4,b4,a4);
glTexCoord2f(0,0);glVertex3f(x4,y4,z4);
glEnd();
glDisable(GL_TEXTURE_2D);
Danke.