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