9.2. Реализуйте процедуру из предыдущего упражнения, используя ортографическое параллельное проектирование для отображения на экране видимых граней входного выпуклого многогранника. Предполагайте, что все части объекта находятся перед плоскостью наблюдения.

ТАБЛИЦА 9.1 .Резюме по функциям OpenGL исследования видимости

Функция

Описание

glCullFace

При активизации с glEnable (GL_CULL_FACE) указывает, какие плоскости многоугольников (задние или передние) будут задействованы в операциях отбора

glutlnitDisplayMode

Задает операции в буфере глубине с использованием аргумента GLUT_DEPTH

glClear

Инициализирует буфер глубины со значением

(GL_DEPTH_BUFFER_BIT)

по умолчанию 1.0 или значением, заданным функцией glClearDepth

glClearDepth

Задает исходное значение буфера глубины

glEnable (GL_DEPTH_TEST)

Активизирует операции проверок глубин

glDepthRange

Задает диапазон нормированных значений глубины

glDepthFunc

Задает условия проверок глубины

glDepthMask

Устанавливает статус записи для буфера глубины

glPolygonOffset

Задает смещение, чтобы устранить скрытые линии на каркасном изображении при применении заполнения цветом фона

glFog

Задает линейные операции затухания с глубиной и значения минимальной и максимальной глубин в расчетах затухания с глубиной

9.3. Реализуйте процедуру из упражнения 9.1, используя перспективную проекцию для вывода на экран видимых граней входного выпуклого многогранника. Предполагайте, что все части объекта расположены перед плоскостью наблюдения.

9.4. Напишите программу анимации выпуклого многогранника. Объект должен вращаться вокруг оси, проходящей через объект параллельно плоскости наблюдения. Предполагайте, что объект целиком лежит перед плоскостью наблюдения. Используйте ортографическую параллельную проекцию для последовательного отображения проекций на плоскость наблюдения.

9.5. Напишите процедуру реализации метода буфера глубины для отображения видимых поверхностей любого входного многогранника. Размер массива, используемого в буфере глубины, выбирается согласно требованиям системы, например 500 на 500. Как требования к памяти, касающиеся буфера глубины, выводятся из определений отображаемых объектов?

9.6. Модифицируйте процедуру из предыдущего упражнения, чтобы она отображала видимые поверхности на сцене, содержащей любое число многогранников. Разработайте эффективные методы записи и обработки различных объектов сцены.

9.7. Модифицируйте процедуру из предыдущего упражнения и реализуйте алгоритм А-буфера для отображения сцены, содержащей прозрачные и непрозрачные поверхности.

9.8. Расширьте процедуру из предыдущего упражнения, чтобы она включала защиту от наложения.

9.9. Разработайте программу - реализацию алгоритма строк развертки для отображения видимых поверхностей данного многогранника. Используйте таблицы многоугольников для хранения определений объекта и используйте техники когерентности для вычисления точек вдоль строк развертки и между ними.


⇐ вернуться назад | | далее ⇒