[OpenGL/C++] Použití 32-bit textur s alfa kanálem - problém s průhledností – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

[OpenGL/C++] Použití 32-bit textur s alfa kanálem - problém s průhledností – C / C++ – Fórum – Programujte.com[OpenGL/C++] Použití 32-bit textur s alfa kanálem - problém s průhledností – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
ProXicT0
Návštěvník
24. 8. 2013   #1
-
0
-

Zdravím, s kamarádem děláme hru v openGL. Narazili jsme ovšem na malý, ale podstatný problém.
Pokoušíme se udělat průhlednost pomocí 32-bit bitmap, ale neúspěšně. Při vykreslení se průhlednost projevuje, ale ne zrovna tak, jak bysme očekávali. 
 

Zde je naše vykreslovací fce: 

Kdyby jste přišli na způsob, jak funkci urychlit, budeme jenom rádi :] 

void SC_OBJ::sDrawOBJ()
{
glTranslatef(0,0,-1.0f);
glEnable(GL_TEXTURE_2D);
//glDisable(GL_COLOR_MATERIAL);
glColor3f(1,1,1);
for(int drawed = 0; drawed < facenum; drawed++)
{
	if(triangle[drawed].busemtl == true)
	{
		if(material[triangle[drawed].materialindex].bmap_d == true)
		{
		glDisable(GL_DEPTH_TEST);
		glEnable(GL_BLEND);
		glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
		}
		usetex = material[triangle[drawed].materialindex].map_Kd_index;
		stexture[usetex].sUseTexture();
		glEnable(GL_DEPTH_TEST);
	}
	
glBegin(GL_TRIANGLES);
if(normalnum > 0)glNormal3f(triangle[drawed].nx[0], triangle[drawed].ny[0], triangle[drawed].nz[0]);if(texcoordnum > 0)glTexCoord2f(triangle[drawed].s[0],triangle[drawed].t[0]);glVertex3f(triangle[drawed].vx[0], triangle[drawed].vy[0], triangle[drawed].vz[0]); 
if(normalnum > 0)glNormal3f(triangle[drawed].nx[1], triangle[drawed].ny[1], triangle[drawed].nz[1]);if(texcoordnum > 0)glTexCoord2f(triangle[drawed].s[1],triangle[drawed].t[1]);glVertex3f(triangle[drawed].vx[1], triangle[drawed].vy[1], triangle[drawed].vz[1]); 
if(normalnum > 0)glNormal3f(triangle[drawed].nx[2], triangle[drawed].ny[2], triangle[drawed].nz[2]);if(texcoordnum > 0)glTexCoord2f(triangle[drawed].s[2],triangle[drawed].t[2]);glVertex3f(triangle[drawed].vx[2], triangle[drawed].vy[2], triangle[drawed].vz[2]);
glEnd();
}
glDisable(GL_BLEND);
}

A zde je část zdrojáku na generování textur: 

glGenTextures(1, &uTEXTURE[0]);
glBindTexture(GL_TEXTURE_2D, uTEXTURE[0]);

glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

glTexImage2D(GL_TEXTURE_2D, 0, 4, texturedata.width, texturedata.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturedata.imageData);

Zde je pár screenshotů... Nejprve jak to vypadá v našem programu:

Připojen obrázek.

Připojen obrázek.

A zde je jak by to mělo doopravdy vypadat... (Renderováno v Cinema 4D)
 

Připojen obrázek.

 Za každou radu budeme vděční :]
Předem děkujeme za vaše odpovědi...

Připojen obrázek.

Nahlásit jako SPAM
IP: 77.240.98.–
Reklama
Reklama
vitamin+8
Grafoman
24. 8. 2013   #2
-
0
-
Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
ProXicT0
Návštěvník
24. 8. 2013   #3
-
0
-

#2 vitamin
Ok, podívám se, díky ;)

Nahlásit jako SPAM
IP: 77.240.98.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 101 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý