000
05.04.2006, 20:13 Uhr
A-l-e-x
|
Ich hab bis jetzt so meine Texturen convertiert:
C++: |
int imageSize_RGB = Height* Width * 3; int imageSize_RGBA = Height* Width * 4;
// Speicherplatz anlegen pImage_RGBA = new unsigned char[imageSize_RGBA];
// unsigned char *pImage_RGB // das alte
// Transparenz-schleife int i, j;
// colorkey int r = 0, g = 0, b = 0; // <-Beispiel
for( i = 0, j = 0; i < imageSize_RGB; i += 3, j += 4 ) { // transparentes Pixel? if( pImage_RGB[i] == r && pImage_RGB[i+1] == g && pImage_RGB[i+2] == b ) { pImage_RGBA[j+3] = 0; // "unsichtbar" } else { pImage_RGBA[j+3] = 255; // "sichtbar" } pImage_RGBA[j] = pImage_RGB[i]; pImage_RGBA[j+1] = pImage_RGB[i+1]; pImage_RGBA[j+2] = pImage_RGB[i+2]; } glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
// Transparentes Bild erzeugen gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, Width, Height, GL_BGRA_EXT, GL_UNSIGNED_BYTE, pImage_RGBA);
// ich hoffe ich habe das Wichtigste aufgeführt
|
Jedenfalls wird das Bild bei mir geglättet. Wie kann ich das glätten verhindern?
Hab schon mit der Funktion glTexImage2D() experementiert. Da wird zwar nicht gelättet, doch bekomme ich, mit meinem jetztigen Code, Probleme mit der richtigen Darstellung.
C++: |
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, Width, Height, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, pImage_RGBA);
|
Was mache ich da falsch?
mfg A-l-e-x Dieser Post wurde am 05.04.2006 um 20:16 Uhr von A-l-e-x editiert. |