В разделе 6.5 «Каркасные аппроксимации гладких объектов» обсуждается построение сеток для моделирования объемных тел, имеющих плавно изгибающиеся поверхности. Сетки аппроксимируют некоторую гладкую «истинную» поверхность. Ключевым моментом является вычисление нормального вектора к истинной поверхности в любой точке. Рассматривается несколько интересных семейств гладких тел, в том числе поверхности второго порядка (квадрики) и суперквадрики, линейчатые поверхности и лоскуты Кунса (Coons patches), явные функции двух переменных и поверхности вращения.

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

6.2. Введение в трехмерное моделирование полигональными сетками

6.1. Введение Полигональные сетки (Polygonal meshes) являются просто набором полигонов, или «граней», которые в совокупности формируют «оболочку» (skin) объекта. Сетки в графике являются стандартным способом представления широкого класса объемных форм. Мы уже видели несколько примеров, таких как куб и икосаэдр, а также аппроксимацию гладких поверхностей, подобных сфере, цилиндру и конусу. В этой главе мы рассмотрим значительно больше примеров. Популярность полигональных сеток в графике основана на простоте использования полигонов: их легко представлять (последовательностью вершин) и преобразовывать, у них простые свойства (единственный нормальный вектор, четко определяемые внутренняя и внешняя области и т. д.); кроме того, их просто рисовать (с помощью подпрограммы закрашивания полигонов или наложения текстуры на полигон).

Многие системы визуализации, в том числе OpenGL, основаны на изображении объектов посредством рисования последовательности полигонов. Каждая грань полигона посылается в графический конвейер, где ее вершины подвергаются различным преобразованиям, и та часть грани, которая осталась после отсечения, закрашивается или «затеняется» и демонстрируется на устройстве отображения.


⇐ Предыдущая| |Следующая ⇒