Многоугольные и квадратичные поверхности позволяют точно описать такие простые евклидовы объекты, как многогранники и эллипсоиды; сплайновые поверхности и методы конструктивной блочной геометрии полезны при разработке крыльев самолетов, зубчатых передач и других инженерных структур с криволинейными поверхностями; такие процедурные методы, как фрактальные построения и использование систем многих частиц, позволяют моделировать особенности рельефа, облака, заросли травы и другие природные объекты; в методах физического моделирования (physically based modeling) системы взаимодействующих сил используются для описания нежесткого поведения деталей одежды или капли желе; кодирование с помощью октодерева используется для представления внутренних особенностей структуры, полученных, например, по медицинским изображениям компьютерной томографии; кроме того, чтобы визуально представить трехмерные дискретные наборы данных, используются изображения в горизонталях, объемная визуализация и другие методы.
Схемы представления твердых объектов часто делятся на две широкие категории, хотя не все представления можно строго отнести к той или иной категории. Контурные представления (boundary representations, B-rep) описывают трехмерный объект как набор поверхностей, отделяющих внутреннюю часть объекта от среды. Типичные примеры контурных представлений - описание через грани многоугольника и сплайновые участки. Представления с разбиением пространства (space-partitioning representation) позволяют описывать внутренние свойства через разбиение области пространства, содержащей объект, на набор небольших неперекрывающихся непрерывных объемных тел (обычно кубов). Распространенным описанием трехмерного объекта с разбиением пространства является представление в форме октодерева (octree). В данной главе рассмотрены особенности различных схем представления и то, как они используются в приложениях компьютерной графики.
МНОГОГРАННИКИ
Наиболее распространенным контурным представлением трехмерного графического объекта является указание набора поверхностей-многоугольников, огораживающих внутреннюю часть объекта. Многие графические системы хранят все описания объектов именно в форме наборов многоугольных поверхностей. Это упрощает и ускоряет визуализацию поверхности и отображение объектов, поскольку все поверхности описываются линейными уравнениями. По этой причине многоугольные описания часто называются стандартными графическими объектами. В некоторых случаях многоугольное представление является единственным доступным, но многие пакеты также позволяют описывать поверхности объектов с помощью других схем, например, с использованием онлайновых поверхностей, которые обычно преобразуются в многоугольные представления с целью обработки в конвейере наблюдения.
Чтобы описать объект как набор многоугольных граней, нужно указать координаты вершин всех многоугольных участков поверхности объекта. Затем для каждого многоугольника координаты вершин и информация по краям участков поверхности записываются в таблицы (раздел 3.15) вместе с информацией о векторе нормали к поверхности. Некоторые графические пакеты предлагают процедуры, позволяющие генерировать сетки из многоугольных поверхностей - наборов треугольников или четырехугольников. Так можно описывать большие участки поверхности, ограничивающей объект, или даже всю поверхность с помощью одной команды. Кроме того, некоторые пакеты также предлагают процедуры вывода на экран таких распространенных форм, как куб, сфера или цилиндр, представленных многоугольными поверхностями. В серьезных графических системах используются быстрые аппаратные реализации схем визуализации с помощью многоугольников, что позволяет отображать миллион или даже больше затененных многоугольников (обычно треугольников) за секунду, включая наложение текстуры на поверхность и применение специальных эффектов освещения.