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


Урок 12. Использование списков отображения - часть 7


if (TextureImage[0]=LoadBMP("Data/Cube.bmp"))           // Загрузить картинку.

Код изменения размеров такой же, как в Уроке N6.

Только в коде инициализации есть несколько изменений. Я добавлю строку BuildList(). Это будет переход к части кода, в которой создаются списки отображения. Обратите внимание что BuildList() находится после LoagGLTextures(). Важно знать, что порядок должен быть именно таким. Сначала мы создаем текстуру, а затем создаем наши списки отображения, где уже созданные текстуру мы можем наложить на куб.

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

{

        

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

        

{

                

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

        

}

        

BuildLists();// Переход к коду, который создает наши списки отображения

       

glEnable(GL_TEXTURE_2D);// Включение нанесения текстур

        

glShadeModel(GL_SMOOTH);// Включение гладкой закраски (smooth shading)

        

glClearColor(0.0f, 0.0f, 0.0f, 0.5f);// Черный фон

        

glClearDepth(1.0f);// Установка буфера глубины

        

glEnable(GL_DEPTH_TEST);// Включение проверки глубины

        

glDepthFunc(GL_LEQUAL); // Тип выполняемой проверки глубины

Следующие три строки кода включают быстрое и простое освещение. Light0 предустановлен на большинстве видеоплат, и это спасет нас от трудностей установки источников освещения. После того как мы включили light0, мы включили освещение. Если light0 не работает на вашей видео плате (вы видите темноту), просто отключите освещение.

Еще одна строка GL_COLOR_MATERIAL позволяет нам добавить цвет к текстурам. Если мы, не включили закрашивание материала, текстуры всегда будут своего первоначального цвета. glColor3f(r,g,b) не будет действовать на расцвечивание. Поэтому важно включить это.

glEnable(GL_LIGHT0); // Быстрое простое освещение

                        

// (устанавливает в качестве источника освещения Light0)

glEnable(GL_LIGHTING);  // Включает освещение




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



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