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


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


Теперь создадим наш второй список отображения. Чтобы найти, где список отображения хранится в памяти, мы возьмем значение старого списка отображения (box) и добавим к нему еще единицу. Нижеследующий код присваивает переменной 'top' местоположение второго списка отображения.

top=box+1; // Значение top это значение box + 1

Теперь, когда мы знаем, где хранится второй список отображения, мы можем создать его. Мы сделаем это, так же как и первый список, но в этот раз мы укажем OpenGL хранить этот список под названием 'top' в отличие от предыдущего 'box'.

glNewList(top,GL_COMPILE);// Новый откомпилированный список отображения 'top'

Следующая часть кода рисует верх коробки. Это просто четырехугольник нарисованный на плоскости z.

glBegin(GL_QUADS);      // Начинаем рисование четырехугольника

                        

// Верхняя поверхность

glTexCoord2f(0.0f, 1.0f);

glVertex3f(-1.0f, 1.0f, -1.0f);        // Верхний левый угол текстуры и четырехугольник

glTexCoord2f(0.0f, 0.0f);

glVertex3f(-1.0f, 1.0f, 1.0f);        // Нижний левый угол текстуры и четырехугольник

glTexCoord2f(1.0f, 0.0f);

glVertex3f( 1.0f, 1.0f, 1.0f);        // Нижний правый угол текстуры и четырехугольник

glTexCoord2f(1.0f, 1.0f);

glVertex3f( 1.0f, 1.0f, -1.0f);        // Верхний правый угол текстуры и четырехугольник

glEnd();                // Заканчиваем рисование четырехугольника

Снова говорим OpenGL, что мы закончили создание списка отображения с помощью команды glEndList(). Вот. Мы успешно создали два списка отображения.

        glEndList();            // Закончили создание списка отображения 'top'

}

Код создания текстур тот же, который мы использовали в предыдущих уроках для загрузки и создания текстур. Мы хотим получить текстуру, которую сможем наложить на все шесть сторон каждого куба. Я, бесспорно, буду использовать мипмаппинг, чтобы сделать действительно сглаженные текстуры. Я ненавижу глядеть на пиксели :). Текстура для загрузки называется 'cube.bmp'. Она хранится в каталоге под названием 'data'. Найдите LoadBMP и измените эту строку таким образом, чтобы она выглядела как нижеследующая строка.




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



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