OpenGL: png Bilder als Texturen verwenden

Ne nicht wirklich... aber ich habe aus dem schier unendlichen weiten des Internets eine viel einfachere Lösung zu meinem Problem gefunden, nämlich das ich einfach weiterhin Bitmap Texturen verwende und bei eienr bestimmten Farbe den Aplpha-Kanal 0 setzte bei allen anderen 1(http://www.c-plusplus.de/forum/viewtopic-var-p-is-1439987.html), was allerdings eine neue Frage aufwirft:Wie?:confused: Ich weiss was ihr denkt: Dann such doch!^^
Das werde ich sogar tun aber ich dachte für den Fall das ich wiedermal nix finde frag ich schonmal:rolleyes:
 
Eine OpenGL-Textur kann aus Rot-, Grün-, Blau- und Alphawerten bestehen. Der Alphawert besteht aus Grauwerten, somit kannst du deine Werte von 0 bis 255 setzen.
Wenn du eine Farbe transparent setzen willst, dann musst du nur Abfragen, ob die aktuelle Farbe die gesuchte Farbe ist und setzt dazu den passenden Alphawert. Das kannst du gleich beim Einlesen überprüfen oder nach dem Einladen durch eine Schleife.
 
Zuletzt bearbeitet:
Ja das ist mir klar ;) aber wie mach ich es?:p
Code:
AUX_RGBImageRec *TextureImage[1];
memset(TextureImage,0,sizeof(void *)*1);
if (TextureImage[0]=LoadImageA(hInstance,"Data/PinkStar.png",0,0,0,0);
	Status=TRUE; 
	glGenTextures(1, &texture[0]);
	glBindTexture(GL_TEXTURE_2D, texture[0]);
	glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX,
				TextureImage[0]->sizeY,0, GL_RGBA,
				GL_UNSIGNED_BYTE, TextureImage[0]->data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
	if (TextureImage[0]){
		if (TextureImage[0]->data)
			free(TextureImage[0]->data);
		free(TextureImage[0]);
	}
}
Wie kann ich das denn da einbauen? Tut mir ja Leid das ich so planlos bin... aber ich hab keinen Schimmer wie man das machen kann... Vielleicht jeden Pixel überprüfen und ggf., wenn es die Farbe is Alpha =0.0f setzten?
 

Neue Beiträge

Zurück