Разработано еще несколько методов исследования видимых поверхностей. Метод строк развертки одновременно обрабатывает все поверхности для каждой строки развертки. В методе сортировки по глубине (алгоритм художника) объекты “рисуются” в буфере регенерации согласно их расстояниям от точки наблюдения. Определение видимых частей сцены с помощью схем деления представлено методом BSP-дерева, делением области и представлением в форме октодерева. Видимые поверхности также можно выявлять, используя методы расчета лучей, в которых путем проектирования линий с плоскости пикселей на сцену определяются точки пересечения этих линий проекции с объектами. Методы расчета лучей являются неотъемлемой частью алгоритмов построения хода луча, которые позволяют отображать сцены с эффектами глобального освещения.

Методы исследования видимых поверхностей также используются при отображении трехмерных рисунков от руки (line drawings). При наличии на сцене криволинейных поверхностей можно отображать графики в горизонталях. Для построения каркасных изображений многогранников на сцене ищутся различные сегменты краев поверхностей, видимые из точки наблюдения.

Любую схему исследования видимых поверхностей можно реализовать в программе-приложении, создав собственные процедуры, поскольку в графических библиотеках широко представлены функции только для устранения задних граней и метод буфера глубины, который в высокопроизводительных системах компьютерной графики реализован аппаратно.

Функции отбора многоугольников и определения видимых поверхностей с помощью буфера глубины есть в корневой библиотеке OpenGL. С помощью этих процедур можно удалить задние грани стандартных графических объектов, их передние грани или и те, и другие. Используя процедуры буферы глубины, можно задать диапазон проверок глубины и тип проверок глубины, которые будут выполняться. Каркасные изображения строятся с использованием операций OpenGL для работы с режимами и сдвига многоугольников. Кроме того, сцены OpenGL можно также генерировать с использованием эффектов затухания с глубиной. Функции OpenGL для проверок на видимость сведены в табл. 9.1. Функции выбора режима многоугольников и других родственные операции перечислены в конце главы 4.

ЛИТЕРАТУРА

В качестве дополнительных источников информации по алгоритмам исследования видимости рекомендуются [91], [103], [230] и [310]. Методы A-буфера представлены в [63], [138] и [315]. Резюме по методам создания контуров приводится в [88].

Руководство по различным техникам программирования можно найти в [8], [122], [151], [176] и [244]. В работе [400] обсуждаются функции исследования видимых поверхностей OpenGL. Наконец, полный перечень функций OpenGL в корневой библиотеке и в GLU дан в [320].

УПРАЖНЕНИЯ

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


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