Войти
Подсказки

Использование нескольких текстур при Vertex Array/VBO.

Автор:

Часто возникает вопрос, как при использовании Vertex Array/VBO использовать несколько текстур? Для этого нужно воспользоваться расширение GL_ARB_multitexture.

А делаеться это так:

  glClientActiveTextureARB(GL_TEXTURE0_ARB);      // Активируем первый TMU
  glBindBufferARB(GL_ARRAY_BUFFER_ARB,texcoord1); // Выбираем буффер текстурных координат текстуры 1
  glTexCoordPointer(2,GL_FLOAT,0,0);                      
  glEnableClientState(GL_TEXTURE_COORD_ARRAY);    // Разрешаем текстурные координаты
  glActiveTextureARB(GL_TEXTURE0_ARB);      // Активируем первый TMU
  glEnable(GL_TEXTURE_2D);          
  glBindTexture(GL_TEXTURE_2D,texture1);      // Наша текстура 1

  glClientActiveTextureARB(GL_TEXTURE1_ARB);      // Активируем второй TMU
  glBindBufferARB(GL_ARRAY_BUFFER_ARB,texcoord2); // Выбираем буффер текстурных координат текстуры 2
  glTexCoordPointer(2,GL_FLOAT,0,0);                      
  glEnableClientState(GL_TEXTURE_COORD_ARRAY);    // Разрешаем текстурные координаты
  glActiveTextureARB(GL_TEXTURE1_ARB);      // Активируем второй TMU
  glBindTexture(GL_TEXTURE_2D,texture2);      // Наша текстура 2

и так далее по необходимости.

11 ноября 2003