Народный учебник по OpenGL


Урок 15. Текстурные шрифты - часть 5



GL_TEXTURE_GEN_MODE позволяет нам выбрать режим наложения текстуры, который мы хотим использовать по координатам текстуры S и T. Есть три возможности:


GL_EYE_LINEAR - текстура зафиксирована на экране. Она никогда не перемещается. Объект накладывается на любую часть текстуры, которую он захватывает.

 

GL_OBJECT_LINEAR – мы воспользуемся этим режимом. Текстура привязана к объекту, перемещающемуся по экрану.


GL_SPHERE_MAP – всегда в фаворе. Создает металлический отражающий тип объекта.


Важно обратить внимание на то, что я опускаю много кода. Мы также должны задать GL_OBJECT_PLANE, но значение по умолчанию то, которое мы хотим. Купите хорошую книгу, если Вы хотите изучить больше, или поищите в помощи MSDN на CD.

 

    // Текстуризация контура закрепленного за объектом

    glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);

    // Текстуризация контура закрепленного за объектом

    glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);

    glEnable(GL_TEXTURE_GEN_S);      // Автоматическая генерация

    glEnable(GL_TEXTURE_GEN_T);      // Автоматическая генерация

  }

 

  if (TextureImage[0])            // Если текстура существует

  {

    if (TextureImage[0]->data)    // Если изображение текстуры существует

    {

      free(TextureImage[0]->data); // Освобождение памяти изображения текстуры

    }

 

    free(TextureImage[0]);         // Освобождение памяти под структуру

  }

 

  return Status;        // Возвращаем статус

}

 

Есть несколько новых строк кода в конце InitGL(). Вызов BuildFont() был помещен ниже кода, загружающего нашу текстуру. Строка с glEnable(GL_COLOR_MATERIAL) была удалена. Если Вы хотите задать текстуре цвет, используйте glColor3f(r, г, b) и добавьте строку glEnable(GL_COLOR_MATERIAL) в конце этой секции кода.

 

int InitGL(GLvoid)        // Все начальные настройки OpenGL здесь

{

  if (!LoadGLTextures())  // Переход на процедуру загрузки текстуры

  {

    return FALSE;         // Если текстура не загружена возвращаем FALSE




Начало  Назад  Вперед



Книжный магазин