nakładanie tekstury na kwadryki OpengL

0

Witam. Chciałbym nałożyć teksturę na swoją kwadrykę(kula).

Robię to tak:

 

GLuint texture[2];


...................

AUX_RGBImageRec *LoadBMP(char *fileName)
{
	FILE *file = NULL;			//file handle

	if ( !fileName )		//make sure the file name is given
		return NULL;		//if not, quit the function

	file = fopen(fileName, "r");		//check to see if the file exist

	if ( file )
	{
		fclose(file);		//close the handle
		return auxDIBImageLoad(fileName);       // Load The Bitmap And Return A Pointer
	}

	return NULL;		//if fail to load, then return null

}//


int LoadGLTextures()// Załaduj bitmapy i konwertuj na tekstury
{
	int Status = FALSE, i;
	AUX_RGBImageRec*TextureImage[2]; //wskaźniki do danych
	memset(TextureImage,0,sizeof(void*)*2); //zerowanie//
	// Zastosuj LoadBMP do załadowania danych z plików BMP
	if((TextureImage[0]=LoadBMP("1.bmp")) 
		&&(TextureImage[1]=LoadBMP("2.bmp")))
		{ 
			Status=TRUE;
			//Utworzenie nazw tekstur:
			glGenTextures(2, &texture[0]);
			// Typowa generacja tekstur na podstawie danych z DIB:
			for(i=0;i<2;i++)
				{ //Tworzenie i stosowanie obiektu tekstury:
					glBindTexture(GL_TEXTURE_2D,texture[i]);
					// Przekształcenie danych z pliku DIBna teksturę OpenGL
					glTexImage2D
					 (GL_TEXTURE_2D, // Tworzona jest tekstra 2D
					 0,	// Rozdzielczość na razie 0
					 3, // Ilość składowych koloru
					 TextureImage[i]->sizeX, //serokosc
					 TextureImage[i]->sizeY, //wysokosc
					 0, //ramka
					 GL_RGB, //font kolorow
					 GL_UNSIGNED_BYTE, //typ danych obrazu
					 TextureImage[i]->data); // Wskaźnik do danych

					glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
					glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
			    }
			}

			for(i=0;i<2;i++)
			{
				if(TextureImage[i])//Jeśli tekstura istnieje
				{
					if(TextureImage[i]->data) // jesli obraz istnieje
					{
						free(TextureImage[i]->data); // zwolnij pamiec zajmowana
					}
					free(TextureImage[i]); // zwolnij pamiec zajmowana przez teksture
				}
			}
	return Status;
}

i teraz tworze kwadrykę :

 

void kula(void)
{
	GLUquadricObj*obj;
	obj=gluNewQuadric();
	glScalef(0.1,0.1,0.1);
	gluQuadricTexture(obj,GL_TRUE);
	glBindTexture(GL_TEXTURE_2D,texture[0]);
	glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
	glColor3d(1.0,0.8,0.8);
	glEnable(GL_TEXTURE_2D);
	gluSphere(obj,20,15,7);
	glDisable(GL_TEXTURE_2D);
}


Jednak przy wywołaniu funkcji kula tekstury nie ma....
Proszę o pomoc.

0

jakies pomysly co jest podowem braku tekstury?

0

a oteksturowany szescian Ci dziala?

0

nie sprawdzalem, ale chce oteksturowac kwadryke bo mam obiekt stworzony wlasnie z kwadtyk. Ale mi to nie dziala....

1 użytkowników online, w tym zalogowanych: 0, gości: 1