OPEN GL - tekstura na wszystkim zamiast konkretnym elemencie

0

POPRZEDNI POST NAPISAŁEM Z BŁEDEM - SORRY

Witam
Próbuje sie nauczyć opengl, chce zrobić poruszającą się kulkę po jakimś podłożu.
Jednak wczytujac i nakladając teksture nakłada mi sie ona na kulkę oraz na wszystkie elementy które wyswietlam
Prosze o pomoc - wytlumacznie - wskazówki
Troche zakomentowanych linii bo próbuje znaleźć jakieś rozwiazanie ...

 
GLuint texture,nejm;



GLuint LoadTextureRAW(const char * filename)
{

	GLuint obraz;
	int width, height;
	unsigned char * data;
	FILE * file;

	file = fopen(filename, "rb");
	if (file == NULL) return 0;

	width = 1024;
	height = 512;

	data = (unsigned char *)malloc(width * height * 3);

	fread(data, width * height * 3, 1, file);
	fclose(file);

	for (int i = 0; i < width * height; ++i)
	{
		int index = i * 3;
		unsigned char B, R;
		B = data[index];
		R = data[index + 2];
		data[index] = R;
		data[index + 2] = B;

	}
	
	glGenTextures(1, &obraz);
	glBindTexture(GL_TEXTURE_2D, obraz);
	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);   // GL_REPEAT zamiast GL_SPHERE_MAP 
	/*
	glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
	glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
	glEnable(GL_TEXTURE_GEN_S);
	glEnable(GL_TEXTURE_GEN_T);
	*/
	gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_RGB, GL_UNSIGNED_BYTE, data);
	free(data);
	
	return obraz;
}



void DisplaySphere(GLuint texture)
{



	GLUquadricObj *quad;
	quad = gluNewQuadric();  
	
	
		gluQuadricNormals(quad, GLU_SMOOTH);
		gluQuadricTexture(quad, GL_TRUE);
		
		glBindTexture(GL_TEXTURE_2D, texture);
		gluSphere(quad, 0.3f, 36, 36);
		gluDeleteQuadric(quad);
	
	
}

W funkcji init() mam

texture = LoadTextureRAW("aaaa.bmp");
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);

0

Po narysowaniu kulki odłącz teksturę:

glBindTexture(GL_TEXTURE_2D, 0);

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