Wpis z mikrobloga

Powtórzę pytanie: jest tu jakiś ekspert od OpenGL? Piszę sobie w C++ i potrzebuję użyć kilku tekstur w programie, ale nie do końca wiem jak to zrobić, ciągle wszystko mam jedną teksturą.

Kod

Potem używam tego tak:

glBindTexture(GL_TEXTURE_2D, brickTexture);
// render z użyciem brick texture
glBindTexture(GL_TEXTURE_2D, steelTexture);
// render z użyciem steel texture
glBindTexture(GL_TEXTURE_2D, 0);
// render bez tekstury
#programowanie #opengl #grafika
  • 7
Panie ale gdzie pan binduje texture do binding pointa przy jej ładowaniu?

Pierw tworzysz glGenTexture(1,&texture); bindujesz glBind(..) i dopiero jak już masz uchwyt do textury podpięty możesz ładowaćprzez glTexImage..
@Klen: Też nie działa

// tworzenie tekstury

glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
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);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_RGB, GL_UNSIGNED_BYTE, data);