418

178.209.64.54178.209.64.54/ivk/OKM/Z17/Komputernaya_Graphika.pdf · Зрительный аппарат человека ... Графическая подсистема ЭВМ

  • Upload
    ngoque

  • View
    244

  • Download
    5

Embed Size (px)

Citation preview

А.Н. Божко, Д.М.Жук, В.Б. Маничев

Компьютерная графика

Допущено Учебно-методическим объединением вузов по университетскому политехническому образованию

в качестве учебного пособия для студентов высших учебных заведений,

обучающихся по направлению ~<Информатика и вычислительная техника»

Москва Издательство МГТУ имени Н.Э.Баумана

2007

УДК 004.92(075.8) ББК 32.973

Б72

Рецензенты:

д-р техн. наук, проф. А.Н. Данчул;

кафедра «Цифровые информационные системы>>

Московского университета печати

(зав. кафедрой д-р пед. наук, проф. М.Ф. Меняев)

Божко А.И., Жук Д.М., Маничев В.Б.

Б72 Компьютерная графика: Учеб. пособие для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2007. - 392 с.: ил. - (Информатика в техническом

университете.)

JSBN 978-5-7038-3015-4

Рассмотрены физические основы цветовосприятия и особенности самых рас­

пространенных цветовых моделей. Дано представление о принципах измерения

цвета и калибровки устройств ввода-вывода. Подробно описаны техническ11е

средства компьютерной графики и особенности графических устройств совре­

менных вычислительных систем. Изложены алгоритмы растровой гра~Jики и

форматы графических файлов. Отдельная глава посвящена математическим моде­

лям кривых, поверхностей и тел.

Содержание книги соответствует курсу лекций. который авторы читают в

МГТУ им. Н.Э. Баумана.

Для студентов. обучающихся по различным направлениям и специализациям

современных информационных технологий. Может быть полезна специалистам

по системам автоматизированного проектирования. разработчикам игр, програм­

мистам, пользователям современных графических пакетов.

ISBN 978-5-7038-3015-4

у дк 004.92(075.8) ББК 32.973

© А.Н. Божко. Д.М. Жук. В.Б. Маничев, 2007

©Оформление. Издательство

МГГУ им. Н.Э. Баумана, 2007

ОГЛАВЛЕНИЕ

ОГЛАВЛЕНИЕ ................................................................................................... .

ПРЕДИСЛОВИЕ." .................................... .

1. ВВЕДЕНИЕ В КОМПЬЮТЕРНУЮ ГРАФI-1КУ ... . ... " ....... . 1.1. Направления и области использования компьютерной графики .. .

1. 1 .1. Изобразительная компьютерная графика 1 . 1 .2. Обработка и анализ изображений .......... . 1 .1.3. Анализ сцен и распознавание образов..... . ................. .

5

8

11 12 12 13 13

1. 1 .4. Коrнитиввая компьк)терная графика ............... ............ 13 1. 1 .5. Области использования компьютерной графики .. "" ....... " ... ".... 14

1.2. Растровая и векторная графика ... " .............................. " .. " .. " ... "....... 14 1 .2. 1. Векторный формат .. " ............ " ...... " .. " .. " .. " ............... ".... . ............. "... 16 1.2.2. Растровый формат............................................................... 17

1 .3. Свет и физические основь1 цветовосприятия................................ 18 1 .3.1. Светотехнические величины .................... " .. " .. " .. . 1.3.2. Зрительный аппарат человека 1.3.3. Чувствительность глаза .......... . 1.3.4. Дефекты цветового восприятия ... . 1.3.5. Цветовые иллюзии ............................. . 1.3.б. Хроматическая адаптация .................................. .

1.4. Формирования цветных изображений .......... "..... . ... " .. " .. " .. .

19 20 22 24 25 27 28

1.4.1. Базовые принц11пы описания цвета." .. " .. " ................... " ... " ·············· 28 1.4.2. Модель RGB ... " .. " .. " .. " ........... "....... . ... " .. " ... " .. 1.4.3. Модели СМУи СМУК .. . .................. . 1.4.4. Модели YUV и YIQ .... ".. . .......... " .. ". " ...... " .. . 1 .4.5. Модель CIE XYZ ........ " .. " .. " ... "......... . ....... " ... " .. 1.4.6. Модели CIE Luv и CIE Lab ............... ................... . ....... " ........ . 1.4. 7. ~lнтуитивные цветовые модели ....... . 1.4.8. Цветовой круг ................................... . 1.4.9. Стандартные источники света CIE .. . 1.4.10. Формирование цветов на э1еране монитора .... . 1.4. J 1. Интерполяция цветов. . .................. .

1.5. Измерение цвета и 1еалибровка техничес1еих средств" ...... . 1.5.1. Системы управления цветом .......... ".. . ............ " ... " .. 1.5.2. Профили ICC ... " ... "." ... ".".. . ....... " ... " .. 1.5.3. Инструменты для измерения цвета ............................................ . 1.5.4. Создание профиля монитора ........................ " ......................... " .. " .. . 1.5.5. Создание профиля сканера" .. " ............ "............ " ...... " .. " ........ " .. . 1.5.6. Создание профиля печатающего устройства .. " ............ " .. . 1.5.7. Передача цветовых значений............................ . ............... .

30 31 33 34 36 37 39 39 40 43 44 45 47 48 50 51 53 54

5

Оглавление

1.6. Теоретические осиовь1 оцифровки ..... . 1.6.1. Типы сканирующих устройств .... . 1.6.2. Разрешение .......................................... . 1.6.З. Глубииа цвета устройства оцифровки .. 1.6.4. Диапазон оптических плотностей ......................... ". 1.6.5. Размеры изображений ................................... . 1.6.6. Масштабирование ....................................................................... . 1.6.7. Дискретизация ............................................... .

Вопросы для самоконтроля .. " ....................... .

2. ТЕХНИЧЕСКИЕ СРЕДСТВА КОМЛЬЮТЕРНОЙ ГРАФИКИ ............. " ..... . 2. 1. Общие сведения об ЭВМ, используемых для обработки графической

информации ............................................................................ . 2. 1 .1. Основные технические параметры ЭВМ ............................................ . 2.1.2. Классификация ЭВМ ............................................................ . 2. 1 .3. Аппаратные средства ЭВМ ............................ .

2.2. Графическая подсистема ЭВМ ............... . 2.2.1. Прииципы работы графического адаптера .................. . 2.2.2. Технологии 30-графики ..................... . 2.2.З. Последовательность работы графического конвейера.

2.2.4. Поколения графических процессоров ...... . 2.2.5. Мониторы..... . ............. . 2.2.6. Проекторы.. . ............................. .

Вопросы для самоконтроля ................................. .

3. МАТЕМАТИЧЕСКИЕ МОДЕЛИ ГЕОМЕТРИЧЕСКИХ ОБЪЕКТОВ .... .

6

3.1. Представление кривых и поверхностей. . ............................ . 3.1.1. Полигональные сетки ......... . 3.1.2. Представление полигональных сеток .... 3.1.3. Согласованность полигональных сеток. 3.1.4. Уравнения плоскости ....................... . ................... .

3.2. Параметрические кубические кривые................ . ................ . 3.2.1. Основные положения ............................................................... . 3.2.2. Кривые Эрмита..................................................... . ........... . 3.2.3. Кривые Безье ....................................................................... . 3.2.4. Однородные нерациональные В-сплайны ........ . 3.2.5. Неоднородные нерациональные В-сплайны ................ . 3.2.6. Рациональная форма кривых и сплайнов ......................... . 3.2.7. Разбиение кривых.. . .................... . 3.2.8. Преобразование представлений .. 3.2.9. Рисование кривых. 3.2.10. Сравнение кубических кривых

3.3. Параметрические бикубические поверхности 3.3.1. Поверхности Эрмита ............................... . 3.3.2. Поверхности Безье ............................................................................ . 3.3.3. Бисплайновые поверхности.......................... . ................ . 3.3.4. Нормали поверхностей................................. . ................................. . 3.3.5. Визуализация бикубических поверхностей

56 57 59 61 62 64 65 67 69

71

71 72 73 83

105 109 128 149 154 155 166 170

172 172 174 174 177 177 179 179 184 189 194 199 205 206 209 210 214 216 217 222 223 223 224

Оглавление

3.3.6. Поверхности второго порядка ............................................................. 228 3.4. Твердотельное моделирование........................................... . ....................... 229

3.4.1. Основные положения .... "..................................... .................. 229 3.4.2. Регулярные булевские операции ....... . 3.4.3. Параметрическое моделирование геометрии 3.4.4. Заметание ........... " ................................... . 3.4.5. Граничное представление ........... . 3.4.6. Модели пространственного разбиения .. 3.4.7. Конструктивная твердотельная геометрия. . ........ " .... . 3.4.8. Сравнение представлений .................................................................... .

Вопросы для самоконтроля ............................................................. .

4. МЕТОДЫ, АЛГОРИТМЫ И ФОРМАТЫ ФАЙЛОВ КОМПЬЮТЕРНОЙ ГРАФИКИ .... ".................................. . ........................ .

4.1. Методы и алгоритмы двухмерной компьютерной графики ........... . 4.1.1. Входные и выходные данные растровые. . ............. . 4.1.2. Входные данные растровые. выходные даииые векторные .... " ........ . 4.1.3. Входные данные векторные, выходные данные растровые .... " ........ . 4.1.4. Входные и выходные данные векторные ......................... .

4.2. Методы и алгоритмы трехмерной графики и геометрии .......... . 4.2.1. Алгоритмы визуализации трехмерных моделей ................................. . 4.2.2. Алгоритмы закрашивания видимых поверхностей" ......................... . 4.2.3. Детальное отображение поверхностей ................................................ . 4.2.4. Алгоритмы анимации трехмерных моделей ................................. .

4.3. Форматы графических fl геометрических файлов ....................................... . 4.3. 1. Форматы векторных данных................... . ....................... . 4.3.2. Форматы растровых данных .... " ............ . 4.3.3. Язык АdоЬе PostScript ............................... " ...... .

Вопросы для самоконтроля...... . ............. .

232 236 238 240 255 264 267 268

270 270 271 291 303 317 346 346 357 364 367 376 376 385 388 390

СПИСОК ЛИТЕРАТУРЫ .................... . ·············· ................................ ···················· .391

1.6. Теоретические основы оцифровки

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

1.6.2. Разрешение

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

Растровые изображения состоят из совокупности элементарных графическихэлементов — точек, которые иногда называют пикселами (от англ. picture element).На элементарном уровне любая растровая картинка представляет собой регулярнуюсетку точек, каждая из которых обладает независимыми параметрами яркости ицветности. Сложение цветов и яркостей этих элементарных частичек изображениявоспринимается наблюдателем как целостный графический образ.

Важнейшей характеристикой точечного изображения является его разреше-ние. Разрешение — количество точек (dot) или пикселов (pixel), приходящеесяна единицу длины. Как правило, в качестве линейной единицы измерения ис-пользуются дюймы (inch). Отсюда наименование этого параметра — dpi (dot perinch) или ppi (pixel per inch).

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

Пусть изображение с разрешением в 100 dpi имеет высоту и ширину по200 пикселов. Его фактическая высота (ширина) легко находится делением вы-соты (ширины), измеренной в точках, на разрешение. Изображение представляетсобой квадрат со стороной 2 дюйма. Если, не меняя количества точек по сторо-нам, увеличить разрешение в 2 раза, то фигура получит новые размеры, равные1 дюйму. И наоборот, уменьшение разрешения влечет за собой увеличение фак-тических размеров, если пиксельные размеры остаются неизменными.

Если известны физические размеры изображения и его разрешение, то легконайти количество составляющих точек. Пусть сканируется квадратная картинкасо стороной в 3 дюйма и разрешением 100 dpi, тогда оцифрованное изображениебудет включать в себя 300 точек по каждому направлению.

Что произойдет, если оставляя число точек неизменным, менять фактиче-ские линейные размеры изображения? Точные ответы дает простая и нагляднаяаналогия. Представим, что носителем изображения является материал с неогра-ниченной способностью к растяжению и сжатию. Если сильно растянуть такую

59

/. Введение в компьютерную графику

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

Понятие «разрешение» применяется не только к растровым изображениям;оно служит важнейшей характеристикой многих цифровых приборов и процес-сов. Так, качество сканера, объем графической информации, который способенобработать этот прибор, во многом зависит от его разрешения. Это в полной ме-ре относится к планшетным, ручным, листовым сканерам и оцифровывающимустройствам, предназначенным для обработки слайдов и диапозитивов. У при-боров, построенных по классической схеме, горизонтальное разрешение зави-сит от плотности фоторецепторов сканирующей головки, вертикальное — опре-деляется минимальным шагом смещения каретки вдоль оригинала. Иногда пер-вую величину называют оптическим разрешением, а вторую — механическим.У многих современных моделей сканеров эти параметры различаются. Как пра-вило, механическое разрешение выше оптического. Обычное разрешение со-временных планшетных сканеров равняется 1200x2400 dpi, а у моделей полу-профессионального класса оно может достигать 2400x4800 dpi, лучшие предста-вители этого типа приборов могут иметь еще более высокое разрешение.

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

Иногда применительно к сканерам слово «выборка» вместо «точка», и еди-ницы измерения плотности оцифровки spi (sample per inch) вместо dpi. Их аргу-ментацию можно принять, если бы не многолетняя терминологическая тради-ция, которая разрешает описывать привычными терминами «точка» и dpi любыецифровые устройства (мониторы, сканеры, видеокамеры) и процессы (сканиро-вание, видеомонтаж и пр.).

Результат оцифровки зависит от размеров пикселов. Точки большого разме-ра огрубляют растровое изображение, делают видимой его дискретную структу-ру. При неизменных размерах оригинала плотность выборки и размеры точексвязаны по закону обратной пропорциональности. Чем выше разрешение, темменьше размеры элементов изображения, снятых приборов с оригинала (рис. 10цветной вклейки).

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

60

1.6. Теоретические основы оцифровки

В описаниях сканеров иногда указывают очень большие значения разреше-ния, заведомо превосходящие технические возможности этих приборов. В такихслучаях скорее всего речь идет о так называемом интерполированном разреше-нии. Интерполяцией в математике называют процесс вычисления промежуточ-ных значений функции или величины по их опорным значениям. Тот же самыйсмысл имеет это понятие и в сканировании. На основе матрицы оцифрованныхточек, снятых прибором с оригинала, при помощи специального программногообеспечения строятся промежуточные пикселы. Их цветовые и яркостные пара-метры рассчитываются по соседним точкам на основе алгоритмов усреднения илипо более сложным зависимостям. Иными словами, программа сканирования само-стоятельно рассчитывает «недостающие» точки, например, получив со сканерасетку размером 5x5 точек, она может расширить ее до размеров Юх 10 и более.

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

Уже упоминалось о том, что по объективным техническим причинам опти-ческое и механическое разрешение сканера могут не совпадать. Если в техниче-ском паспорте устройства указывается разрешение 600x1200, то это значит, чтомаксимальная вертикальная плотность точек в 2 раза выше горизонтальной. Не-сложный анализ показывает, что если для сканирования выбрано разное разре-шение по осям координат (например, 600x1200 dpi), то в оцифрованном ориги-нале будут потеряны исходные пропорции. Этого не происходит, потому чтосканер самостоятельно уравняет плотности по направлениям и добавит по гори-зонтали недостающие точки за счет интерполяции.

Процедура интерполяции часто используется и в тех случаях, когда заданоразрешение сканирования, не кратное оптическому. Например, сканер способенработать с разрешением 300x600 dpi, а в установках управляющей программызадано 175 dpi. Если обрабатывается оригинал маленького размера, которыйпланируется значительно увеличить, то использование высокого интерполи-рованного разрешения становится не только оправданным, но и часто необхо-димым.

1.6.3. Глубина цвета устройства оцифровки

Термин «глубина цвета» относится не только к цветовым моделям — этоодна из важнейших технических характеристик любого устройства оцифровки.Как, например, истолковать строчку технического описания сканера, в которойговорится о его 24-битной глубине цвета? Это значит, что данный прибор можетпроизводить 8-разрядную выборку для каждого цветового канала. Иными сло-вами, это устройство среднего уровня, способное сканировать в цвете оригина-

61

/. Введение в компьютерную графику

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

Давно прошли времена, когда сканеры могли продуцировать только полуто-новые черно-белые изображения, т. е. имели глубину цвета, равную 8 битам.Большинство современных устройств оцифровки обладают 30-битной и болееглубиной цвета. Лучшие марки полупрофессиональных планшетных сканеровимеют глубину, равную 48 битам, что составляет 16 бит на один канал. Это по-зволяет представить колоссальное количество тоновых градаций 2 | 6 - 2 | 6 - 2 1 6 == 281 474 976 710 656. Зачем такая высокая разрядность? Только несколько со-тен цветов имеют названия, глаз человека не способен различить все градациидаже пространства True Color, и не существует печатного оборудования, котороеспособно передать все оттенки столь богатой палитры. Две основные причинызаставляют повышать глубину цвета устройств ввода. Первая причина — техно-логическая. Матрица фоторецепторов в сканерах более высокой разрядностиобладает, как правило, повышенной чувствительностью и в меньшей степени«загрязняет» изображение собственными шумами. Вторая причина — про-граммная. Большое количество битов увеличивает гибкость редактирования навсех последующих этапах обработки изображения. Многие операции с изобра-жениями, например гамма-коррекция, изменение цветового пространства, обед-няют тоновое пространство, снижают число цветовых градаций. Если начинатьобработку 16-битовых каналов, то, имея достаточный запас, можно безболез-ненно пережить потерю некоторых малозначительных деталей. Совершенноиная ситуация складывается при работе с 8-битовыми каналами. Здесь любыепотери могут иметь решающие последствия для качества изображения.

1.6.4. Диапазон оптических плотностей

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

Оптическая плотность — характеристика обрабатываемого оригинала, котораявычисляется как десятичный логарифм отношения падающего светового потока кпотоку, отраженному от непрозрачного сканируемого объекта (для прозрачныхобъектов, слайдов или фотографических негативов используется сила прошедшегосвета). Эта величина является численной характеристикой непрозрачности про-зрачных оригиналов и отражающей способности непрозрачных объектов.

Предельные значения оптической плотности непрозрачных объектов равны0 и 4. Совершенно белые непрозрачные объекты, которые отражают весь па-дающий световой поток, имеют минимальное значение этой величины. Идеаль-но черные объекты и материалы, поглощающие весь попадающий на них свет,обладают максимальной оптической плотностью, равной 4.

62

1. Введение в компьютерную графику

родной организацией по стандартизации (ISO), используются мишени IT8. Этопечатный образец, представляющий эталонные цвета различной яркости и на-сыщенности и оттенки серого цвета. Стандартом фиксируется только часть со-держимого мишени, значительный ее фрагмент не регламентируется и можетбыть выбран по усмотрению производителя.

Многие производители сканеров, фотографического оборудования и про-граммного обеспечения включают в комплект поставки такие образцы, напри-мер Kodak IT8 или Kodak Q60. На рис. 11 цветной вклейки показан цветовойэталон, который канадская фирма Corel поставляет вместе со своим графиче-ским пакетом PhotoPaint.

Следует отсканировать этот образец и проверить различимость градаций се-рого цвета. На эталоне фирмы Corel оттенки серого представлены 24 образцами,расположенными в нижней его части. Сканер с низкими значениями оптическо-го диапазона не сможет распознать тоновые переходы в левой и правой частяхсерого клина даже при самой тщательной обработке образца. На отсканирован-ном эталоне темные области будут закрашены черным цветом без заметных то-новых переходов и нюансов, а области светлых тонов превратятся в совершеннобелые. Это значит, что для данного прибора оригиналы подобной плотности бу-дут недоступны. Описанная процедура дает только приблизительную оценкузначения оптического диапазона. К сожалению, пока не разработана процедураточного измерения диапазона оптических плотностей, доступная для рядовогопокупателя или оператора планшетного сканера.

Оптический диапазон устройства оцифровки и число двоичных разрядов,приходящихся на один канал, связаны между собой. Можно показать, что мак-симальный оптический диапазон не может превосходить десятичного логарифмаот количества возможных тоновых градаций одного канала. Если на одни каналсканера приходится 8 бит, то, как показано ранее, максимальное число различ-ных оттенков канала равно 28 = 256. Максимальный оптический диапазон такогоустройства оцифровки не может превосходить десятичного логарифма от 256,т. е. 2,4. В действительности у серийных приборов значения этой величины ле-жат значительно ниже теоретического максимума. Например, у самых популяр-ных на текущий момент сканеров с глубиной цвета 36 бит теоретический пределравен 3,6. В реальности приборы этого класса имеют намного более скромныезначения оптического диапазона, обычно много ниже 3,0.

1.6.5. Размеры изображений

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

64

1.6. Теоретические основы оцифровки

Точечная дисперсная структура растровых изображений во многом объясня-ет повышенные требования к подсистеме памяти компьютера. Качественнаякартинка требует плотной упаковки элементарных частичек изображения —пикселов, и для каждого из них нужно хранить сведения о цвете и яркости. Что-бы обеспечить возможность отмены ошибочных действий в памяти компьютера,приходится хранить несколько версий обрабатываемого изображения. В процес-се редактирования надо помнить и множество дополнительных объектов, свя-занных с оригиналом, например снимки состояний, текстуры, кисти и пр. Пере-расход оперативной памяти активизирует обращения к дисковой подсистеме икак следствие существенно замедляет работу компьютера.

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

Пусть изображение размером 6 x 4 дюйма сканируется с разрешением300 dpi. Количество выборок по горизонтали и вертикали находится умножени-ем ширины и высоты оригинала на разрешение: 6 х 300 = 1800, 4 х 300 dpi = 1200.Общее число точек равняется 1800 х 1200 = 2 160 000. Легко подсчитать необ-ходимые затраты памяти для различных цветовых моделей. Если оригинал цвет-ной и выбрана система RGB, то на каждую точку будет отведено 24 двоичныхразряда, т. е. 3 байт. Для вычисления общих затрат памяти в байтах требуетсяумножить число точек на 3, что дает 6 480 000 байт или почти 6,5 Мбайт. Еслисканировать этот оригинал в градациях серого, то результирующий объем будетв 3 раза меньше 2,16 Мбайт. Режим LineArt, где на каждую точку отводится поодному биту, потребует 2 160 000 х 1 бит, или 264 000 байт.

Связь между размерами изображения и его разрешением не является линей-ной. Удвоение разрешения увеличивает объем занимаемой памяти в 4 раза, ут-роение — в 9 раз. Так, небольшая на первый взгляд разница между 150 и 200 dpiможет обернуться многими мегабайтами дискового пространства и оперативнойпамяти.

1.6.6. Масштабирование

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

Экранная версия изображения — это просто матрица точек со своими раз-мерами по высоте и ширине. Изображение, имеющее размеры 600 х 400, будетзанимать фиксированную долю экранного пространства на любом мониторе,независимо от принципа его действия. Оно закроет почти весь экран, если для

65

1. Введение в компьютерную графику

него выбрано разрешение 640 х 480, на экране с разрешением 1024 х 768 онозаймет примерно 1/4 пространства, наконец, при разрешении 1600 х 1200 будетзанято чуть более 1/9 площади экрана. При этом физические размеры, т. е. теразмеры, которые рассчитываются в дюймах и сантиметрах, будут зависеть отдиагонали монитора. А каковы будут размеры картинки при выводе ее на пе-чать? В большинстве растровых редакторов по умолчанию размеры печатнойверсии совпадают с габаритами сканированного оригинала (если быть предельноточным, то с размерами области сканирования). Пусть требуется отпечататьизображение размером 600 х 600 пикселов. Будем считать, что размеры — дан-ность, сейчас не имеет значения способ их получения, разрешение сканирова-ния и установки печати. Если задать размеры печатной версии в 10 дюймов, торазрешение оригинала будет равно 600 dot / 10 inch = 60 dpi. Приведем ряд зна-чений разрешения для разных размеров печатного оттиска:

• 600/5= 120;

• 600/3 = 200;

• 600/2 = 300.Все эти изменения совершенно не затрагивают экранную версию, все ее

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

Пусть для выбранного принтера и сорта бумажного носителя оптимальнымявляется значение разрешения, равное 200 dpi. Какие последствия вызовет вы-вод на печать выбранного оригинала с разрешением в 120 dpi? Это разрешениеприведет к потере качества, поскольку часть деталей исчезнет при печати. А ес-ли побороться за результат, выбрав более высокое разрешение печати? Если,например, выставить 300 dpi или более, то принтеру будет передана избыточнаяинформация, которой он просто не сможет воспользоваться.

Предположим, что сканированная версия изображения демонстрирует по-средственное качество при выводе на монитор. Можно ли поправить дело, отпе-чатав ее на высококачественной бумаге с высоким разрешением? Простейшийанализ показывает, что повышение разрешения печати не исправит ситуацию, по-скольку объема графической информации эта процедура не меняет. Принтер ис-пользует только те данные, которые заложены в изображение на этапе оцифровки.Эти мысленные эксперименты, конечно, упрощают реальное положение дел, нодействие принципа разумной достаточности для выбора оптимального разреше-ния печати вряд ли можно оспорить. Сейчас мы не обсуждаем технику его расче-та; она будет подробно рассмотрена далее.

66

1.6. Теоретические основы оцифровки

Итак, если зафиксировать точечные размеры изображения, то любые изме-нения разрешения влекут за собой модификацию области печати. Справедливои обратное утверждение. В растровой графике это преобразование принятоназывать масштабированием. Зачем масштабировать изображение? Причиныдля этого многообразны и часто очень весомы. Многие современные цифровыекамеры среднего уровня продуцируют изображения небольшого размера, ко-торые, будучи отпечатанными, занимают площадь почтовой марки. Настоль-ные издательские системы требуют изображения фиксированных размеров,которые могут не совпадать с оригинальными габаритами и пр. Масштабиро-вание не меняет физические размеры графического файла, поскольку не воз-действует ни на один из параметров (число точек, глубина цвета), от которыхзависит его значение.

1.6.7. Дискретизация

Изменение числа точек растрового изображения называется дискретизаци-ей. Эта операция очевидным образом влияет на размеры экранной версии изо-бражения, поскольку меняет габариты прямоугольного растрового поля. Пояс-ним процедуру дискретизации на примере изображения, представленного нарис. 12 цветной вклейки. На рисунке показан фрагмент глаза утенка с много-кратным увеличением. Оригинальная версия картинки, которая занимает сред-нюю позицию, имеет разрешение в 72 dpi. Увеличение разрешения в 2 раза вле-чет возрастание количества точек и увеличение линейных размеров экраннойверсии изображения. Уменьшение разрешения продуцирует прямо противопо-ложные последствия.

Операцию изменения числа точек растрового массива иногда называют пе-редискретизацией, или ресамплингом (от англ. Resampling), что в дословномпереводе означает повторная выборка.

В отличие от масштабирования дискретизация — это операция не элемен-тарная с вычислительной точки зрения, поскольку она радикально меняет струк-туру изображения. Пусть имеется изображение размером 400 х 400 точек. Еслисократить его экранные размеры до 300 х 300 точек, на первый взгляд это озна-чает незначительное вмешательство в оригинал — уменьшение всего лишь начетверть. Иная картина открывается, если подсчитать количество точек до опе-рации и после. Исходное изображение состояло из 400 х 400 = 160 000, а послепреобразования оно насчитывает 300 х 300 = 90 000 — почти в 2 раза меньше.Понятно, что такая масштабная по своим последствиям операция не может несказаться на качестве картинки.

Еще более сложные задачи приходится решать при увеличении количестваточек. Если при их уменьшении программа просто отбрасывает лишние пикселы,то при увеличении матрицы дополнительные точки надо «придумать». Добавле-ние новых пикселов выполняется по специальным алгоритмам интерполяции.

67

/. Введение в компьютерную графику

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

• Nearest Neighbor (метод ближайшего соседа). Самый простой метод ин-терполяции, обладающий высокой скоростью работы и результатами не самоговысокого качества. В качестве образца для нового пиксела берутся характери-стики его ближайшего фактического соседа. Метод дает неплохие результатыдля областей с регулярной геометрией, например прямых линий, прямоугольни-ков и пр.;

• Bilinear (билинейная интерполяция). Этот м"етод несколько сложнее вреализации, но дает лучшие результаты по сравнению с методом NearestNeighbor. Параметры новой точки рассчитываются усреднением цветовых илитоновых характеристик соседних действительных пикселов изображения. Своипреимущества метод показывает при уменьшении количества точек изображе-ния. Рациональной областью его применения является обработка изображенийсреднего качества;

• Bicubic (бикубическая интерполяция). Это лучший метод интерполяции,по этой причине он принят по умолчанию в профессиональных растровых ре-дакторах, например Photoshop. Новые точки рассчитываются по существующимсоседям на основе несколько более сложных алгоритмов, чем в предыдущем ме-тоде.

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

Длина х Разрешение = Количество точек.

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

Операцию дискретизации могут выполнять не только графические редакто-ры, но и устройства оцифровки. При обработке оригинала с разрешением, кото-рое не является целой частью максимального оптического разрешения сканера,осуществляется процедура, во многом напоминающая билинейную интерполя-цию, выполняемую растровыми редакторами при изменении числа точек изо-бражения. Рассмотрим эту ситуацию более подробно. Пусть требуется оцифроватьоригинал шириной 3 дюйма на сканере с максимальным оптическим разрешени-ем в 600 dpi. Простым умножением можно найти количество светочувстви-тельных элементов, которые будут задействованы в этой процедуре. Оно равно600 х 3 = 1800. Если установлено разрешение, равное половине максимального(300 dpi), то в процессе оцифровки будет участвовать 900 датчиков, т. е. каждыйвторой. Работу в таком режиме можно организовать элементарными средствами,не внося глубокие изменения в алгоритмы управления прибором. Совсем иная

68

Вопросы для самоконтроля

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

Выбор разрешения сканирования часто обосновывается рациональными до-водами, но, несмотря на веские аргументы и стройные логические рассуждения.у пользователя почти всегда остается значительная свобода выбора. Даже вмысленном эксперименте трудно представить себе такую ситуацию, когда не-возможно отступить от рассчитанного разрешения сканирования. В большинст-ве случаев качество изображения не претерпевает критических изменений дажепри значительных отклонениях разрешения от рассчитанных оптимальных зна-чений. Поэтому следует выбирать такую плотность оцифровки, которая при-ближает расчетное значение сверху и одновременно является целой частью мак-симального оптического разрешения выбранного устройства сканирования.Иными словами, если сканер способен работать с разрешением в 300 dpi, тократные числа 75, 100, 150 dpi предпочтительнее, чем установки сканирования,не являющиеся целой частью от 300, например 120 или 175 dpi. Если для неко-торого оригинала при помощи расчета или иным путем получено оптимальноеразрешение, равное 140 dpi, то в реальной сессии сканирования целесообразноустановить 150 dpi.

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

Вопросы для самоконтроля

1. Назовите основные задачи, решаемые когнитивной КГ.2. Сформулируйте принципы построения векторного формата.3. Перечислите основные положения растровой графики.4. Какой диапазон длин волн соответствует видимой части электромагнитного излучения?5. Что такое спектральная кривая?6. Как называется область физической оптики, занимающаяся измерением энергии света?7. Назовите основные светотехнические величины и единицы их измерения.8. Как называются нервные клетки, регистрирующие хроматическую составляющую

светового потока?

69

/. Введение в компьютерную графику

9. Перечислите основные цвета в порядке уменьшения чувствительности распознава-ния их глазом человека.

10. Что такое хроматическая адаптация и какую роль играет этот феномен в системахуправления цветом?

11. В чем заключается явление метамеризма?12. На какие классы можно разделить все известные модели описания цвета?13. Какие цвета называются дополнительными, или комплиментарными?14. Что такое цветовой охват и какая из цветовых моделей обладает наибольшим охватом?15. Дайте определение спектральной кривой.16. Назовите основные цвета в порядке их расположения на цветовом круге.17. Таблица цветности. Ее место в системе отображения цвета.18. Перечислите основные задачи и разновидности псевдотонирования.19. Структура и основные функции системы управления цветом.20. Назовите основные положения калибровки устройств цветопередачи.21. Что такое профиль устройства и чем он отличается от профайла?22. Что такое глубина цвета и как этот технический параметр влияет на качество систе-

мы цветовоспроизведения?23. Дайте определение оптической плотности и диапазона оптических плотностей. На-

зовите предельные значения, которые может принимать диапазон оптических плот-ностей.

24. В чем заключается процедура ресамплинга растрового изображения?25. В чем заключается процедура интерполяции растрового изображения? Перечислите

основные способы интерполяции.

2. ТЕХНИЧЕСКИЕ СРЕДСТВАКОМПЬЮТЕРНОЙ ГРАФИКИ

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

2.1. Общие сведения об ЭВМ,используемых для обработки графической информации

Технические средства (ТС) и общесистемное программное обеспечение(ПО) являются инструментальной средой графической системы. Они образуютфизическую среду, в которой реализуются математические методы, алгоритмы,математические модели в рамках специального ПО компьютерной графики (КГ).Пользователь (инженер, дизайнер, художник, редактор) взаимодействует с этойсредой и, используя средства КГ, создает графические объекты различной слож-ности. Технические средства и общесистемное ПО реализуют различные, новзаимосвязанные функции по созданию графической информации (ГИ), ее преоб-разованию, хранению и выводу.

С помощью технических средств КГ решают следующие задачи:• ввод исходной графической информации;• оперативное общение пользователя с графической системой;• преобразование графической информации;• хранение графической информации в различных форматах;• отображение графической информации;• документирование графической информации.Основу ТС КГ, решающих перечисленные задачи, составляют вычислитель-

ные системы (ВС), включающие процессоры, оперативную память, внешние за-поминающие устройства, устройства ввода ГИ, устройства вывода ГИ, устрой-ства взаимодействия пользователя с компьютером, телекоммуникационные исетевые устройства. Перечисленные задачи ТС решают совместно с общесис-темным ПО, под которым обычно подразумеваются операционные системы(ОС) ЭВМ. Назначение ОС — организация вычислительного процесса в ВС, ра-циональное распределение вычислительных ресурсов между решаемыми зада-

71

2. /. Общие сведения об ЭВМ

ся наборы задач, предлагаемые независимой и некоммерческой организациейStandard Performance Evaluation Corporation (SPEC). Оценки производительностибольшинства современных ЭВМ, публикуемые этой организацией, являютсядостаточно объективными и надежными в отличие от оценок, приводимых про-изводителями микропроцессоров и ЭВМ. Существует также ряд организаций(например, www.ixbt.com), проводящих сравнительное тестирование ЭВМ наразличных популярных задачах и публикующих результаты тестирования.

Емкость ОЗУ определяет возможности ЭВМ выполнять сложные програм-мы, обрабатывающие большие объемы данных. Емкость ОЗУ измеряется в бай-тах, килобайтах (1 Кбайт = 1024 байт), мегабайтах (1 Мбайт = 1024 Кбайт) и ги-габайтах (1 Гбайт = 1024 Мбайт). Емкость ОЗУ у ЭВМ, используемых для обра-ботки графической информации, колеблется от десятков мегабайт до единицгигабайт.

Емкость ВЗУ определяет возможности ЭВМ по хранению и архивированиюбольших объемов данных и определенного числа программ, характеризующегоуниверсальность ЭВМ. Емкость ВЗУ у ЭВМ, используемых для обработки гра-фической информации, составляет от десятков гигабайт до единиц терабайт.

Пропускная способность подсистемы ввода-вывода определяет возможно-сти ЭВМ по обмену информацией с периферийными устройствами (ПУ) ЭВМ идругими устройствами. Она измеряется максимальным числом единиц инфор-мации, передаваемых через подсистему ввода-вывода за единицу времени. Ре-альная пропускная способность подсистемы ввода-вывода современных ЭВМизмеряется от сотен килобайт до десятков гигабайт в секунду.

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

2.1.2. Классификация ЭВМ

ЭВМ можно классифицировать по различным признакам. ЭВМ, используе-мые для обработки графической информации можно разделить на две группы —универсальные (общего назначения) и специализированные. Большинство ЭВМ,оперирующих с ГИ, относятся к универсальным, а специализированные ЭВМпредназначены для решения узкого круга очень сложных задач КГ. Примеромспециализированных графических ЭВМ может служить многопроцессорная су-перЭВМ Onyx4 UltimateVision фирмы Silicon Graphics, содержащая от 2 до64 ЦП и от 2 до 32 графических процессоров.

Часто ЭВМ классифицируют по числу обрабатываемых потоков команд ипотоков данных. Эта классификация была предложена Флинном (Flinn) в 1955 г.

73

2. Технические средства компьютерной графики

Процессор Память

Подсистема ввода-вывода

I\Рис. 2.1. Структура однопро-

цессорного компьютера

и к настоящему времени устарела, однако ее частоиспользуют при объяснении работы ЭВМ, по-скольку современные компьютеры содержат эле-менты большинства из этих структур. В соответ-ствии с этой классификацией различают четыретипа структуры компьютеров:

• SISD (Single Instructions — Single Data) —однопроцессорный компьютер, который в любоймомент времени управляется единственным пото-

ком команд и обрабатывающий единственный поток данных. Структура такогокомпьютера приведена на рис. 2.1;

• SIMD (Single Instructions — Multiple Data) — многопроцессорный компью-тер, управляемый единственным потоком команд (т. е. все процессоры одновре-менно выполняют одну и ту же команду или пропускают ее) и обрабатывающийнесколько потоков данных. В таких компьютерах процессоры соединены в видематрицы, возможно, многомерной или одномерной, где каждый процессор обра-батывает собственный поток данных. В системе команд многих современныхпроцессоров имеется набор SIMD-операций, предназначенных для работы с век-торами и используемых для обработки графической информации. Структураматричного компьютера изображена на рис. 2.2;

• MISD (Multiple Instructions — Single Data) — многопроцессорный компью-тер, управляемый несколькими потоками команд (т. е. все процессоры одновре-менно выполняют команды, относящиеся к разным потокам) и обрабатывающийединственный поток данных. В этих компьютерах процессоры соединены в кон-вейер и результаты с выхода одного процессора поступают на вход следующего.Ряд узлов современных процессоров организован также в виде конвейера. Струк-тура конвейерного компьютера приведена на рис. 2.3;

• MIMD (Multiple Instructions — Multiple Data) — многопроцессорный ком-пьютер, управляемый несколькими потоками команд и обрабатывающий многопотоков данных. В таких компьютерах процессоры могут быть соединены в ви-

Подсистема ввода-вывода

t *Процессор

[0]

\ t

t *Память

[0]

t \

\ tt 1

Процессор

w1 t

Коммуникационная сеть

t tПроцессор

[«-1]

\ t

t \Память

[и-1]

* tРис. 2.2. Структура матричного компьютера

74

2. Технические средства компьютерной графики

Рис. 2.5. Суперкомпьютер BlueGene/L фирмы IBM

числений, таких как моделирование атмосферных явлений, решение астрономи-ческих задач, прогнозирование погоды, разведка нефтяных и газовых месторож-дений и т. п. Как правило, суперкомпьютеры создаются под конкретные задачиили научные программы и изготавливаются в единичных экземплярах из серий-ных комплектующих. Суперкомпьютеры содержат сотни и тысячи процессоров,имеют большую оперативную память и очень высокое быстродействие. Они со-стоят из большого количества различных аппаратных средств, стоят десяткимиллионов долларов, занимают большие помещения, а иногда и специально по-строенные здания (рис. 2.5).

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

Быстродействие суперкомпьютеров обычно измеряется во ФЛОПСах(FLOPS — Floating Point Operations Per Second). ФЛОПС — количество арифме-тических операций с плавающей запятой, выполняемых в секунду. Производныеединицы: 1 МегаФЛОПС (МФЛОПС) = 1 млн арифметических операций в се-кунду. 1 ГигаФЛОПС (ГФЛОПС) = 1 млрд арифметических операций в секунду;1 ТераФЛОПС (ТФЛОПС) = 1 трлн арифметических операций в секунду.

Организация ТОР500 Supercomputer sites (www.top500.org) с 1993 г. дважды вгод публикует статистику по 500 наиболее мощным суперкомпьютерам, определяяих производительность на тестовой программе High-Performance Unpack Benchmark(HPL) решения системы алгебраических уравнений. Характеристики пяти лучшихкомпьютеров по данным на ноябрь 2006 г. приведены в табл. 2.1.

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

76

2. /. Общие сведения об ЭВМ

Таблица 2.1

Вычислительнаясистема

BlueGene/LEServer BlueGeneRed Storm

BGW EServerBlue Gene/L

ASCI PurpleeServer pSeriesp575MareNostrumBladeCenterJS21 Cluster

Произ-води-тель

IBM

CrayInc.

IBM

IBM

IBM

Заказчик

DOE/NNSA/LLNL

NNSA/SandiaNational Laboratories

IBM Thomas J.Watson Research

CenterDOE/NNSA/LLNL

BarcelonaSupercomputing

Center

Числопроцес-соров

131072

26 544

40 960

12 208

10 240

Тип процессора

Power PC 440

Opteron2,4 GHz dual

corePower PC 440

PSeries 575

PPC 970,2,3 GHz

Максималь-ная произво-дительность

(TFLOPS)280,60

101,4

91,29

75,76

62,63

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

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

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

Сервер определяет работоспособностьвсей сети, сохранность баз данных и другойинформации, поэтому серверы имеют сис-тему хранения данных, отличающуюся боль-шой емкостью и высокой надежностью,возможность замены неисправных блоковРис 2.6. Мэйнфрейм IBM zSeries 990

2003 г. при непрерывной работе («горячая» замена)

77

2. /. Общие сведения об ЭВМ

Рис. 2.9. Персональная рабочая станция

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

Персональные рабочие станции — графические рабочие станции, выполнен-ные на вычислительной платформе, используемой в персональных ЭВМ, как пра-вило, это платформа WINTEL. Вычислительная платформа — совокупность цент-рального процессора (в данном случае — микропроцессор фирмы Intel) и ОС (вэтом случае — вариант ОС Windows фирмы Microsoft). Обычно в качестве персо-нальных рабочих станций используются высокопроизводительные персональныеЭВМ, укомплектованные дополнительными периферийными устройствами в за-висимости от назначения станции (рис. 2.9).

Персональные компьютеры (ПК) — компьютеры, предназначенные для ин-дивидуального использования одним пользователем автономно или в сети со-вместно с другими компьютерами. Персональные компьютеры бывают настоль-ные, переносные и карманные. С точки зрения аппаратной и программной со-вместимости большинство современных ПК совместимы с IBM PC.

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

Как правило, конструктивно настольные компьютеры и рабочие станции состо-ят из центральной части — системного блока — монитора, клавиатуры и мыши,подключенных к системному блоку. Конструктивное оформление системного блокаотличается большим разнообразием — от классического горизонтального или вер-тикального до самых экзотических решений дизайнеров (рис. 2.10). В некоторыхмоделях ПК монитор и системный блок совмещены.

79

2. Технические средства компьютерной графики

<N»

а б

Рис. 2.10. Настольный компьютер с вертикальным (а) и горизонтальным (б)системным блоком

Переносные (мобильные) персональные компьютеры широко используются на-равне с настольными компьютерами. Современные переносные компьютеры частоназывают ноутбуками (от англ. notebook), или блокнотными компьютерами. Ноут-бук функционально аналогичен настольному ПК и часто не уступает ему по техни-ческим параметрам. В ноутбуках используется такое же ПО и ОС, что и в настоль-ных ПК. Основная особенность ноутбука — возможность автономной работы с пи-танием от встроенного аккумулятора. Это позволяет использовать ноутбук в раз-личных условиях при отсутствии питающей сети. Конструктивно ноутбук содержитжидкокристаллический дисплей, клавиатуру, совмещенную с системным блоком,жесткий диск и оптический дисковод (CD-ROM, CD-RW или комбинированныйDVD+RW). Рядом с клавиатурой размещается манипулятор для управления курсо-ром. Размеры ноутбуков соответствуют портфелю или небольшой сумке.

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

• мультимедийные — отличаются достаточной производительностью ифункциональными возможностями, необходимыми для комфортного решениябольшинства задач мультимедиа: качественное воспроизведение фильмов сDVD с многоканальным звуком; воспроизведение музыки на Hi-Fi уровне; ре-дактирование и монтаж видеофайлов; 3D игры в высоком разрешении; большойэкран с широкими углами обзора (как правило, 17" по диагонали); полный наборкоммуникационных возможностей и интерфейсных портов; удобная полнораз-мерная клавиатура. Их стоимость обычно превышает 2500 долл.;

80

2. /. Общие сведения об ЭВМ

а 6

Рис. 2.11. Субноутбук (а) и планшетный ноутбук (б)

• субноутбуки — самые компактные и легкие модели (размеры менее 11",вес до 2 кг, диагональ дисплея до И") с достаточно высокой функционально-стью, предназначенные в первую очередь тем, кто часто путешествует. Субно-утбук может обеспечить неплохую комфортность в работе, однако высокой про-изводительности от подобных компьютеров ожидать не следует. Часто их воз-можности ограничены офисными приложениями, интернет-браузером, почто-вым агентом и прочими не особо требовательными к ресурсам приложениями(рис. 2.11, а). Их стоимость составляет около 2000 долл.;

• планшетные ПК (Tablet PC) — по оснащенности и габаритным размерамблизки к субноутбукам, но оснащены сенсорным экраном, позволяющим вы-полнять различные операции с помощью стилуса или пальца, включая ввод ру-кописного текста и его распознавание. Выпускаются два вида планшетных ПК:чистые планшетные ПК (без клавиатуры) и планшетные ноутбуки (имеющиеобычную клавиатуру и поворотно-откидной сенсорный экран (рис. 2.11, б)).Стоимость планшетных ПК составляет около 2000 долл.

Карманные (или наладонные) переносные компьютеры (КПК) помещаютсяна ладони или в кармане. КПК также называют наладонники (от англ. —palmtop). Кроме палмтопов существуют карманные компьютеры, которые назы-вают PDA (personal digital assistent). Общее название карманных компьютеров —handhold computers — компьютеры, которые держат в руках (рис. 2.12).

Все карманные компьютеры в зависимости от наличия клавиатуры делятсяна две большие группы: КПК с клавиатурой и КПК без клавиатуры. КПК с кла-виатурой внешне похожи на ноутбук, уменьшенный до карманных размеров.КПК без клавиатуры оснащены сенсорным экраном и информация вводится наэкран при помощи специальной указки — стилуса, при этом может использо-ваться экранная клавиатура или написание символов стилусом непосредственнона экране. Стоимость карманных ПК колеблется от 300 до 1000 долл.

В карманных компьютерах программы хранятся в микросхемах энергонеза-висимой памяти. В набор программ обычно входит ОС, текстовый и графиче-ский редакторы, система баз данных и электронные таблицы, программы для

81

2. Технические средства компьютерной графики

а б в

Рис. 2.12. Карманные компьютеры:

а — палмтоп; б — Pocket PC; в — PDA

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

Карманные компьютеры в зависимости от используемой ОС также делятсяна две группы — Palm OS и Windows Mobile. Причем в отличие от настольныхкомпьютеров и ноутбуков конструкция КПК сильно связана с типом ОС и заме-на типа ОС для КПК возможна только теоретически. ОС Palm OS разработанаспециально для КПК и не предъявляет особых требований к их ресурсам. ОСWindows Mobile разработана фирмой Microsoft и хорошо интегрирована с ОСMicrosoft для настольных компьютеров, что расширяет функциональные воз-можности КПК, однако при этом возрастают требования к ресурсам КПК.

Из всех перечисленных классов в России наибольшее распространение по-лучили персональные ЭВМ, персональные рабочие станции и ноутбуки. Причемуказанные классы ЭВМ базируются на процессорах семейства х86 фирмы Intel.Другие классы ЭВМ в России широкого применения не нашли. В связи с выше-сказанным в дальнейшем основное внимание будет уделяться аппаратным сред-ствам ЭВМ на платформе IBM PC с процессорами, совместимыми с архитекту-рой х86 фирмы Intel, относящимися к трем распространенным классам.

Каждая ВС обладает определенными функциональными возможностями об-работки ГИ. Все возможности ВС реализуются совместно программными и аппа-ратными средствами и должны органично сочетаться с возможностями пользова-теля ЭВМ. Разделение функций между аппаратными и программными средстваминаправлено на повышение эффективности ВС при решении различных задач.Степень разделения функций между аппаратными и программными средствамизависит от уровня развития микроэлектроники и вычислительной техники.

Программные средства дешевы, гибки и доступны, аппаратные средствасложнее в реализации и специализированы. Соотношение по стоимостным за-тратам между аппаратными и программными средствами постоянно изменяется

82

2. /. Общие сведения об ЭВМ

в сторону снижения стоимости аппаратной реализации функций. Поэтому однойиз тенденций развития ВС является решение все большего числа функций аппа-ратными средствами. Особенно ярко эта тенденция проявляется в области ви-зуализации трехмерных графических изображений.

2.1.3. Аппаратные средства ЭВМ

Традиционно аппаратные средства ЭВМ делят на две группы — централь-ные и периферийные устройства.

К центральным устройствам, непосредственно участвующим в обработкеданных, относятся центральный процессор, оперативная память и подсистемаввода-вывода.

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

Центральный процессор (ЦП) предназначен для преобразования информа-ции в соответствии с выполняемой программой, управления вычислительнымпроцессом и устройствами, работающими совместно с процессором.

Оперативная память (ОП) предназначена для хранения, приема и выдачиданных и программ. Функции ОП в современных компьютерах реализуютсясложной многоуровневой системой запоминающих устройств (ЗУ). Функцииосновного хранилища информации выполняет оперативное запоминающее уст-ройство (ОЗУ), имеющее большую емкость и высокое быстродействие. Однакобыстродействие ОЗУ не позволяет работать на тактовой частоте ЦП, поэтомудля согласования скорости работы ЦП и ОЗУ используется многоуровневая кэш-память. При этом верхний (самый быстродействующий) уровень кэш-памятиобычно работает на тактовой частоте ЦП и размещается непосредственно накристалле ЦП. Число уровней кэш-памяти определяется разницей в быстродей-ствии ЦП и ОЗУ и обычно равно двум.

Подсистема ввода-вывода предназначена для реализации обмена даннымимежду ОЗУ и различными ПУ без участия ЦП, согласования скорости работы ПУи ОЗУ, унификации протоколов обмена данными и обеспечения возможности из-менения конфигурации ВС путем подключения разнообразных ПУ. С каналамиподсистемы ввода-вывода, к которым подключаются непосредственно ПУ, связа-но понятие интерфейса — совокупности аппаратных средств сопряжения каналаи устройства управления (контроллера) ПУ, а также унифицированных сигналов ипротоколов обмена данными между устройствами.

Одновременная работа нескольких ПУ обеспечивается большой разницей вскорости работы ПУ и канала. Подсистема ввода-вывода может осуществлятьобмен данными с несколькими ПУ, распределяя между ними время использова-ния общих средств подсистемы в режиме мультиплексирования.

83

2. Технические средства компьютерной графики

ПУ, используемые в системах КГ, можно разделить на несколько групп:• внешние запоминающие устройства;• устройства отображения ГИ; •• устройства оперативного взаимодействия пользователя с ЭВМ в графиче-

ском режиме;• устройства документирования ГИ;• устройства ввода ГИ; - ,• устройства организации локальных вычислительных сетей.Построение и функционирование компьютеров опирается на два основопо-

лагающих принципа:• программное управление вычислительным процессом;• хранение программ и данных в общей памяти.При выполнении любой программы все устройства ЭВМ взаимодействуют

между собой. Схема, отражающая связи между устройствами, называется струк-турной схемой ЭВМ. Структурные схемы современных ЭВМ отличаются боль-шим разнообразием. Для персональных ЭВМ на базе процессоров х86 наиболеераспространена структурная схема, включающая микросхему ЦП, микросхемыпамяти и две микросхемы северного и южного мостов (так называемый чипсет),связывающие все устройства ЭВМ. Фактически чипсет в современных ЭВМ вы-полняет значительную часть функций подсистемы ввода-вывода, дополненныхфункциями блоков, отвечающих за объединение устройств ЭВМ в единую сис-тему. Подобная схема на базе чипсета i915 Express и процессора Pentium 4 фир-мы Intel представлена на рис. 2.13.

При выполнении программы процессор выбирает из ОП очередную командуи определяет, какие действия необходимо совершить при выполнении этой ко-манды. Затем выбирает из памяти числа, над которыми надо проделать действия,определяемые данной командой, выполняет их и одновременно выбирает из памя-ти следующую команду, отправляет полученный результат в память — и весьцикл повторяется сначала. Так, постоянно взаимодействуя, процессор и памятьвыполняют любую программу, обращаясь если необходимо к ПУ.

Процессоры. Процессоры можно классифицировать по разным признакам.По назначению различают процессоры центральные, специализированные, пе-редачи данных, коммуникационные и др. В зависимости от особенностей систе-мы команд процессора часто упоминаются следующие типы процессоров и ком-пьютеров: CISC — Complex Instruction Set Computer, RISC — Reduced InstructionSet Computer и VLIW — Very Long Instruction Word.

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

84

2. /. Общие сведения об ЭВМ

ПроцессорIntel Pentium 4

Встроенная графикаIntel GMA 900

Внешняя графикаPCIExpressxl6

ИА-\

Северный мост(G)MCH 925/915

АудиоподдержкаIntel High Definition Audio

8 портовHigh Speed USB 2.0

Интерфейс ввода-вывода4 PCI Expressxl

W

И - N

Оперативная память(DDR2)

Оперативная память(DDR2)

-\^>/"-N

Южный мост1СН6

Интерфейс ЛВСIntel Fast Internet 10/100

Intel Wireless Connect

Intel Matrix StorageTechnology

Интерфейс ВЗУ4 порта SATA

Интерфейс ввода-вывода6 PCI

Интерфейс ВЗУI канал Parallel ATA

Поддержка BIOS

Рис. 2.13. Структурная схема ЭВМ на базе чипсета i915 Express

длина кода команды и исполнение любой команды за один такт. Последняя осо-бенность требует конвееризации декодирования и исполнения команд. RISC-процессоры имеют существенно больший потенциал повышения производи-тельности процессора по сравнению с CISC-процессорами при незначительномусложнении программирования. Поэтому практически все современные процес-соры относятся к RISC-процессорам.

Процессор VLIW (очень длинное слово команды) по архитектуре относитсяк процессорам, у которых в слове «команды» упакованы коды нескольких про-стых взаимонезависимых операций. В этом случае после выборки командногослова содержащиеся в нем операции декодируются и исполняются независимо ипараллельно, что позволяет повысить производительность процессора. Элемен-ты VLIW-архитектуры используются в семействе 64-разрядных процессоровItanium фирмы Intel.

Центральный процессор дешифрирует и выполняет команды программы,взаимодействует с подсистемой ввода-вывода, инициируя и контролируя ее ра-боту, воспринимает и обрабатывает сигналы, поступающие от различных уст-ройств ЭВМ и ПУ (запросы прерывания). Функционирование ЦП — выполне-ние последовательности команд, определяемой исполняемой программой. Каж-дая команда — совокупность кода операции, которую необходимо выполнить, и

85

2. Технические средства компьютерной графики

Процессор Устройство управления

АЛУ с плавающейзапятой

АЛУ вычисленияисполнительных адресов

Регистры арифметикис плавающей запятой

АЛУ целочисленнойарифметики

Управлениекэш-памятью

УУ дешифрациикоманд

Блок преобразованиявиртуальных адресов

в физические

X

Регистры буфера

Счетчик адресакоманды

Управлениекэш-памятью

Шина процессора(GTL или Hiper Transport)

(FSB-Front Side Bus)

Встроенная графика;устройство вывода ГИ;

PCI Expressxl6

Северный мост(МСН)

Основная илиоперативная память

(DDR2)

Межмостовая шина(DMI или Hyper Transport)

Интерфейсы ПУ;периферийные

устройства

Южный мост(ICH6)

Внешнеезапоминающее

устройство

Рис. 2.14. Упрощенная структурная схема ЭВМ

кода, определяющего операнды, участвующие в операции. Все процессы в ЦПсинхронизированы с сигналами определенной частоты {тактовой частоты),вырабатываемыми специальным генератором. Величина, равная периоду такто-вой частоты, называется машинным тактом.

Упрощенная структурная схема ЦП, его связей с чипсетом и другими уст-ройствами ЭВМ приведена на рис. 2.14. Здесь изображены наиболее важныеузлы центральной части компьютера, такие как ОП, кэш-память, регистры, уст-ройство управления, арифметическое устройство, устройство адресной арифме-тики, блок преобразования адресов и др.

Шина процессора (FSB — Front Side Bus) представляет собой сложное уст-ройство, к которому через микросхемы северного и южного моста чипсета могутподключаться: устройства процессора, ОП, ВЗУ и устройства ввода-вывода, уст-ройства взаимодействия с компьютерной сетью. Шина обеспечивает взаимный

86

2. /. Общие сведения об ЭВМ

обмен информацией между устройствами, подключенными к ней. Существуетнесколько типов шин (GTL, Hyper Transport и др.), различающихся быстродейст-вием, логикой работы, числом и правилами подключения устройств к ней. Быст-родействие шины процессора в основном определяется частотой ее работы (непутать с тактовой частотой ядра процессора), которая значительно ниже такто-вой частоты процессора. В состав шины входят регистры, хранящие принимае-мую и передаваемую информацию, и собственная система управления.

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

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

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

Кроме того, в процессоре есть сеть передачи управляющих сигналов, вклю-чающих в работу блоки и схемы процессора.

Устройство управления (УУ) — основной узел процессора, который задаетритм работы всех его устройств и организует их согласованное взаимодействие.В состав устройства управления входят:

• УУ, вырабатывающее управляющие сигналы для чтения очередной коман-ды из ОП, формирования адресов операндов, чтения операндов в арифметико-логическое устройство (АЛУ), выполнения операции в АЛУ, записи результата вОЗУ или локальную память (ЛП), инициирования процедур ввода-вывода и т. п.;

• управляющие регистры, предназначенные для временного храненияуправляющей информации;

• система приоритетных прерываний, обеспечивающая реакцию ЭВМ на за-просы прерываний от различных источников внутри и вне ЦП;

• система контроля и диагностики для обнаружения сбоев и отказов в аппа-ратных средствах ЦП и устранения последствий сбоев.

Система приоритетных прерываний необходима для реализации мультипро-граммного режима работы. Прерывание программы — способность ЦП при воз-никновении некоторых ситуаций, требующих немедленной реакции ЭВМ, пре-кращать выполнение текущей программы и передавать управление программе,реализующей реакцию ЭВМ на возникшую ситуацию. Устройства, требующие

87

2. Технические средства компьютерной графики

вмешательства ЭВМ, называются источниками прерывания, а выдаваемые имисигналы, вызывающие прерывание программы, — запросами прерывания. При-чинами прерывания могут быть сбои и отказы в работе аппаратных средств, за-просы на обмен данными от ПУ, программные ошибки и др. При обработке за-проса прерывания процессор прерывает ход вычислительного процесса, форми-рует код прерывания, слово состояния прерванной программы и обеспечиваетпереход к программе, обрабатывающей данное прерывание. Для управленияпоследовательностью обработки запросов прерываний используется группиро-вание источников запросов и присвоение каждой группе определенного приори-тета. Обработка одновременно возникающих запросов прерывания осуществля-ется в соответствии с их приоритетами. В ЦП обычно имеется возможность про-граммного управления приоритетами некоторых групп прерываний.

К управляющим регистрам относится счетчик адреса команды, в которомавтоматически формируется адрес команды, подлежащей выборке из ОП. Этотрегистр назван счетчиком в связи с тем, что он в основном работает как счетчик,значение которого автоматически наращивается на некоторую константу для по-лучения следующего по порядку адреса команды, подлежащей считыванию изпамяти. Этот процесс изменения содержимого счетчика команд прерывают ко-манды переходов, которые загружают в счетчик новое содержимое — адрес пе-рехода, извлекаемый из команды перехода или вычисленный другим способом.Полученный тем или иным способом адрес команды передается в ОП для выбор-ки следующей команды, подлежащей выполнению.

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

К устройству управления относится дешифратор команд — логически слож-ное устройство, которое на основе анализа поступившего из ОП кода командыформирует серию сигналов и данных, управляющих работой соответствующихустройств процессора. В процессе работы дешифратора команд из кода командывыделяется поле кода операции. В зависимости от значения выделенного кодапроизводится дальнейший анализ. Выделяется также адресное поле, в которомуказываются правила формирования адресов операндов или адреса перехода ивыдается соответствующая команда в устройство адресной арифметики на фор-мирование необходимого адреса. Чаще всего устройство адресной арифметикипроизводит модификацию кода адреса, записанного в адресном поле команды,путем суммирования его с содержимым одного из регистров процессора, назы-ваемого адресным регистром или регистром-модификатором. Сформированныйисполнительный виртуальный адрес передается в блок преобразования вирту-альных адресов — в физические и затем в ОП или другие устройства процессора.

88

2. /. Общие сведения об ЭВМ

Команды, поступившие в ЦП из ОП, проходят достаточно сложный и дли-тельный путь до момента реального исполнения тех действий, которые указаныв соответствующей команде. Сначала команда в исходном машинном виде из-влекается из ОП по адресу, сформированному в счетчике команд. Как правило,она извлекается из быстрой кэш-памяти ЦП, в которую попадает из более мед-ленной ОП. Затем выбранная команда поступает в специальные регистры буферакоманд. В этих регистрах последовательно накапливаются команды, подлежа-щие исполнению. Здесь команда подвергается предварительному преобразова-нию к виду, удобному для дальнейшей ее расшифровки, после чего попадает вдешифратор команд, в котором разделяется на поля кода операции и адресныеполя.

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

С устройством управления тесно связан генератор тактовой частоты,выдающий тактирующие импульсы. Многочисленные электронные схемы уст-ройств процессора срабатывают только в дискретные моменты времени, свя-занные с появлением на входах этих схем тактирующих импульсов. Времяработы отдельных устройств процессора измеряют необходимым для этогочислом тактов.

Тактовая частота — важнейший технический параметр, определяющийбыстродействие процессора. Разные операции для выполнения требуют различ-ного количества тактов. Самые короткие, например логические операции, тре-буют для своего выполнения всего один такт, некоторые, например деление, мо-гут потребовать более десяти тактов. Разработчики электронных схем, выпол-няющих те или иные операции, стремятся к тому, чтобы сократить число тактов,необходимых для выполнения операций.

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

Первые ЭВМ, появившиеся в мире, работали на частоте несколько килогерц,затем частота повысилась до сотен мегагерц. Современные процессоры работа-ют на частотах, достигающих нескольких гигагерц.

89

2. Технические средства компьютерной графики

Блок преобразования адресов выполняет работу по преобразованию логиче-ского (виртуального) адреса в адрес физической памяти. Компиляторы преобра-зуют исходную программу в последовательность команд машины (машинныйкод). В процессе этого компилятор вычисляет адреса памяти, по которым предпо-лагается разместить переменные, константы и другие объекты программ. Эти ад-реса предполагаемого размещения называются логическими (иногда программ-ными). Оттранслированная программа без изменений размещается ОС в свобод-ном месте физической памяти машины, что, естественно, требует согласованиялогических адресов с физическими адресами ее реального размещения в процессевыполнения программы.

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

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

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

Кэш-память — буферное, скрытое от пользователя ЗУ ассоциативного типамежду ОП и процессором, позволяющее минимизировать время обращения косновной ОП и тем самым сократить общее время решения задач. Кэш-памятьимеет более высокое быстродействие, но значительно меньше по объему посравнению с ОП. Кэш-память имеет ряд особенностей:

• прозрачна для программиста, т. е. отсутствуют команды обращения иуправления кэш-памятью;

• управление ею полностью реализовано на аппаратном уровне.В кэш-памяти хранятся наиболее часто используемые команды и данные,

автоматически выбираемые из ОП на основе анализа потока обращений к ней.При обращении процессора к ОП он фактически обращается к кэш-памяти, ипри наличии необходимой команды или данных они выбираются гораздо быст-рее из кэш-памяти, чем из ОП. При отсутствии требуемых данных или коман-ды в кэш-памяти происходит сбой кэш-памяти (cache missing) и необходимо

90

2. /. Общие сведения об ЭВМ

обращение к ОП и перепись требуемых данных в кэш-память. Для нормальногофункционирования кэш-памяти при каждом сбое необходимо решить две про-блемы:

• замещение — при замене данных в кэш-памяти необходимо выбрать дан-ные, удаляемые для освобождения места под новые данные;

• когерентность — соответствие данных в ОП и их копии в кэш-памяти.В большинстве современных процессоров для снижения риска сбоя имеется

два-три уровня кэш-памяти, обозначаемых латинской буквой L и отличающихсяемкостью и скоростью обмена. При этом, как правило, кэш-память первогоуровня (L1) имеет емкость до нескольких десятков килобайт, работает на частотеядра процессора и разделена на две независимых части: кэш-память команд икэш-память данных. Кэш-память второго уровня (L2) обычно имеет емкость донескольких мегабайт и также работает на частоте ядра процессора. Для обеспе-чения возможности работать на частоте ядра процессора оба уровня кэш-памятиразмещаются непосредственно на кристалле микросхемы процессора.

Блок целочисленной арифметики, или арифметики с фиксированной точ-кой, или целочисленное АЛУ, выполняет арифметические и логические опера-ции над целыми числами в двоичном представлении: сложение, вычитание,умножение, деление с остатком, логические операции, сдвиги. В процессе функ-ционирования для повышения быстродействия АЛУ часто использует локаль-ную память (ЛП), в которой могут храниться исходные операнды, промежуточ-ные результаты, адресные константы и другие данные. Локальная память — са-мая быстрая в структуре ЭВМ и обычно реализуется в виде набора регистровобщего назначения. Под разрядностью АЛУ понимают разрядность чисел, под-лежащих обработке. Разрядности п для целых положительных чисел соответст-вует диапазон представимых чисел от 0 до 2"-1.

Блок арифметики с плавающей точкой (АЛУ с плавающей точкой) вы-полняет арифметические операции с вещественными числами, представленнымипорядком и мантиссой. Диапазон вещественных чисел, представимых в компью-тере, как правило, значительно больше количества представимых в компьютерецелых чисел. Это связано с формой представления чисел и тем, что для пред-ставления чисел с плавающей запятой выделяется, как правило, большее числодвоичных разрядов, к разрядам для представления мантиссы добавляются разря-ды для представления порядка.

Необходимо отличать число и диапазон представимых чисел. Если суммар-ное число двоичных разрядов в слове, выделенных для представления чисел,равно п, то число различных чисел, которые могут быть представлены этим сло-вом, равно 2". Больший интерес с точки зрения точности вычислений представ-ляет отображение представимых в машине чисел на числовую ось.

Пусть числа представляются как 2я • т, где порядок р занимает три разряда,включая разряд знака, и изменяется от +3 до -3, а мантисса (т) занимает четыреразряда, включая разряд знака, и изменяется от +7 до -7. В такой машине можнопредставить 2т+р чисел, в нашем примере — 128, которые на числовой оси будут

91

2. Технические средства компьютерной графики

расположены неравномерно. Нормализованным числом в машинном представ-лении называют число, абсолютная величина мантиссы которого находится вдиапазоне от 1 до 0,5. Существует понятие цены младшего разряда мантиссы,равной 2~'"+|. Знание этой величины важно для оценки точности вычислений.

Регистры общего назначения (РОН) в основном служат для промежуточ-ного хранения операндов и результатов вычислений и непосредственно связаныс целочисленным АЛУ. Их также можно использовать для вычисления адреснойинформации. Если операнды находятся на быстрых РОН, то процесс вычисле-ний ускоряется, так как нет необходимости обращаться в основную сравнитель-но медленную ОП.

Регистры арифметики с плавающей запятой служат для промежуточногохранения операндов и результатов вычислений над вещественными числами,представленными с плавающей точкой. Эти регистры обычно по разрядности в2-3 раза длиннее быстрых РОН, что необходимо для достижения высокой точ-ности выполнения арифметических операций над вещественными числами.

Наборы мультимедийных инструкций. В 1996 г. стало ясно, что ПК «со-зрели» для мультимедиа. Фирмой Intel была выдвинута концепцию NSP (NativeSignal Processing — собственная обработка сигналов), согласно которой мощныйЦП должен сам выполнять обработку сигналов (аудио, ЗЭ-графики, видео,связь), которые традиционно выполняли DSP (digital signal processor) — цифро-вые сигнальные процессоры. Для этого нужно было дополнить стандартный на-бор 1386-команд мультимедийным расширением. В настоящее время вместо абб-ревиатуры NSP предпочитают HSP (Host Signal Processing, где Host означает ЦПи противопоставляется сопроцессору DSP).

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

Мультимедийные наборы внедряются достаточно трудно и медленно, таккак необходимо переписать все приложения в области мультимедиа с учетомновых команд процессора. В хронологическом плане наборы мультимедийныхкоманд прошли достаточно длительный путь развития. Первым был наборММХ. ММХ (multimedia extension) — мультимедийное расширение набора ко-манд. Команды ММХ работают с 64-битными операндами целого типа (обыч-ные операнды 32-разрядные). Главной является команда, реализующая скаляр-ное произведение (перемножить два числа и добавить произведение к сумме).Набор был внедрен компанией Intel в 1997 г. Уже первый процессор PentiumММХ-166 справлялся с MIDI-софт синтезом по таблице волн. Ускорение придекодировании MPEG-клипов возрастает на 40 %, при микшировании аудиосиг-

92

2. /. Общие сведения об ЭВМ

налов — на 25 %, при выводе ЗО-графики — на 30 %. Графический пакет AdobePhotoshop начинает работать в 3 раза быстрее для большинства операций. Ис-пользование набора значительно ускоряет также сжатие аудиосигнала.

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

SSE и 3DNow! Следующим шагом стало создание новых расширений измультимедийных команд, работающих уже с числами с плавающей точкой. Та-кие команды примерно в 2 раза повышают производительность процессора всоответствующих приложениях ЗО-графики, программном декодированииDVD-видео, распознавании речи и др. Они с успехом заменяют обычные коман-ды процессора.

Однако конкурентная борьба внесла свой вклад в развитие мультимедийныхнаборов команд и в результате два основных производителя процессоров разра-ботали функционально равноценные, но различные, т. е. несовместимые наборы.Первым появился в середине 1998 г. набор AMD 3DNow! (в процессорах К6-2).Набор команд оперирует все теми же 64-разрядными ММХ-регистрами. Полгодаспустя, в начале 1999 г., появился набор Intel SSE (Streaming SIMD Extensions —потоковое SIMD-расширение) в процессорах Pentium III. Команды оперируютновыми, специально для этого выделенными 128-разрядными регистрами ХММ.В каждый такой регистр можно записать по четыре числа с плавающей точкойодинарной точности (32 разряда). Осенью 1999 г. набор 3DNow! пополнился иполучил название Enhanced 3DNow!. Он был реализован в процессоре Athlon.В настоящее время под 3DNow! часто понимают именно Enhanced 3DNow! (ино-гда встречается обозначение 3DNow!+).

Оба набора функциональны, эффективны и были поддержаны в MicrosoftDirectX (это основные мультимедийные библиотеки), однако их различие созда-вало проблемы разработчикам приложений, вынужденным поддерживать обанабора.

Поскольку выделенные регистры SSE более эффективны, чем регистрыММХ, то компания AMD лицензировала SSE и в середине 2001 г. встроила его всвои процессоры Athlon XP, а потом и в Duron (с ядром Morgan). РеализацияSSE от AMD (по утверждению AMD более эффективная, чем у Intel) получиланазвание 3DNow! Professional. Таким образом, сейчас набор SSE стал стандар-том де-факто.

SSE2 — обширный набор инструкций от Intel, который также работает с128-разрядными регистрами ХММ. Составными операндами могут быть какчисла с плавающей точкой, так и целые. Те команды, которые раньше работалис вдвое меньшими регистрами ММХ (64-разрядными), теперь работают и с ре-

93

2. Технические средства компьютерной графики

гистрами ХММ. Еще одна особенность — в 128-разрядный регистр ХММ можноупаковать уже не только четыре 32-разрядных числа с плавающей точкой (оди-нарной точности), как в SSE, но и два 64-разрядных числа с плавающей точкой(двойной точности). Можно сказать, что SSE2 заменяет ММХ и SSE. Более того,теперь у приложений ЗО-графики и видео, переписанных с использованиемSSE2, отпадает необходимость в блоке плавающей арифметики. Кроме того, внабор были включены команды по обмену между регистрами и кэш-памятью.Набор SSE2 был впервые реализован в процессоре Pentium 4 в 2000 г.

SSE3 — набор команд от Intel, дополненный 13 новыми командами, разра-ботан в начале 2004 г. После успешного создания набора команд SSE2 с Pentium 4,учитывая пожелания больших компаний, разрабатывающих программное обес-печение, были созданы команды SSE3.

SSE4 — очередная версия набора команд для мультимедиа от Intel должнапоявиться во второй половине 2007 г. вместе с Penrin, обновленной архитекту-рой Core для 45-нм процессоров Pentium. В этот набор предполагается добавить50 новых команд для ускорения игровых приложений, работы с мультимедиа иЗО-моделирования.

Устройства памяти. Производительность компьютера сильно зависит оторганизации и параметров подсистемы памяти, реализуемой совокупностью ЗУ.

К основным параметрам ЗУ относятся: информационная емкость, быстро-действие и удельная стоимость хранения информации.

Емкость ЗУ — максимальное количество данных (выраженное в словах,байтах, битах и т. п.), которое может храниться в ЗУ.

Быстродействие ЗУ характеризует временные соотношения процессов запи-си и чтения информации. Для оценки быстродействия используют различные па-раметры, из которых наиболее популярны время доступа, время выборки, (макси-мальная) тактовая частота и (максимальная) пропускная способность. Время дос-тупа или время выборки — время от начала операции обращения к ЗУ до моментавозможности доступа к данным или появления данных на выходных шинах ЗУ.Тактовая частота — максимально возможная частота обращения к ЗУ при гаран-тировании работоспособности. Пропускная способность равна произведению так-товой частоты на число байтов данных, выбираемых за один такт.

Удельная стоимость хранения информации — стоимость хранения единицыинформации, учитывающая капитальные и эксплуатационные затраты.

По функциям, выполняемым в общей структуре памяти ЭВМ, выделяют триуровня памяти (соответственно три типа ЗУ): сверхоперативная память (СОЗУ);оперативная память (ОЗУ); внешняя память (ВЗУ). Такое деление памяти ЭВМ нанесколько иерархических уровней объясняется невозможностью удовлетворенияряда противоречивых требований в одноуровневом ЗУ: большая емкость памяти,высокое быстродействие, малые удельная стоимость хранения информации и раз-меры. Наибольшую емкость имеют ВЗУ, а самым высоким быстродействием ха-рактеризуются СОЗУ. В качестве СОЗУ используется кэш-память, где хранятсякопии наиболее часто используемых команд и данных из основного ОЗУ. Форми-

94

2.1. Общие сведения об ЭВМ

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

Объем памяти современных ЭВМ в зависимости от их класса достигает де-сятков гигабайт при времени выборки до нескольких наносекунд. Емкостьвнешней памяти, иногда называемая массовой, составляет десятки терабайт привремени выборки до нескольких миллисекунд.

По принципу действия запоминающих элементов (ЗЭ) ЗУ различают полу-проводниковые, магнитные и оптические с неподвижными и подвижными ЗЭ идр. Для СОЗУ и ОЗУ в настоящее время используются полупроводниковые ЗУ, вкачестве ВЗУ — оптические и магнитные ЗУ с подвижными ЗЭ.

По составу операций обращения к ЗУ различают:• ЗУ, в которых возможны запись и чтение информации — RAM (Random

Access Memory — память с произвольной выборкой), так как обращение к этойпамяти возможно в любой момент времени к произвольно выбранной ячейке;

• постоянные, в них возможно только чтение информации — ROM (ReadOnly Memory). Постоянные ЗУ делят на программируемые (PROM —Programmable Read Only Memory), в которых возможна только однократная за-пись информации, и перепрограммируемые (EPROM — Erasable ProgrammableRead Only Memory), в которых возможна многократная перезапись информации,хотя и с очень малой скоростью.

По организации доступа к информации различают:• ЗУ с произвольным (прямым или циклическим) доступом — СОЗУ, ОЗУ и

накопители на магнитных дисках (НМД). В них время поиска информации независит или слабо зависит от расположения информации;

• ЗУ с последовательным доступом. Время поиска информации в них опре-деляется расположением информации на носителе, как, например, в накопителяхна магнитной ленте (НМЛ). При обращении к ЗУ одновременно выдается опре-деленное количество двоичных разрядов, называемое шириной выборки.

По способу размещения и поиска информации ЗУ бывают:• адресные — где каждой единице информации (байт или слово), хранимой

в ЗУ, соответствует некоторый код, однозначно определяющий ее местоположе-ние в памяти;

• безадресные — где поиск информации осуществляется не по адресу, а подругим признакам.

Среди безадресных наиболее распространены ЗУ двух типов:1) стек (стековая память) — информация записывается и считывается через

одну и ту же ячейку одномерной области памяти (вершину стека). По мере запи-си или считывания слова содержимое стека сдвигается. Считывание информа-

95

2. Технические средства компьютерной графики

ции подчиняется следующему правилу: первым читается последнее записанноеслово. Это позволяет использовать стек для запоминания состояния процессорапри обработке прерываний;

2) ассоциативная память — поиск информации осуществляется одновре-менно во всех ячейках памяти по ее содержимому (ассоциативному признаку).Это позволяет в некоторых случаях существенно ускорить поиск и обработкуданных.

В зависимости от организации обращений к ЗУ в современных ЭВМ приме-няются:

• одновходовые моноблочные ЗУ, адресация в которых идет последователь-но, начиная с нулевого адреса (в любой момент времени обслуживается толькоодно обращение к ОЗУ);

• одновходовые многоблочные ЗУ (секционные, с расслоением), в которых па-мять разбивается на блоки, способные работать одновременно и независимо друг отдруга (допускается совмещение обращений к разным блокам ОЗУ во времени);

• многовходовые многоблочные ЗУ, в которых допускается несколько од-новременных обращений к одному блоку.

Основная оперативная память. Оперативную память обычно относят кцентральным устройствам ЭВМ как неотъемлемую часть любой вычислитель-ной машины.

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

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

Вычислительную машину можно определить как устройство, изменяющеесостояние памяти, переводящее ее из одного состояния в другое. В этом смыслепамять можно считать главным объектом работы вычислительной машины.

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

96

2.1. Общие сведения об ЭВМ

Объем памяти в современных машинах измеряется числом байтов, размещен-ных в ней. Иногда объем памяти измеряется в словах, содержащих несколько бай-тов. В настоящее время принято называть 2-байтовую последовательность полусло-вом, 4-байтовую последовательность — словом, 8-байтовую последовательность —двойным словом.

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

Более сложной является проблема динамического распределения памяти дляповышения эффективности использования ОП при размещении в ней несколькихпрограмм. Цель различных способов динамического распределения памяти —уменьшение фрагментации (появление несвязанных неиспользуемых участков)ОП и предоставления всем активным программам всего прямоадресуемого про-странства. Наиболее эффективно динамическое распределение памяти осущест-вляется в системах виртуальной памяти со страничной организацией. Виртуаль-ная память — способ организации памяти, при котором каждой активной про-грамме предоставляется все прямоадресуемое пространство памяти независимоот размеров имеющейся физической памяти.

Все поле памяти, а также программы и данные при страничной организацииразбиваются на части фиксированного размера — страницы. Программы и данныеразбиваются на математические страницы, а поле памяти — на физические страни-цы. Размер страницы в различных ЭВМ изменяется от 512 до 4096 байт. Преобразо-вание математического адреса в физический осуществляется непосредственно приобращении к памяти совместно аппаратными и программными средствами.

Требования к объему и быстродействию ОП и кэш-памяти растут практиче-ски непрерывно по мере развития аппаратных и программных средств. Сегоднядаже в персональных ЭВМ оперативная память имеет емкость от сотен мегабайтдо нескольких гигабайт.

ЗУ, используемые для реализации ОП и кэш-памяти в компьютере, относят-ся к типу памяти RAM (память с произвольной выборкой), поскольку обращениепроисходит в любой момент времени к произвольно выбранной ячейке. Памятьэтого класса подразделяется на два типа — память с динамической (DynamicRAM, DRAM) и статической (Static RAM, SRAM) выборкой. В первом случаезначение бита информации в ячейке определяется наличием или отсутствиемзаряда на микроконденсаторе (управляемом одним-двумя транзисторами).В статической памяти в качестве ЗЭ используются триггеры (имеющие два ус-тойчивых состояния), реализованные на четырех-шести транзисторах. Однако всвязи с особенностями функционирования быстродействие DRAM ниже, а ем-кость больше. Вследствие большего числа транзисторов на ячейку и соответст-венно меньшей емкости при одинаковой площади кристалла память SRAM cy-

97

2. Технические средства компьютерной графики

щественно дороже. Обычно модули DRAM применяют в ОП и видеопамяти, амодули SRAM — в кэш-памяти.

Память DRAM отличается наибольшим разнообразием в технической реа-лизации. Среди основных вариантов можно отметить следующие:

• синхронная динамическая память DRAM (Synchronous DRAM — SDRAM);• модули памяти фирмы Rambus (Rambus DRAM — RDRAM);• память, способная передавать два слова за такт, считывая сигнал по фрон-

ту и спаду, получила название DDR (Double Data Rate — с удвоением потокаданных);

• память DDR2, способная передавать четыре слова за такт. DDR3 способнапередавать восемь слов за такт.

Синхронная динамическая память (SDRAM). Согласно спецификацииSDRAM, все команды и обмен данными по шине памяти проходят синхронно стактовыми импульсами шины процессора. Поэтому все циклы внутри операцииимеют одинаковую продолжительность. Помимо этого стандарт синхронной па-мяти определяет параметры работы с банками памяти и режимы пакетной пере-дачи данных. Дополнительно введен так называемый регистр режима, выстав-ляемый при подаче питания на модуль памяти. В ходе работы с его помощьюмогут меняться параметры пакетного режима (последовательный или с чередо-ванием), размеры пакетов (от одноразрядного до полностраничного) и величиназадержки CAS (измеряемая в тактах). При этом величина задержки CAS опреде-ляется как время, необходимое для стробирования адресной строки и активациибанка памяти.

Ячейки в динамической памяти образуют так называемую матрицу, состоя-щую из строк и столбцов. При считывании данных содержимое одной строки(строка считается страницей — page) целиком переносится в буфер (на элемен-тах статической памяти). После этого в строке считывается значение (0 или 1)нужной ячейки и содержимое буфера вновь записывается в прежнюю строкудинамической памяти (операция перезарядки — precharge). Такие переносыданных осуществляются изменением состояния конденсаторов ячеек, т. е. про-исходит процесс заряда (или разряда). Для исключения потери данных периоди-чески проводятся циклы регенерации с определенной частотой (refresh rate), ко-торые обычно инициируются специализированными микросхемами. В совре-менных модулях используют циклы регенерации, именуемые 1К, 2К или 4К, чтоозначает число строк (в тысячах), обновляемых за один такт.

Ранее практически повсеместно в модулях памяти применялся контрольчетности с целью проверки достоверности информации. Для этого при записибайта вычисляется сумма по модулю 2 всех информационных разрядов и ре-зультат записывается как дополнительный контрольный разряд. При чтениибайта снова вычисляется контрольный разряд и сравнивается с полученным ранее.

Обнаружение и исправление ошибок (ЕСС — Error Checking and Correction) —специальный алгоритм, который заменил контроль четности в современных мо-

98

2. /. Общие сведения об ЭВМ

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

Для адресации ячеек памяти используют особенности матричной структуры.Полный адрес ячейки состоит из адресов строки и столбца. Для считывания (за-писи) информации на микросхему сначала подается сигнал RAS (Row AdressStrobe), импульс строба строк, а затем (одновременно или с небольшой задерж-кой) — код адреса строки. После этого через нормируемое время задержки дол-жен быть подан код адреса столбца, перед которым проходит сигнал CAS(Column Adress Strobe) — импульс строба столбцов. Под временем выборки мик-росхемы подразумевают промежуток между сигналами RAS. Следующее обраще-ние к памяти возможно только через некоторое время, необходимое для восста-новления внутренних цепей. Этот промежуток называют временем перезарядки,причем оно составляет почти 90 % общего времени выборки. Данные из ячеек че-рез усилители поступают в регистр микросхемы, откуда они становятся доступ-ными после открытия линии DOUT (Data OUT). При операциях записи данныепоступают по линии DIN (Data IN), а цикл выполняется в обратном порядке.

Любое системное устройство, обладающее правом прямого доступа к па-мяти (по одному из каналов DMA — Direct Memory Acces), при необходимостипосылает запрос, содержащий адрес и размер блока данных, а также управ-ляющие сигналы. Поскольку доступ к памяти по каналам DMA одновременномогут иметь несколько устройств (например, процессор, видеокарта с интер-фейсом AGP, контроллер шины PCI, жесткий диск), образуется очередь запро-сов, хотя каждому потребителю ресурсов памяти требуются собственные дан-ные, часто расположенные не только в разных микросхемах, но и в разныхбанках памяти. Вследствие этого возникают значительные задержки при чте-нии-записи данных.

Под банком памяти понимается:• группа модулей асинхронной памяти одинаковой емкости, которая должна

быть установлена одновременно, чтобы занять всю ширину шины данных (ина-че система не будет работать);

• микросхема (или группа) на модуле асинхронной (DRAM) или синхрон-ной (SDRAM) памяти, занимающих всю ширину шины данных.

В первом случае модули DRAM (SIMM) имеют половинную ширину шиныданных и их необходимо устанавливать попарно. Во втором случае на одноммодуле SDRAM (DIMM) монтируется несколько комплектов микросхем, каж-дый из которых имеет полную ширину шины данных. На модуле образуется два(обычно для SIMM), четыре (обычно для DIMM) или более банков, доступ к ко-торым происходит независимо. В связи с тем что ширина шины данных в памя-ти типа RDRAM существенно меньше (например, в модулях РС600 и РС800 —16 бит), микросхема емкостью 128 Мбит разбита на 32 банка памяти. Таким об-разом, двухканальный вариант RDRAM имеет 64 банка памяти.

99

2. Технические средства компьютерной графики

В синхронной памяти (SDRAM) для запуска сигналов стробирования ис-пользуется внешний импульс от шины памяти, поступающий с той же частотой,на которой она работает. Поэтому вместо указания времени стробирования внаносекундах (типовые значения — 12, 10, 8, 7 и 6 не) для модулей SDRAM ука-зывают максимально допустимую рабочую частоту в мегагерцах, напримерPC 100 или PC 133. Для памяти DDR SDRAM принято указывать частоту считы-вания данных: например, при физической частоте 200 МГц память маркируетсякак DDR400. Такой же принцип реализован в маркировке памяти Rambus:РС800, РСЮббит. д.

Важным параметром скорости работы памяти является величина CL (CASLatency) — время задержки (измеряемое в тактах шины памяти), протекающееот подачи сигнала CAS до начала пересылки данных. Для памяти SDRAM типо-вые значения равны CL3 и CL2, для памяти DDR значения могут иметь дробныйхарактер, например CL2.5. Это объясняется тем, что в DDR-технологии одинтакт синхросигнала условно разбивается на два тика (tick), длительность кото-рых составляет половину цикла (полупериод). Следовательно, передача данныхможет начаться на половине такта.

Время пересылки данных обычно записывают в следующем виде: 6-2-2-2(измеряют в тактах микропроцессора). Это означает, что на первую пересылкуданных из произвольной ячейки памяти потребовалось 6 тактов шины, а на всепоследующие ячейки — по 2. Так, для памяти DDR2-8OO стандартом определе-ны три варианта задержек: 6-6-6; 5-5-5; 4-4-4.

Стандарты на память устанавливаются ассоциацией JEDEC, объединяющейбольшинство компаний, действующих в этой области. Конкретная специфика-ция устанавливает набор требований к модулям памяти для гарантированногообеспечения их работы в требуемых условиях. Жестко регламентирована длинапроводников в модуле памяти, длина пути тактового импульса и его временныепараметры, определена ширина дорожек и расстояния между ними, электриче-ские и другие параметры. Часто оговариваются прочие технологические требо-вания: обязательность применения согласующих сопротивлений (терминаторов);позолоченных контактов и т. д.

К началу 2006 г. для памяти DDR2 были приняты спецификации DDR2-400,DDR2-533, DDR2-667 и DDR2-800, где цифры обозначают частоту передачиданных, при которой гарантирована работоспособность. Для модулей памятиDDR и DDR2 принято обозначать спецификацию по частоте передачи данных(например, DDR2-400 или DDR-333) или по пропускной способности — РС3200,РС2700 (измеряется в Мбайт/с). Хотя компания Rambus сама устанавливает спе-цификации на свою память, она придерживается принципов обозначения, при-нятых для DDR (частота или пропускная способность).

Память типа DDR SDRAM обеспечивает максимальную (пиковую) полосупропускания только в случае передачи единых массивов данных. При работе сразрозненными данными производительность резко падает. Переход на болеежесткие технологические нормы позволяет увеличить частоту работы памяти до

100

2. /. Общие сведения об ЭВМ

200 МГц (DDR-400), что обеспечивает пиковую пропускную способность3200 Мбайт/с или для DDR2-800 — пропускную способность 6400 Мбайт/с придвухканальном варианте. Кроме того, в зависимости от используемого чипсетапамять DDR и DDR2 может работать как в одноканальном, так и двухканальномрежиме. Несмотря на повсеместный переход на память DDR2, память стандартаDDR по-прежнему успешно продолжает сосуществовать с DDR2.

Модули DDR и DDR2 выполнены в тех же размерах, что и DIMM, но имеют184 контакта, один ключ (вырез в нижней части платы) и рассчитаны на напря-жение питания 2,5 В. Таким образом, с существующими разъемами DIMM онине совместимы. Модули памяти типа DDR2 производятся в новом форм-факторев виде 240-контактных модулей DIMM, электрически не совместимых со слота-ми для модулей памяти типа DDR (по количеству выводов, расстоянию междувыводами и цоколевке модулей). Таким образом, стандарт DDR2 не предусмат-ривает обратной совместимости с модулем DDR.

Память типа DDR и DDR2 широко используют производители видеокарт. Засчет иной корпусировки микросхем и отбора кристаллов они ставят на видео-картах более скоростную память (с частотой синхронизации до 400 МГц!). Ви-деопамять принято классифицировать и маркировать по минимально допусти-мому времени выборки данных, измеряемому в наносекундах.

Технология Rambus DRAM. Технология Rambus DRAM предусматриваетсовершенно новый подход к построению архитектуры подсистемы памяти. Во-первых, разработан специальный интерфейс Rambus для подключения модулейпамяти к контроллеру. Во-вторых, модули памяти соединены с контроллеромспециальными каналами с шириной шины данных 18 (16+2) бит и шины управ-ления — 8 бит. В-третьих, разработаны новые модули памяти RIMM.

Каждый канал Rambus способен поддерживать до 32 банков и теоретическиможет работать на частоте до 800 МГц. Рабочая частота канала задается собст-венным генератором подсистемы памяти. К контроллеру можно подключитьнесколько каналов Rambus. Сам контроллер работает на частоте до 200 МГц,которая определяется уже частотой системной шины. Данные передаются пообоим фронтам сигнала, что удваивает скорость обмена. При подключении кконтроллеру двух каналов пропускная способность шины памяти дополнительноудваивается.

На практике реальная пропускная способность RDRAM существенно нижерасчетных значений. Тем не менее в сочетании с чипсетом Intel 850 память RDRAMпоказывает наилучшую эффективность по сравнению с другими типами памяти, втом числе DDR SDRAM. Для сложных задач, связанных с обработкой большихмассивов данных, память RDRAM вполне отвечает своему назначению.

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

101

2. Технические средства компьютерной графики

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

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

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

На первом этапе отказались от специальных канальных программ или спе-циальных модулей ОС и перешли к использованию системы BIOS (Basic InputOutput System) — базовой системы ввода-вывода, размещаемой на системнойплате. Так называют аппаратно встроенное в компьютер программное обеспече-ние, которое доступно без обращения к диску. В микросхеме BIOS содержитсяпрограммный код, необходимый для управления клавиатурой, видеокартой,дисками, портами и другими компонентами. BIOS использовалась уже в первыхперсональных ЭВМ.

Обычно BIOS размещалась в микросхеме ПЗУ (ROM, Read-Only Memory), рас-положенной на системной плате компьютера (этот узел часто называют ROMBIOS). Такая технология позволяет обеспечить постоянную доступность BIOS не-зависимо от работоспособности внешних по отношению к системной плате компо-нентов (например, загрузочных дисков). Поскольку доступ к RAM (ОП) осуществ-ляется значительно быстрее, чем к ROM, многие изготовители предусматриваютпри включении питания автоматическое копирование BIOS из ROM в ОП. Задейст-вованная при этом область ОП называется теневым ПЗУ (Shadow ROM).

В микросхемах BIOS используют различные типы памяти для хранения про-граммного кода PROM. Отличие PROM от ROM состоит в том, что в ROM дан-ные заносятся в процессе производства, а в PROM можно записывать данные спомощью устройств, называемых программаторами. EPROM — специальный

102

2. /. Общие сведения об ЭВМ

тип PROM, которая может очищаться с использованием ультрафиолетовых лу-чей и перезаписываться. Память типа EEPROM похожа на EPROM, но операциистирания-записи выполняются при помощи электрических сигналов.

Большинство современных системных плат комплектуется микросхемамиFlash BIOS, код в которых перезаписывается при помощи специальной про-граммы. Такой подход облегчает модернизацию BIOS при появлении новыхкомпонентов, которым нужно обеспечить поддержку (например, новейших ти-пов микросхем оперативной памяти). Современные типы BIOS, поддерживаю-щие технологию Plug-and-Play, называют PnP BIOS, при этом поддержка техно-логии РпР обеспечивается только микросхемами Flash ROM. Полная поддержкатехнологии Plug-and-Play со стороны ОС Windows возможна только в случаеприменения PnP BIOS.

На втором этапе была предложена организация подключения всех устройствкомпьютера к процессору по внешней шине процессора (FSB) через специаль-ный набор микросхем системной логики, установленный на системной (мате-ринской) плате и часто называемый Chip Set (чипсет). Он обеспечивает работупроцессора, системной шины, интерфейсов взаимодействия с ОП и другимикомпонентами компьютера. Очевидно, что главной проблемой на современномэтапе является необходимость поддержки напрямую множества несовместимыхинтерфейсов.

Начнем с того, что системная шина (соединяющая процессор и контроллерпамяти) и прочие интерфейсы являются асинхронными. Они не согласованы нипо характеру сигналов, ни по тактовой частоте, ни по пропускной способности.Для увязки данных и приведения их к удобной для обмена форме требуютсяоперации преобразования и кэширования, реализуемые в специальных блокахчипсета. Сколько необходимо таких стыковочных блоков? Как минимум, шестьтолько для основных интерфейсов. Если же добавить сюда мост ISA-PCI, сете-вой контроллер IEEE 1394, то число стыковочных блоков приблизится к десяти.

Структурная схема системной логики (на примере современного чипсетаIntel 945G для процессоров Pentium 4) показана на рис. 2.15.

Многие предшествующие системные наборы включали две базовые микро-схемы, которые в англоязычной компьютерной литературе принято называтьсоответственно North Bridge (северный мост) и South Bridge (южный мост). Се-верный мост обычно обеспечивал управление графической шиной AGP, шинойсистемной памяти, шиной PCI и взаимодействие с системной шиной процессораAGTL+. Южный мост управлял интерфейсами IDE, USB, ACPI, IEEE 1394,включал мост ISA-PCI, контроллеры клавиатуры, мыши, FDD. Северный мостподключался непосредственно к внешней шине процессора, а между собой мос-ты соединялись шиной РС1 или другим более быстрым интерфейсом. Сущест-вовали чипсеты, содержащие встроенные видео- и звуковые контроллеры (на-пример, Intel 810, nVidia nForce).

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

103

2. Технические средства компьютерной графики

ПоддержкаMedia Expanenion Card

ПроцессорIntel Pentium D

8,5 Гб/с

Встроенная графикаIntel 950 Graphics

Внешняя графикаPCI Express x!6

АудиоподдержкаIntel High Definition Audio

8 Гб/с

Северный мостGMCH 945G

Оперативнаяпамять (DDR2)

10,7 Гб/с

6 портовHigh Speed USB 2.0

Интерфейс ввода-вывода6 PCI Express xl

80 Мб/с

\ — /500 Мб/скаждый х 1

/ \

\ v

2 Гб/сDMI

Южный мостICH&R82801GR

Интерфейс ЛВСIntel Pro/1000 LAN

Intel ActivManagement Technology

Оперативнаяпамять (DDR2)

Intel Matrix StorageTechnology

Интерфейс ВЗУ4 порта SATA

133 Мб/с

Интерфейсввода-вывода

6 PCI

Поддержка BIOS

Рис. 2.15. Схема системной логики на основе чипсета Intel 945G

моделями устройств ЭВМ и содержат различные встроенные контроллеры ау-дио, видео и другие средства. В качестве примера можно привести характери-стики линейки чипсетов компании Intel i945 Express, предназначенной для ра-боты с двухъядерными процессорами Intel, структурная схема которой приве-дена на рис. 2.15.

Северный мост 945G:• поддержка процессоров Intel Celeron D, Pentium 4, Pentium 4 Extreme

Edition, Pentium D и Pentium Extreme Edition с частотой системной шины533/800/1066 МГц;

• двухканальный контроллер памяти DDR2-400/533/667 с поддержкой дочетырех модулей DIMM без ЕСС общим объемом до 4 ГБ;

• графический интерфейс РС1Ех16;• интегрированное графическое ядро GMA 950.

104

2.2. Графическая подсистема ЭВМ

Шина DMI (с пропускной способностью около 2 ГБ/с) соединяет северный июжный мосты.

Южный мост ICH7/R:• до четырех (у 1СН7)/6 (у ICH7R) портов PCIExl;• до шести слотов PCI;• до 2 устройств (1 канал) ATAL00;• до четырех портов Serial ATA на четыре устройства SATA300 (SATA II,

второе поколение стандарта), с поддержкой AHCI и функций вроде NCQ;• возможность организации RAID-массива уровней 0, 1, 0+1 (10) и пяти из

SATA-дисков;• до восьми устройств USB 2.0;• High Definition Audio (7.1) или АС'97-аудио (7.1) и МС'97-модем;• специальный интерфейс для подключения фирменного 100-мегабитного

сетевого контроллера Intel серии 82562;• обвязка для низкоскоростной и устаревшей периферии и пр.Классификация чипсетов возможна по различным характеристикам, однако

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

• устаревшие (их выпуск продолжается, но линейка продуктов для данногопроцессорного разъема не обновляется);

• актуальные (модификации, в принципе отвечающие текущим требованиям);• современные (последние модели для современных процессорных разъемов).Во-вторых, по обслуживаемому процессору чипсеты для настольных систем

разделяют согласно поддерживаемому процессорному разъему: Socket 478(Pentium 4, Celeron 4) Socket 775 (Pentium 4, Celeron 4), Socket 754 (Athlon 64,Sempron), Socket 939 (Athlon 64, Athlon FX), Socket 940 (Athlon FX, Opteron).

Отдельную группу образуют чипсеты типа «все в одном» (графика, звук, се-тевые интерфейсы) с высокой степенью интеграции (например, Intel 915/925,nVidia nForce4 и др.).

2.2. Графическая подсистема ЭВМ

Графическая подсистема — неотъемлемая часть практически любой совре-менной ЭВМ, поскольку она является основным средством общения человека сЭВМ независимо от режима (текстовый или графический). В далекое прошлоеушли все другие средства общения, такие как, например, пульт управления,пультовая пишущая машинка и т. п. Графическая подсистема компьютера со-стоит из аппаратной и программной частей. Аппаратная часть включает графи-ческий контроллер или видеоадаптер (внешний или встроенный в северный мостчипсета), монитор, а также интерфейсы, обслуживающие графическую подсис-тему: один между видеоадаптером и северным мостом чипсета; второй — междувидеоадаптером и устройством отображения (монитор, телевизор, проектор и

105

2. Технические средства компьютерной графики

т. п.). Программная часть обеспечивает поддержку интерфейсов видеоадаптера,монитора и приложений на уровне BIOS, ОС, драйверов и специализированныхприкладных языков программирования (API). Графическая подсистема исполь-зуется всеми прикладными программами (от простейших текстовых редакторовдо программ трехмерного моделирования), поскольку почти вся информация,выводимая компьютером, визуализируется графической подсистемой. Прило-жение использует функции видеоадаптера при посредничестве драйвера, кото-рый выступает интерпретатором команд для графического процессора. В соот-ветствии с полученными командами видеоадаптер выводит на экран монитораотображаемое изображение.

Как было сказано выше, в КГ в настоящее время используются две разно-видности графических изображений — плоские, или 2О-изображения, и объем-ные, или ЗО-изображения. Кроме того, изображения могут быть представлены ввекторной или растровой форме. В процессе функционирования графическаяподсистема компьютера решает три группы задач:

• задачи плоской, или 2О-графики. В основном это задачи графического ин-терфейса GUI (Graphic User Interface) для обеспечения взаимодействия междуразличными программами и пользователем. Современные графические интер-фейсы принадлежат к группе так называемых \У1МР*-интерфейсов, предложен-ных более 15 лет назад и доживших до наших дней без существенных измене-ний. Графическим ядром предыдущих версий Windows являлся существующийуже больше 11 лет интерфейс на основе библиотеки GDI, которой на смену идетбиблиотека GDI+. Эта библиотека сочетает в себе (по крайней мере, по замыслу)все достоинства своего предшественника и предоставляет множество новыхмощных возможностей. Кроме того, при проектировании библиотеки GDI+ за-ранее ставилась цель переноса приложений на 64-битные платформы. Кромезадач GUI к этой группе относятся задачи создания, редактирования и отобра-жения плоских изображений. Двухмерные изображения могут быть представле-ны как в векторной (машиностроительные чертежи, географические карты и т. п.),так и в растровой форме (цифровые фотографии, сканированные рисунки и т. п.);

• задачи трехмерной, или ЗО-графики. ЗО-графика, как правило, представ-ляет собой геометрические модели ЗО-объектов, совокупность которых образуетсложную геометрическую модель некоторого трехмерного объема, называемоготрехмерной сценой. Последовательность геометрических моделей трехмернойсцены, отражающая динамику изменений, порождает трехмерный видеоряд.Геометрические модели ЗО-графики, как правило, создаются и обрабатываютсяспециальными программами, исполняемыми на ЦП, и хранятся в ОП компьюте-ра. Графическая подсистема компьютера в этом случае используется для выводаи отображения трехмерных сцен. Современные видеоадаптеры способны привыполнении некоторых ограничений самостоятельно осуществлять создание и

Аббревиатура WIMP расшифровывается: Window — окно, Icon — пиктограмма,Menu — меню. Pointer — указатель или курсор.

106

2.2. Графическая подсистема ЭВМ

обработку геометрических моделей. При этом современные устройства выводаграфических изображений (мониторы, принтеры, плоттеры, проекторы и т. п.)являются растровыми и могут выводить только плоские изображения или фор-мировать на их основе стереоскопические изображения. Исключение составля-ют устройства вывода стереолитографии и станки с ЧПУ, используемые длясоздания трехмерных объектов или их физических моделей по геометрическиммоделям. Эти устройства являются векторными и управляются специальнымипрограммами, которые генерируются на основе геометрических моделей объектов;

• задачи вывода и обработки видеографики. Графическая подсистема со-временных компьютеров, как правило, содержит аппаратные средства, обеспе-чивающие ускорение обработки, компрессии и декомпрессии видео и повышениекачества отображения видео на экране монитора. Кроме того, поддерживаетсяработа с различными источниками видео (DVD, HDTV, PVR, включая новейшиетехнологии Blu-ray и HD DVD) в различных форматах.

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

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

Видеопродукция. Видеопродукция предъявляет исключительно высокиетребования к реалистичности создаваемых трехмерных сцен. Такую трехмернуюграфику часто называют фотореалистичной. Действительно, в некоторых слу-чаях невозможно различить объекты, существующие в реальном мире и создан-ные средствами КГ. Как правило, инструментами разработчиков трехмернойграфики, используемой в кинопроизводстве, служат мощные графические стан-ции и специализированные программы, причем синтез и обработка изображенийв этом случае осуществляется, как правило, на уровне ЦП. Фотореалистичнаяграфика высокого качества требует затрат ресурсов, превосходящих современ-ные возможности IBM PC. Визуализацией кадров занимаются десятки компью-теров, объединенных в локальные сети или суперкомпьютеры. Время обработкиодного кадра иногда составляет несколько часов даже для мощных ВС. Расчетвизуализации эпизода, занимающего в фильме несколько минут, нередко загру-жает мощные компьютеры на несколько дней. Однако динамика развития аппа-ратных средств КГ настолько высока, что недалеко то время, когда качествоизображений, которое сегодня представлено в лучших кинофильмах, увидим намониторе домашнего компьютера в трехмерной игре.

Промышленное проектирование и дизайн. В области проектирования идизайна широко используется математическое и геометрическое моделирование.

107

2. Технические средства компьютерной графики

При этом предъявляются высокие требования к точности параметров создавае-мых объектов: по размерам, характеристикам материала, соответствию стандар-там и т. д. Часто такие системы сопрягаются с промышленным и испытательнымоборудованием с числовым управлением. При этом недостаточно обеспечитьвысокую точность и скорость вычислений, графическая подсистема должна адек-ватно, с высоким качеством и быстро отображать объект на экране. Здесь важныпараметры четкости и контрастности изображения, соответствие пропорций,отсутствие геометрических искажений, правильная передача и преобразованиецветов и часто требуется оперативная фотореалистичная визуализация. Геомет-рические модели трехмерных сцен отличаются высокой сложностью, большимчислом объектов, источников освещения и разнообразных материалов и созда-ются на уровне ЦП с использованием сложного и развитого ПО. В этой областиобычно используется два варианта визуализации трехмерных сцен: оперативная,или текущая (в процессе создания проекта и его компонентов), итоговая, илипрезентационная (фотореалистичная, высококачественная визуализация проектапри завершении какого-либо этапа его создания). В первом варианте использу-ется упрощенное каркасное или полигональное представление, которое возмож-но без наложения текстур и настройки освещения, и визуализируется в основ-ном средствами графического адаптера. Во втором варианте качество визуали-зации часто превышает возможности современных графических адаптеров(включая профессиональные) и выполняется с использованием специальныхпрограмм (типа 3D Studio MAX и т. п.) и на уровне ЦП.

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

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

Игры с высокими требованиями к эффективности графической подсистемычасто используют в качестве тестовых программ. В частности, повсеместно при-знанными игровыми тестами являются Quake III Arena, Unreal Tournament 2004,Chronicles of Riddick, Doom 3, FarCry и др.

Обучающие системы и компьютерные тренажеры. Современные обу-чающие системы и компьютерные имитаторы-тренажеры для повышения эф-фективности и сокращения сроков обучения требуют создания виртуальной

108

2.2. Графическая подсистема ЭВМ

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

2.2.1. Принципы работы графического адаптера

Видеоподсистема компьютера предназначена для отображения графическихизображений, хранящихся в той или иной форме в памяти компьютера или соз-даваемых на основе геометрических моделей ЗЭ-изображений на плоском экра-не монитора. Современные мониторы являются растровыми устройствами, вкоторых изображение на экране создается из тысяч пикселов. Пиксел — мини-мальный элемент изображения на экране, который может быть сгенерированкомпьютером. Число пикселов в горизонтальной строке экрана, умноженное начисло пикселов в столбце экрана, равно полному числу пикселов на экране иназывается разрешающей способностью монитора.

В современных видеоадаптерах большая часть графических функций реали-зуется непосредственно в видеоадаптере на аппаратном уровне, что позволяетразгрузить ЦП, но требует использования в видеоадаптере специализированногопроцессора — графического или видеопроцессора. Функциональные возможно-сти и сложность современных графических процессоров, как правило, сущест-венно превосходят возможности ЦП. Например, графические процессоры ATIRadeon XI800 XT и NVIDIA GeForce 7800 GTX содержат 320 и 302 млн транзи-сторов соответственно. В их структуру входит несколько десятков специализи-рованных процессоров, выполняющих операции арифметики с плавающей запя-той. В то же время двухядерный процессор Intel Pentium Extreme Edition 840 со-держит всего два процессора и 230 млн транзисторов, из которых большая частьприходится на кэш-память второго уровня.

Почти все ЗБ-модели, используемые в самых различных логотипах, реклам-ных роликах и кинофильмах, создаются на специальных рабочих станциях, ос-нащенных несколькими мощными процессорами и специализированными 3D-ускорителями. Яркий пример таких рабочих станций — машины, производимыекомпанией SGI (Silicon Graphics Inc), являющейся также создателем стандартаOpenGL. В данной области этим рабочим станциям SGI нет равных, но подав-ляющее большинство профессионалов используют персональные компьютерыблагодаря их невысокой по сравнению со специализированными станциямистоимости, а также большому количеству написанного программного обеспече-

109

2. Технические средства компьютерной графики

ния и более удобному интерфейсу. В связи с этим все видеоадаптеры, выпус-каемые для ПК, можно разделить на три больших класса:

• бюджетные офисные видеокарты для широкого применения;• игровые видеокарты, поскольку компьютерные игры — наиболее массовая

область их применения;• профессиональные видеокарты для выполнения сложных профессиональ-

ных работ.Профессиональные карты отличаются от игровых тем, что они предназначены

для быстрого и качественного отображения трехмерных сцен с большим количест-вом объектов сложной формы, набором различных источников освещения и боль-шим числом разнообразных текстур, т. е. в этом случае очень важна вычислитель-ная мощность графического процессора и различные технологии повышения каче-ства визуализации. Примером профессиональных графических карт могут служитькарты семейств Quadro и nForce Professional фирмы Nvidia и карты семействаFireGL фирмы ATI. Обычно профессиональные графические карты в архитектур-ном плане практически аналогичны игровым и содержат те же графические процес-соры. Основные отличия заключаются в том, что профессиональные карты обычноориентированы на применение в качестве API OpenGL, снабжаются специальныминаборами драйверов (часто ориентированными на конкретные приложения) и высо-кой ценой. Далее в основном рассматриваются особенности видеоадаптеров первыхдвух классов как наиболее массовых и часто используемых в качестве замены про-фессиональных из-за высокой цены последних.

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

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

Емкость графической памяти или видеопамяти. Определяет сложность об-рабатываемых изображений и параметры качества и скорости отображения.Качество изображения на экране монитора характеризуется совокупностью

ПО

2.2. Графическая подсистема ЭВМ

взаимосвязанных параметров: максимальная разрешающая способность, мак-симальное число отображаемых цветов или разрядность кодирования цветапиксела, максимальная частота кадровой развертки. Эти параметры задаются вокнах настройки ОС и в некоторой степени зависят от емкости графической па-мяти. Однако перечисленные параметры определяют только объем буфера кад-ра, в котором непосредственно формируется изображение, выводимое на экранмонитора, а в современных видеоадаптерах в видеопамяти кроме буфера кадраразмещается много других данных: буфер глубины (Z), данные вершин, тексту-ры и др. В настоящее время емкость видеопамяти достигает 1024 Мбайт, а зна-чения указанных параметров часто превышают возможности мониторов.

Тактовая частота процессора. Обычно тактовая частота процессора суще-ственно ниже тактовой частоты ЦП и составляет 400...625 МГц.

Тип графической памяти, разрядность шины и тактовая частота памяти.В современных видеоадаптерах используется синхронная динамическая память(SDRAM) типа DDR3 и DDR2 с разрядностью шины памяти от 64 до 256 разря-дов и тактовой частотой до 1,7 ГГц.

Максимальная пропускная способность шины памяти. Определяет скоростьотображения и скорость работы графического процессора. В современных ви-деопроцессорах максимальная пропускная способность шины памяти можетдостигать 50 Гбайт/с.

Тип графического интерфейса. Все современные карты используют один издвух интерфейсов либо параллельный AGP, либо более современный, последо-вательный PCI Express.

Число пиксельных конвейеров. Пиксельные конвейеры построены на специа-лизированных процессорах и используются для выполнения пиксельных шейде-ров — специальных программ обработки пикселов изображения. В современныхвидеопроцессорах (ATI RADEON XI900 (R580)) содержится до 48 (16x3) пик-сельных конвейеров.

Число блоков текстурирования. Блоки (процессоры) текстурирования вы-полняют операции с текстурами для повышения реалистичности изображения наэкране монитора. Текстура — плоское или трехмерное изображение элементар-ного участка реальной поверхности, которое может накладываться на трехмер-ные объекты с учетом их формы, положения и уровня детализации (LOD level).В современных видеопроцессорах (NVIDIA GeForce 7800 GTX) содержится до24 текстурных блоков.

Число вершинных конвейеров. В данном случае под вершиной понимают вер-шину многоугольника (полигона) и точку в трехмерном пространстве, положениекоторой определяется координатами X, Y и Z и переменной W (учитывающей пер-спективную проекцию). В графических процессорах для персональных компьюте-ров при описании трехмерных объектов используются полигональные модели, со-стоящие из простейших многоугольников — треугольников, положение которых впространстве определяется положением их вершин. Вершинные конвейеры по-строены на специализированных вершинных процессорах и используются для вы-

111

2. Технические средства компьютерной графики

полнения вершинных шейдеров — специальных программ для обработки координатвершин и произвольных точек треугольников при перемещении трехмерных объек-тов, удаления невидимых граней объектов, сортировки вершин и т. п. В современ-ных видеопроцессорах (NVIDIA GeForce 7800 GTX и ATI RADEON XI800(R520)/X 1900 (R580)) содержится до восьми вершинных конвейеров.

Скорость обработки полигонов. Предельное значение скорости обработкиполигонов определяется числом вершинных конвейеров и тактовой частотойработы графического процессора. Реальная скорость зависит от ряда факторов иот особенностей используемого программного обеспечения и решаемых задач.В современных видеоадаптерах высокого уровня этот параметр достигает значе-ний в 400 млн треугольников в секунду и выше.

Скорость закрашивания пикселов. Максимальное значение скорости закра-шивания пикселов определяется числом пиксельных конвейеров и тактовой час-тотой работы графического процессора. Реальная скорость зависит от многихфакторов и в современных видеоадаптерах высокого уровня этот параметр дос-тигает 6...7 тыс. мегапикселов в секунду.

Кроме перечисленных параметров широко используются и другие парамет-ры, измеряемые при сравнении видеоадаптеров с использованием различныхтестовых задач.

Устройство графического адаптера. Графический адаптер состоит из сле-дующих функциональных блоков (рис. 2.16):

• графического процессора;• 2О-ускорителя (часто входит в графический процессор);• процессора обработки видеосигналов (часто входит в графический про-

цессор);• видео BIOS;• видеопамяти;• цифроаналогового преобразователя (RAMDAC), цифрового видеовыхода

(DVI) и других интерфейсов (часто входят в графический процессор);• интерфейсов сопряжения с чипсетом системной платы;• аналоговых элементов.Графический процессор — GPU (Graphic Processing Unit). Непрерывный

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

112

Центральныйпроцессор

XJОперативная

память \ /Северный

мостВнешняя графика

PCI Express xl6

Графическийадаптер

\г+У

RAM D AC

* D

Видео BIOS

Графическиймост

(GPU)

Видеопамять

-sub VGA

RAMDAC

ZU.DVI * TV-out

Аналоговыймонитор

Цифровоймонитор

Рис. 2.16. Структурная схема графического адаптера

2. Технические средства компьютерной графики

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

Видеопамять. Важную роль в повышении производительности видеоадап-тера играют характеристики видеопамяти, определяемые ее типом, частотой ра-боты, величиной задержек, шириной шины памяти. ЦП компьютера направляетданные в видеопамять, а графический процессор видеокарты считывает оттудаинформацию. Кроме того, в видеопамяти хранится кадровый буфер и промежу-точные данные, необходимые графическому процессору. Современные видео-карты высокого уровня оснащаются 4-канальной памятью типа GDDR3 объемомдо 1024 Мбайт и рабочей частотой до 1700 МГц, шиной шириной в 256 (64x4)разрядов. Средние значения задержек видеопамяти DDR достигают 1,3 не. Объ-ем видеопамяти, установленной на карте, важен в первую очередь для обработкитрехмерных изображений с текстурами высокого разрешения при большой глу-бине цвета. Большая емкость памяти необходима для быстрого вывода трехмер-ных изображений с высоким разрешением, поскольку в видеопамять при этомзагружается огромный объем дополнительной информации, прежде всего мас-сивы текстур.

RAMDAC. Графический процессор, получив информацию об изображениииз видеопамяти, обрабатывает ее и передает либо в цифроаналоговый преобра-зователь (RAMDAC) для вывода на аналоговый монитор, либо в схему форми-рования цифрового сигнала TDMS (а через нее на цифровой видеовыход DVI)для вывода на цифровой монитор. RAMDAC состоит из памяти с произвольнымдоступом (RAM) и цифроаналогового преобразователя (DAC — Digital to AnalogConverter). B RAMDAC обычно используется статическая память, по быстро-действию близкая к кэш-памяти процессоров. Цифроаналоговый преобразова-тель содержит три параллельных канала — по одному на каждый цвет.

Схемотехника RAMDAC развивается очень быстро, сегодня стандартныеRAMDAC обеспечивают разрешение и частоту развертки при 32-битном цвете,превышающие возможности современных мониторов. Кроме того, в них под-держивается режим Direct Color, т. е. возможность прямого доступа к элементамDAC. Это позволяет создавать независимые таблицы для каждого из трех основ-ных цветов, что дает возможность корректировать искажения яркости цвета наэлектронно-лучевой трубке (ЭЛТ) монитора, вызванные нелинейной зависимо-стью между подаваемым на ЭЛТ напряжением и яркостью. Эта операция назы-вается гамма-коррекцией. С ее помощью можно регулировать яркость в диапа-зоне от 0,3 до 4,0, где 1,0 — значение по умолчанию.

Качество получаемого изображения в решающей степени зависит от такиххарактеристик RAMDAC, как его частота, разрядность, время переключениясигнала с уровня черного цвета на уровень белого и обратно, варианта исполне-ния (внешний или внутренний). Частота RAMDAC говорит о том, какое макси-мальное разрешение и при какой частоте кадровой развертки сможет поддержи-

114

2.2. Графическая подсистема ЭВМ

вать видеоадаптер. RAMDAC в современных графических процессорах, как пра-вило, работают с тактовой частотой, равной 400 МГц.

Разрядность RAMDAC показывает, какое число цветов способен воспроиз-вести видеоадаптер. Большинство микросхем поддерживает представление 8 битна каждый канал цвета, что обеспечивает отображение около 16,7 млн цветов. Засчет гамма-коррекции исходное цветовое пространство расширяется. Современ-ные RAMDAC поддерживают целочисленный тип данных RGB A (10:10:10:2) вбуфере кадра для более качественного рендеринга с разрядностью 10 бит по каж-дому каналу, охватывающему более 1 млрд цветов.

Следует обратить внимание на то, как именно выполнен модуль RAMDACна видеокарте — внутренним или внешним. Обычно в современных графиче-ских процессорах он размещается на одном кристалле с видеопроцессором.Многие современные видеокарты поддерживают одновременную работу с двумямониторами, поэтому в такие карты устанавливаются по два RAMDAC и соот-ветственно по два разъема для подключения монитора. В подавляющем боль-шинстве видеокарт имеется также выход на телевизор (TV-out), позволяющийпросматривать мультимедийные программы или фильмы на телевизионном эк-ране. Телевизионный сигнал обычно формируется отдельной специализирован-ной микросхемой, получающей данные от RAMDAC. Большинство современ-ных видеоадаптеров имеют выход DVI (часто два) для подключения цифровогомонитора. Преимущество цифрового интерфейса перед RAMDAC заключается втом, что при выводе изображения не выполняются цифроаналоговые преобразо-вания изначально цифрового сигнала, что теоретически обеспечивает лучшеекачество. На практике разница незаметна: современные видеоадаптеры выдаютидеальную картинку и на аналоговые, и на цифровые устройства.

Интерфейс. Интерфейс видеокарты обеспечивает сопряжение с северныммостом чипсета. Рост производительности видеоадаптеров потребовал разработки ивнедрения специализированного интерфейса AGP (Accelerated Graphic Port —ускоренный графический порт), который обеспечил приоритетный доступ ви-деоадаптера к системной памяти и пиковую пропускную способность шины2133 Мбайт/с (версия AGP8X). В настоящее время осуществляется переход напоследовательный интерфейс PCI Express. В современных компьютерах дляподключения графических карт используется версия PCI Express xl6 с макси-мальной пропускной способностью шины 4000 Мбайт/с в обоих направлениях.

Аналоговые компоненты. Аналоговые компоненты видеокарты обеспечи-вают стабильное питание микросхем и формирование сигналов нужной формына аналоговых выходах (на монитор и телевизор). Видеокарты высокой произ-водительности имеют высокое энергопотребление, часто потребляемая мощ-ность превышает 100 Вт и поэтому их снабжают специальным дополнительнымразъемом питания. Кроме того, высокая потребляемая мощность требует эффек-тивной системы охлаждения и системы контроля температуры графическогопроцессора, которые по сложности не уступают соответствующим системам ЦП.Высокая частота аналоговых сигналов на выходах к монитору и к телевизору

115

2. Технические средства компьютерной графики

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

Технологии SLI и CrossFire. Возможность параллельной обработки графи-ческой информации на уровне видеоадаптеров или одновременное использова-ние двух видеоадаптеров для повышения производительности была реализованавпервые компанией 3dfx в 1998 г. в видеокарте 3dfx Voodoo2 Graphics. Эта тех-нология получила название SLI. В то время аббревиатура расшифровывалась какScan Line Interleaving (чересстрочное сканирование кадров). С помощью этойтехнологии для увеличения производительности можно было объединять видео-ускорители в ЗБ-приложениях. Подключение производилось по следующемупринципу: монитор подключался к ускорителю, а специальный кабель соединялускоритель с 2Б-видеокартой. Возможности SLI позволяли соединять видеоус-коритель с таким же ускорителем посредством плоского кабеля, похожего наАТА- или FDD-шлейф. Таким образом, вся видеосистема занимала три слотаPCI, что было не очень удобно, но (по зявлениям компании 3dfx) позволяло уве-личить производительность вдвое. Однако реальный прирост производительно-сти составлял 20.. .50 %.

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

Длительный период времени видеокарте Voodoo2 Graphics в режиме SLI попроизводительности не было равных. Однако с появлением новых чипов nVidiaRivaTNT и ATI Rage и шины AGP, а также объединением 2О-ускорителя и ви-деокарты в одном устройстве ускорители Voodoo2 Graphics стали пользоватьсявсе меньшей популярностью и вскоре исчезли с рынка.

Технология параллельного использования двух видеоадаптеров была воз-рождена компанией nVidia после разработки шины PCI Express. Число разъемовс этой шиной на современных системных платах, как правило, превышает 2(в отличие от шины AGP). nVidia, возрождая технологию SLI, решила не менятьее название. Изменилась только расшифровка аббревиатуры. Теперь SLI рас-шифровывается как Scalable Link Interface (масштабируемый соединительныйинтерфейс). Для функционирования технологии nVidia SLI необходимо наличиедвух видеокарт с поддержкой SLI, системной платы с чипсетом, поддерживаю-щим SLI, можно (но не обязательно) использовать переходную плату SLI-bridgeдля связи видеокарт и соответствующий драйвер.

Технология SLI поддерживает два режима работы пары видеокарт: SplitFrame Rendering (SFR) и Alternate Frame Rendering (AFR). В режиме SFR проис-ходит разделение кадра на две части, за рендеринг каждой из которых отвечаетотдельный видеоадаптер. При этом кадр разделяется динамически в зависимости

116

2.2. Графическая подсистема ЭВМ

от сложности сцены. Такой режим позволяет добиться максимальной произво-дительности за счет равномерной загрузки каждой видеокарты. Метод разделе-ния называется Symmetric Multi-Rendering with Dynamic Load Balancing (SMR),т. е. симметричный мультирендеринг с динамическим распределением нагрузки.В режиме AFR каждый адаптер обрабатывает свой кадр. ЦП перенаправляет ве-дущей карте запрос на обработку первого кадра и сразу же отправляет ведомойкарте запрос на обработку второго кадра. Таким образом, одна видеокарта обра-батывает нечетные кадры, а вторая — четные.

Позднее компания nVidia на базе графического процессора nVidia GeForce7900 GTX/GT (G71) разработала следующий вариант технологии SLI — для че-тырех чипов. Разумеется, такие решения существовали и раньше, например впромышленных симуляторах для обучения пилотов и в графических суперком-пьютерах. Однако эта технология впервые реализована на обычном PC на базе,вставляемой в один слот двухчиповой карты на базе GeForce от nVidia. Карта сдвумя чипами сама по себе представляет SLI-решение. На системную плату,поддерживающую SLI, можно устанавливать две такие двухчиповые карты. Та-ким образом, компания nVidia предлагает два варианта — одиночное SLI-реше-ние на двух чипах внутри одной карты и SLI-решение на четырех чипах (Quad-SLI путем установки второй подобной карты). Очевидно, что производитель-ность четырехпроцессорной конфигурации будет высокой, а при некоторых ус-ловиях и очень высокой.

Выпуск подобной двухчиповой графической карты стал возможным толькоблагодаря низкому энергопотреблению и тепловыделению, а также низкой себе-стоимости чипа. Карта состоит из базовой и дополнительной плат, занимает ши-рину двух слотов и при работе в режиме Quad-SLI связывается двумя каналами ссоседней двухчиповой картой. Таким образом, получаем топологию квадрата —оба чипа карты связаны друг с другом и каждый связан с еще одним чипом сосед-ней карты. Кроме того, на каждой двухчиповой карте установлен мост PCI-E х16,осуществляющий арбитраж и доступ к обоим ускорителям со стороны системы.

Режимы работы двух видеокарт аналогичны предыдущим. Есть три режимасовместной работы: AFR (чередование расчета кадров между ускорителями),зональный рендеринг (разделение экрана на четыре зоны) и SLI-AA — исполь-зование ускорителей для расчета разных АА семплов в пределах одного пиксела.Кроме того, логичным становится комбинирование режимов, например, 2xAFRот двух двухзональных кадров (чередование кадров, каждый из которых постро-ен SLI-методом разделения зон) или зональное разделение 2xSLI-AA и т. д.Комбинаций может быть много, никаких новых архитектурных изменений дляэтого не нужно, в технологии SLI уже заложены различные возможности, а со-четанием управляет драйвер.

Позднее аналогичная технология, получившая название CrossFire, былапредставлена и компанией ATI. В отличие от SLI, где обе видеокарты должныподдерживать технологию SLI, CrossFire позволяет объединять видеокарты, изкоторых только одна должна быть выполнена с поддержкой этой технологии,

117

2. Технические средства компьютерной графики

вторая же может быть любой. Кроме того, в технологии CrossFire применяетсявнешнее соединение видеокарт при помощи специального кабеля.

Помимо метода, аналогичного SMR, технология CrossFire предполагаетприменение еще трех способов рендеринга: SuperTiling, в котором экран делитсяна множество квадратов и каждая карта обсчитывает половину этих квадратов;чередование кадров (Alternate frame rendering), при котором одна карта отвечаетза рендеринг одного кадра, а другая — за рендеринг следующего кадра; и нако-нец, так называемый Super AA (суперсглаживание), обеспечивающий полно-экранное сглаживание в режиме до 14х.

Основным достоинством технологий SLI и CrossFire является увеличениепроизводительности в ЗБ-приложениях. Во многих играх увеличение произво-дительности достигает 60...70 %. В тестовых приложениях это значение иногдадоходит и до 100 %. Из недостатков рассматриваемых технологий следует выде-лить высокую стоимость видеосистемы, включая мощный блок питания (от 400 Вт)и системную плату на специальном чипсете.

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

• значительная доля арифметических операций над векторными данными вграфических алгоритмах с незначительным количеством логических операций;

• возможность эффективного распараллеливания процессов обработкиграфических объектов благодаря их взаимной независимости;

• потоковый характер построения изображения, что позволяет организоватьграфический конвейер.

Исходные данные, которыми оперируют современные графические про-цессоры (параметры вершин, матрицы преобразования, значения цвета и т. п.),организованы в виде векторов и соответственно большинство операций, вы-полняемых графическим процессором, являются векторными. Графическиевекторы, как правило, имеют четвертый порядок, т. е. содержат четыре числа,например три цветных компонента (R, G, В) и степень прозрачности (альфа-канал). Поэтому графические процессоры содержат векторные АЛУ, испол-няющие операции с четырьмя компонентами того или иного формата, с произ-вольной перестановкой компонентов перед вычислениями, с возможностьювыполнять разные операции по схеме 3+1 компонентов или даже менее частовостребованной, но все равно потенциально выгодной — 2+2 (две операциинад двумя компонентами).

Операции со значениями цвета и прозрачности — чисто арифметические.Логически данные друг от друга не зависят, поэтому их можно обрабатыватьпараллельно. Для этого достаточно иметь одно векторное АЛУ и общий блокуправляющей логики, обеспечивающий произвольную перестановку компонен-тов перед вычислениями. В реальных задачах часто встречаются ситуации, когда

118

2.2. Графическая подсистема ЭВМ

необходимо обработать векторы второго порядка или скалярные величины (осо-бенно это касается пиксельных конвейеров и пиксельных алгоритмов). В этомслучае вычисления оптимизируются по схеме 2+2.

Особенность графических алгоритмов состоит в том, что объекты, обраба-тываемые в графическом конвейере, как правило, не зависят друг от друга, приэтом возможно распараллеливание обработки данных на нескольких уровнях.Например, при обработке вершин треугольника все три вершины будут обрабо-таны по одному и тому же алгоритму, и более того, совершенно не важен поря-док их обработки. Поэтому можно обрабатывать сразу несколько вершин парал-лельно, так как современные графические процессоры содержат группу вершин-ных процессоров (8 в nVidia GeForce 7800 GTX). Обработка пикселов еще лучшеподдается распараллеливанию. Как следствие происходит рост числа пиксель-ных конвейеров в архитектуре графического процессора (48 в ATI RADEONXI900 ХТХ/ХТ (R580)), т. е. мощность графического процессора обычно нара-щивается путем увеличения числа вершинных и пиксельных конвейеров.

С внедрением DirectX 9.0с (пиксельные и вершинные шейдеры версии 3.0) вграфических алгоритмах появилась возможность динамического управлениявычислениями (циклы и ветвления, вызов подпрограмм, предикаты, возврат идругие операции). Характер и порядок обработки данных может зависеть от ихисходных значений. Поэтому возникла необходимость создания полноценныхпараллельных конвейеров, каждый из которых оснащен управляющей логикойобработки динамических ветвлений. Все данные, поступающие в конвейерыграфического процессора, организованы как однородные потоки данных. Следо-вательно, они могут быть предварительно подготовлены для обработки, т. е.выбраны из памяти, помещены в кэш-память и организованы в очереди. Перво-начально эти возможности были реализованы в графических процессорах ком-пании NVidia, а затем и в процессорах компании ATI.

Архитектура графического процессора (GPU). Структурная схема графиче-ского процессора GeForce 7800 GTX компании nVidia представлена на рис. 2.17.

ЦП компьютера, подготавливая полигональное описание трехмерной сцены,создает поток параметров вершин полигонов (треугольников), описывающихповерхности трехмерных объектов, присутствующих в кадре. Блок выборкигеометрии графического процессора извлекает из ОП или видеопамяти геомет-рические данные и направляет их в кэш-память вершин. GPU поколения DirectX 9поддерживают несколько вариантов структуры хранения геометрических дан-ных в видеопамяти, учитывающих особенности полигональных моделей. Крометого, аппаратно поддерживается гибкий формат данных: для каждой вершинымогут храниться не только обычные параметры (координаты или вектор норма-ли), но и любые другие наборы допустимых скалярных или векторных величин.

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

119

2. Технические средства компьютерной графики

Чипсет, CPUи т. д.

1

Локальная память ускорителя

Буфер кадра, Z,Stencil Текстуры Геометрия

PCIE 16х GDDR-3, 64x4ftitlfflКоммутатор

Выборка вершин+ tКэш-память буфера и Z,очередь записи

Кэш-памятьтекстуры L2

\

Кэш-память вершин

8 Процессоров вершин

\

Пост кэш-память вершин

•Установка

треугольников

Установкафрагментов,

интерполяция

Мини^-буфер

HRS фрагментов

Разбиениена фрагменты

И I6 процессоров квадов (24 пике.)

Пул квадов

4xTMU

Кэш-память текстур L1

4x(2ALU+2x mini ALU

Блендинг, Z, Stencil, AA16 модулей х2 ALU

2D и видеопроцессор 2CRTC, 2 RAMDAC, DVI и другие интерфейсы

i>W> О ОРис. 2.17. Структурная схема графического процессора GeForce 7800 GTX компании nVidia

поступающие данные по своей сути — потоки, они считываются последователь-но или почти последовательно. Таким образом, потоки данных могут бытькэшированы, выбраны предварительно, помещены в очереди, для того чтобыподсистема памяти не простаивала и работала эффективно. В современных гра-фических процессорах практически нет произвольного доступа к памяти, чтосущественно снижает эффективность кэширования. Поэтому в отличие от обыч-ных процессоров кэш-памяти GPU относительно малы, раздельны и работают,как правило, только на чтение. Это позволяет сделать их особенно эффективны-ми — даже кэш-память буфера кадра можно разбить на две части, одна из кото-рых работает только на чтение, а вторая является обычной очередью записи.При этом поддерживается работа с несколькими потоками данных, когда частьатрибутов вершины хранится в одном массиве данных, а другая часть — в дру-гом. Как правило, выборка из памяти происходит одновременно несколькимипотоками (обычно по 4 каналам по 64 разряда в каждом). Далее каждая из вер-шин попадает в вершинный процессор.

120

2.2. Графическая подсистема ЭВМ

L2кэш-память

текстур

tВыборка и кэш-память данных

Управление исполнением 8 процессоров

TMUI

FP32 ALUI

FP32[4] ALUJ_

Регистры

J

Пост кэш-память данных

Отсечение

и сборка

вершин

треугольников

_LУстановка треугольников

1Рис. 2.18. Структурная схема вершинного процессора для GPU nVidia GeForce 7800 GTX

Вершинный процессор. В современных графических процессорах блоки об-работки вершинных программ соответствуют спецификации Microsoft DirectX 9.0c,т. е. поддерживают вершинные шейдеры (Vertex Shader, VS) версии 3.0. Произ-водительность и число вершинных блоков растут с развитием архитектуры гра-фических процессоров. Структура вершинного процессора компании nVidiaпредставлена на рис. 2.18.

Вершинные процессоры позволяют специальным программам (вершиннымшейдерам) обрабатывать каждую вершину объекта, выполняя трансформации,расчет освещенности и другие операции. Собственно, графический процессорсодержит восемь независимых вершинных процессоров, каждый из которых ис-полняет свои команды и имеет собственное устройство управления, т. е. разныепроцессоры могут одновременно исполнять различные участки программ надразными вершинами. За один такт вершинный процессор может выполнить однувекторную операцию (до четырех компонентов в формате с плавающей точкойFP32), одну скалярную операцию в формате FP32 и осуществить один доступ ктекстуре (TMU). Поддерживаются целочисленные и плавающие форматы тек-стур и мип-мэппинг. Вершинные процессоры поддерживают статические ветв-ления, а также динамический контроль выполнения (Flow Control): циклы иветвления, вызов подпрограмм, предикаты, возврат и другие операции.

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

121

2. Технические средства компьютерной графики

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

Затем треугольник разбивается на фрагменты, часть которых признается не-видимыми и отбрасывается в ходе предварительного теста глубины (Z-теста) науровне фрагментов (технология удаления невидимых поверхностей HSR (HiddenSurface Remove)). Как правило, конечным результатом этого процесса являютсявидимые (или частично видимые) фрагменты размером 2 x 2 пиксела, называе-мые квадами и подлежащие закраске. Именно такие фрагменты наиболее удоб-ны для быстрой закраски пикселов (по нескольким, в основном математическимпричинам, связанным с интерполяцией текстурных координат).

В современных процессорах закраска осуществляется в два этапа и на двухуровнях — блоков размером 4 x 4 пиксела (удобно для работы с буфером глуби-ны — Z-буфером) и квадов размером 2 x 2 (квадами осуществляется закраска впиксельном процессоре). Вначале треугольник полностью покрывается блокамии, если даже один пиксел блока принадлежит треугольнику, он считается канди-датом на закраску. Далее из рассмотрения удаляются все полностью невидимыеблоки. Остальные блоки разбиваются на квады и для каждого из них вычисляютсяZ-координаты. Сравниваются значения глубины и отбрасываются полностью не-видимые квады, а остальные отправляются на установку и закраску в пиксельныйпроцессор. При этом квады дополняются вычисленными значениями глубины испециальной битовой маской, определяющей видимые и невидимые пикселы ква-да. В результате этого процесса в среднем половина пикселов будет отброшенаеще до закраски.

Затем квады отправляются на установку фрагментов. Здесь для каждого из нихвычисляются необходимые далее параметры: текстурные координаты, МГР-уровень, векторы и установочные данные для анизотропной фильтрации и т. д. Помере роста сложности пиксельных шейдеров растет число передаваемых и интер-полируемых для каждой точки параметров. Интерполяция требует сложных вычис-лительных операций, но использование квадов позволяет существенно повыситьэффективность этого процесса за счет определения базовых параметров для одногопиксела, а для остальных — векторов преобразований. После установки и интерпо-ляции параметров происходит закраска фрагментов в пиксельном процессоре.

Пиксельный процессор. После расчета значений цвета в пиксельном про-цессоре происходит смешивание значений с уже существующими в буфере кад-ра или блендинга (если включен соответствующий режим) или просто записьрезультирующих значений цвета и глубины в буфер кадра. На этом этапе воз-можно выполнение дополнительных операций: гамма-коррекция, вычислениесамого дальнего значения глубины блока 4 x 4 для пересылки в иерархическийбуфер глубины, сжатие Z-координат и т. д.

Структура пиксельного процессора компании nVidia представлена на рис. 2.19.В пиксельном процессоре в обработке находится одновременно несколько

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

122

Мини-Z-буфер

Мини-Z-буфер

L2кэш-память

Текстур

Разбиение треугольников на блоки 4x4

Раннее отсечение блоков с использованием мини-г-буфера

XРазбиение на квады (2x2)

Отсечение квадов с использованием Z-буфера

XУстановка кадров, вычисление dX, dYподготовка параметров (до 10xFP32[4])

Управление исполнением 6 процессоров квадов

4xTMU

L1 кэш-памятьтекстур

4xFP32[4] ALU(2 on. + MAD)

ТЕХcoord. Mmi-ALU

4xFP32[4] ALU(2 on. + MAD)

FP16NORM Mini-ALU

Буферквадов

Кэш-памятьZ-буфера

Кэш-памятьбуферакадра

Мини-Z-буф ер

—*•

Коммутатор 24(6x4) > 16(4x4)

*Сравнение и модификация, АА 16 блоков

MSAA (генерация отсчетов)

Сравнение Z и шаблона Сравнение цвета [4] или Z

Вычисление Z и шаблона1

Вычисление цвета [4] или Z1

Коммутатор и запись, MRT, MSAA

4 очереди записи и обновление мини^-буфера

т т г ~тРис. 2.19. Структурная схема пиксельного процессора для GPU nVidia GeForce 7800 GTX

2. Технические средства компьютерной графики

• флаг активности данного пикселя (поскольку не все точки квада могутбыть видимыми);

• флаг значения предиката для данного пиксела;• значение Z и, возможно, значения буфера шаблонов;• два векторных временных регистра FP32[4], которые могут быть разделе-

ны на четыре FP16[4].Все обрабатываемые квады по очереди проходят через длинный пиксельный

конвейер, состоящий из АЛУ, двух текстурных модулей и затем еще двух АЛУ.Длина конвейера составляет более двухсот тактов. Большая часть конвейера(около 170 тактов) приходится на операции выборки и фильтрации текстур, вы-полняемые в текстурных блоках. В нормальном режиме работы конвейер спосо-бен выдавать по кваду за один такт.

Всего в графическом процессоре содержится шесть независимых процессо-ров квадов. В каждом процессоре квадов содержится по два полных векторныхALU (способных выполнять две разные операции над четырьмя компонентами),дополненных двумя скалярными mini-ALU для параллельного исполнения про-стых операций. В результате ALU могут выполнять MAD-операции (одновре-менное умножение и сложение), часто встречающиеся в типовых пиксельныхшейдерах. Кроме того, в каждом процессоре квадов содержится по четыре тек-стурных модуля (TMU) — по одному модулю на пиксел, собственная кэш-па-мять первого уровня, фильтрация текстур с целочисленным или FP16 форматомкомпонентов, до четырех компонентов включительно (FP16[4]). TMU поддер-живают анизотропную фильтрацию с соотношением сторон до 16:1 включи-тельно (так называемые 16х) и позволяют выполнять все виды фильтрации сплавающими форматами текстур. За массивом из шести процессоров квадовследует коммутатор, который перераспределяет рассчитанные квады по 16 бло-кам генерации глубины, сглаживания (АА — Antialiasing) и блендинга.

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

Однако возможности современных встроенных ускорителей графикинепрерывно растут. В первую очередь следует обратить внимание на качество2Б-графики. Именно оно в значительной мере влияет на удовлетворенностьпользователя видеоподсистемой. Ведь и ОС, и основная доля деловых прило-жений работают в 2О-режиме. Только игры и специальные программы трех-мерного моделирования реально используют ЗО-возможности видеокарты.

В современных чипсетах ситуация изменилась радикально. Например, чип-сет Intel 945G содержит графическое ядро Intel Graphics Media Accelerator 950,

124

2.2. Графическая подсистема ЭВМ

которое имеет RAMDAC с рабочей частотой 400 МГц. Чуть меньше (350 МГц)частота RAMDAC встроенного ускорителя чипсета nForce2 IGP компанииnVidia. Эти значения полностью соответствуют требованиям к качественномувоспроизведению 2О-графики с разрешением до 1920х 1440 точек.

Таким образом, качество и производительность в 2Б-приложениях у встро-енных ускорителей и видеокарт практически идентичны. Этому в значительноймере способствовало внедрение новых типов оперативной памяти: DDR SDRAMи DDR2 SDRAM, поскольку встроенный ускоритель использует для своей рабо-ты часть ОП. При этом графический ускоритель даже в самых тяжелых условияхзанимает около 10 % пропускной способности шины памяти, что практическинезаметно при решении реальных задач.

Слабым местом встроенных ускорителей является работа со сложной 3D-графикой. Встроенное графическое ядро неплохо справится с простыми трехмер-ными задачами, например воспроизведением объектов VRML в Интернете. Имеячипсет с современным графическим ядром, можно запустить и сложную трехмер-ную игру, но обеспечить комфортный игровой процесс вряд ли будет возможно.Очевидно, что не следует решать на встроенном ускорителе задачи моделированияи рендеринга в 3D-Studio MAX. Встроенные графические ускорители обычно усту-пают типовым видеокартам в функциональности. Как правило, видеокарты осна-щают выходом TV-out, цифровым интерфейсом DVI, выходом на второй монитор, австроенное графическое ядро часто лишено таких функциональных элементов.

Встроенные графические ускорители современного уровня пока редки (IntelGMA 950, ATI RadeonXpress 200). Они могут работать с 20-графикой без всякихконфликтов. Для трехмерных игр последнего поколения и сложных ЗО-прило-жений необходимо устанавливать отдельную видеокарту. Функциональностьвстроенных ускорителей пока уступает типовым видеокартам. Области приме-нения систем со встроенными графическими ускорителями: офисный компью-тер, Интернет-станция, домашний мультимедийный компьютер с пониженнымитребованиями к комфортности игр, инженерные и научные расчеты, допечатнаяподготовка и другие приложения с невысокими требованиями к ЗО-графике.

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

125

2. Технические средства компьютерной графики

Основу современных средств интерфейса прикладного программированияAPI составляют специализированные прикладные программные библиотеки.Использование API позволяет разработчикам программ делать их универсаль-ными, независимыми от низкоуровневых команд конкретного графическогопроцессора. В настоящее время подавляющее большинство прикладных про-грамм, работающих с трехмерными объектами, опираются на одну из двух ти-повых библиотек — OpenGL или DirectX.

OpenGL. Это графический стандарт в области компьютерной графики. Наданный момент он является одним из самых популярных графических стандартовдля разработчиков CAD-систем и научных приложений, кроме того, он широкоиспользуется и в других областях компьютерной графики, например в компью-терных играх. Еще в 1982 г. в Стенфордском университете была разработана кон-цепция графической машины, на основе которой фирма Silicon Graphics в своейрабочей станции Silicon IRIS реализовала конвейер рендеринга. Таким образомбыла разработана графическая библиотека IRIS GL. На основе библиотеки IRIS GLв 1992 г. был разработан и утвержден графический стандарт OpenGL. Разработчи-ками OpenGL являются крупнейшие фирмы-разработчики как оборудования, таки программного обеспечения: Silicon Graphics, Inc., Microsoft, IBM Corporation,Sun Microsystems, Inc., Digital Equipment Corporation (DEC), Evans & Sutherland,Hewlett-Packard Corporation, Intel Corporation и Intergraph Corporation.

OpenGL на русский язык переводится как открытая графическая библиотека(Open Graphics Library), т. е. OpenGL — открытый и мобильный стандарт. Про-граммы, написанные с помощью OpenGL, можно переносить практически налюбые платформы, получая при этом одинаковый результат, будь то графиче-ская станция или суперкомпьютер. Базовый набор OpenGL включает в себя око-ло 150 различных команд, с помощью которых реализуют основные функции:определение объектов, указание их местоположения в трехмерном пространстве,установку других параметров (поворот, масштаб), изменение свойств объектов(цвет, текстура, материал), положение наблюдателя.

Несмотря на то что библиотека OpenGL предоставляет все основные воз-можности для моделирования и воспроизведения трехмерных сцен, некоторыеиз функций, которые требуются при работе с графикой, отсутствуют в стандарт-ной библиотеке OpenGL. Поэтому для OpenGL были созданы так называемыевспомогательные библиотеки. Одна из вспомогательных библиотек под назва-нием GLAUX была разработана фирмой Microsoft для ОС Windows.

Программы, написанные с помощью OpenGL, можно успешно перенести натакие платформы, как Unix, Linux, SunOS, IRIX, Windows, MacOS и многие дру-гие. OpenGL развивается с помощью создания так называемых расширений —специальных модификаций базовой версии OpenGL, которые добавляют новыевозможности и/или расширяют старые. Когда накапливается достаточно такихизменений, консорциум OpenGL выпускает спецификацию новой версии. По-следней версией спецификации является версия 2.0.

126

2.2. Графическая подсистема ЭВМ

DirectX. В 1995 г. компания Microsoft представила первую версию библиотекиDirectX (тогда она называлась Game SDK). В 2004 г. вышла девятая версияDirectX 9.0, а следом — модифицированная версия DirectX 9.0c. DirectX — кор-поративный стандарт, все права на который принадлежат компании Microsoft.И только Microsoft определяет, что включать в очередную версию API, а какиепредложения игнорировать. Более того, DirectX предназначен только для плат-форм Intel под управлением ОС Windows. В литературе иногда программы и ви-деоадаптеры разделяют на поколения согласно поддерживаемым версиям DirectX.

Стандарт DirectX включает в себя модули поддержки:• программирования двухмерной графики (модуль DirectDraw);• создания трехмерной графики (модуль Direct3D);• работы со звуками и музыкой (модули DirectSound и DirectMusic);• поддержки устройств ввода (модуль Directlnput);• разработки сетевых игр (модуль DirectPlay).Таким образом, DirectX представляет собой набор из нескольких сравнитель-

но независимых API, позволяющих разработчикам игр и других интерактивныхприложений получать доступ к специфическим функциям аппаратного обеспече-ния без необходимости написания аппаратно-зависимого программного кода.Стандарт DirectX основан на наборе интерфейсов Component Object Model (ком-понентная модель объектов), а объекты СОМ могут описываться практически лю-быми языками программирования, например C/C++, Delphi и даже Basic. Попу-лярность DirectX объясняется тем, что его использование обеспечивает потребно-сти разработчиков игр и аппаратных средств: от создания трехмерной графики ипользовательского интерфейса ввода до поддержки сетевых виртуальных миров.

В начале 2007 г. выпущена новая ОС Microsoft Vista (старое названиеLonghorn). В отличие от Windows XP и Windows 2000, основанных на разныхверсиях одного ядра и имевших практически идентичную драйверную модель,Vista предлагает существенные изменения не только в интерфейсной части иAPI, но и в самом сердце системы, в ядре, архитектуре памяти и управлении ре-сурсами. Новая ОС будет поддерживать два типа драйверов (две драйверныемодели), одну, оставленную для совместимости со старыми драйверами, — мо-дель ХР/2000 и вторую — новые драйверы, специально разработанные для Vistaи последующих версий этой OS. Эта новая модель (стандарт на драйверы и ихвзаимодействие с ядром OS и API) называется LDM (Longhorn Driver Model),важнейшей и наиболее интересной ее частью является отвечающая за всю гра-фику LDDM (Longhorn Display Driver Model), т. е. модель дисплейного драйвераVista. Все принципиально новые графические возможности будут реализовы-ваться с помощью новых LDDM драйверов. Драйверы, построенные по староймодели, могут обеспечить только базовый, уже доступный в ХР уровень аппа-ратной графической поддержки.

Новая драйверная модель предусматривает два уровня — базовый и про-двинутый. Базовые драйверы могут быть написаны и для текущего аппаратногообеспечения, не требуя от аппаратуры каких либо функций, специально рассчи-

127

2. Технические средства компьютерной графики

тайных на новые возможности Vista. Эти драйверы будут обеспечивать все ми-нимально необходимое для работы нового API — DX10 и новой драйверной мо-дели, но не всегда оптимально с точки зрения производительности или удобствареализации. Продвинутые драйверы требуют специальной поддержки аппарат-ными средствами некоторых функций, в первую очередь связанных с управле-нием ресурсами, виртуальной памятью и конкурентными потоками заданий отприложений к устройствам, т. е. аппаратные средства должны разрабатываться сучетом спецификаций LDM и понимать некоторые специальные системныеструктуры данных. Тогда новые функции ядра и драйверной модели Vista будутвыполняться наиболее быстрым, надежным и эффективным способом.

2.2.2. Технологии ЗБ-графики

ЗБ-конвейер. Современные графические процессоры для ПК работают стак называемой полигональной графической моделью, в которой любой трех-мерный объект представляется как набор плоских многоугольников, рано илипоздно разбивающихся на простейшие треугольники. Это связано с тем, чтобольшинство алгоритмов закраски изображений требует, чтобы полигоны былиплоскими, т. е. чтобы все их вершины лежали в одной плоскости, а треугольник —плоская фигура по определению. Объект задается вершинами, определяющимиключевые точки, и полигонами, которые образованы линиями, соединяющимивершины. Цвет полигонов формируется по специальным алгоритмам закраски,как правило, с наложением заранее нарисованных плоских изображений — тек-стур. Задача графического процессора сводится к тому, чтобы построить и за-красить как можно больше полигонов за единицу времени. В профессиональныхЗЭ-ускорителях иногда используется более совершенный способ затенения(рендеринга) трехмерных сцен — методом обратной трассировки лучей (RayTracing), требующим гораздо больших вычислительных ресурсов.

Для отображения треугольников используется метод так называемых одно-родных координат, опирающийся на матрицы преобразования и проецирования.Расчет положения любой точки трехмерной сцены на плоскости сводится к ум-ножению вектора исходных координат на эти матрицы. Современный ЦП за се-кунду просчитывает координаты нескольких десятков миллионов вершин. Та-ким образом, затраты времени на расчет геометрии сцены не составляют длясовременного ЦП существенных значений. Проблемы начинаются при закраскеполигонов с учетом освещенности и наложения текстур. Для сокращения числазакрашиваемых треугольников необходимо также решить проблему удаленияневидимых поверхностей, т. е. разделить все полигоны на видимые, закраши-ваемые и невидимые. Существуют чисто геометрические подходы к ее решению(например, тайловый подход, tiling), но чаще всего решение этой проблемы со-вмещают с закраской (техника буфера глубины, Z-buffer).

Z-buffer — часть графической памяти, в которой хранится относительнаяглубина каждого пиксела (значения Z). Z-buffer определяет, какая из многих пе-

128

2.2. Графическая подсистема ЭВМ

рекрывающихся точек наиболее близка к плоскости наблюдения. Так же, какбольшее число битов на пиксел для цвета в буфере кадра соответствует больше-му количеству цветов, доступных в системе изображения, так и количество битна пиксел в Z-буфере соответствует большему числу элементов. ОбычноZ-буфер имеет не менее 16 бит на пиксел для представления информации о глу-бине.

Реалистичность изображения в трехмерной сцене во многом определяетсякачеством текстур — заранее нарисованных изображений, накладываемых наполигоны. Двухмерные изображения текстур хранятся в памяти компьютера илиграфического адаптера в одном из пиксельных форматов. Текстуры могут хра-ниться в сжатом виде на дисках компьютера, перед использованием разворачи-ваются в памяти и могут занимать объем в десятки раз больше первоначальногоразмера. Для каждой вершины указываются ее координаты в плоскости изобра-жения двухмерной текстуры (используются также одномерные и трехмерныетекстуры). При расчете цвета конкретной точки полигона учитывается ее распо-ложение относительно вершин треугольника, и точке присваивается цвет, анало-гичный цвету соответствующей точки текстуры. Для этого каждой точке экрана,попавшей в треугольник, нужно найти соответствие в текстурных координатах(это достаточно сложный процесс) и провести так называемую выборку из тек-стуры — вычислить цвет текстуры в полученной точке. Эта задача достаточносложна, поскольку часто расчетная точка попадает между пикселами изображе-ния текстуры. Поэтому расчеты получаются очень трудоемкими, особенно сучетом наложения нескольких текстур. К тому же текстуры в современных иг-рах часто представлены изображениями высокого разрешения. В итоге доста-точно мощный ЦП даже при низком экранном разрешении способен обработатьне более десятка кадров в секунду. Поэтому ускорители трехмерной графики впервую очередь были созданы для аппаратного ускорения закраски изображений.

Вычисление цвета точки, попавшей между известными точками текстуры,называется фильтрацией. Если используется простейший способ — выбратьточку текстуры, ближайшую к расчетной, — то реализуется поточечная фильт-рация. Если вычисляется взвешенное среднее арифметическое значение для че-тырех ближайших соседних точек — это билинейная фильтрация. Используетсятакже трилинейная фильтрация, когда значение цвета точки вычисляется повосьми соседним точкам. Самым совершенным способом фильтрации являетсяанизотропная (неоднородная по разным направлениям), в которой учитываютсяи «физические размеры» пиксела, т. е. считается не просто проекция центра пик-села экрана на текстуру, а пиксела целиком. Чем выше кратность анизотропнойфильтрации, тем проекция точнее. Использование простых способов фильтра-ции приводит к тому, что текстуры в определенных ситуациях размываются, те-ряют четкость. И, напротив, чем качественнее фильтрация, тем более четко про-рисовываются объекты.

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

129

2. Технические средства компьютерной графики

видеоадаптеры не могли рассчитывать освещенность объектов. Специальныепрограммные модули, используя ЦП, предварительно рассчитывали освещен-ность элементов сцены на основе одного из методов затенения, или рендеринга,специально разработанных для визуализации трехмерных сцен (см. разд. 4.2).В результате создавались карты освещенности (light maps), которые отобража-лись как соответствующие текстуры на изображении трехмерной сцены. Качест-во изображения в этом случае было достаточно высоким, однако только для не-подвижных объектов и при статических источниках освещения, что не годитсядля современных игр, отличающихся высокой динамикой. Чтобы снизить на-грузку на ЦП в видеоадаптеры (по мере роста производительности и сложно-сти), было включено устройство геометрических вычислений — так называемыйблок Transform & Lightning (T&L). Однако требования к реалистичности сценынепрерывно росли, а метод интерполяции по всему полигону был не в состоянииправдоподобно передать фактуру поверхности. Кроме того, большинство трех-мерных объектов строилось из малого числа полигонов с целью экономии вы-числительных ресурсов, и поэтому качество изображения было низким вследст-вие прямолинейности образующих полигоны линий и плоских граней.

Эту проблему решили, применив метод расчета освещенности с учетом век-тора нормали к поверхности, т. е. вектора, перпендикулярного к поверхности вданной точке. Задав еще одну текстуру специального вида (карту нормалей) имодифицировав алгоритм расчета цвета точки, можно радикально улучшитьвнешний вид моделей. Подобный метод называют Bump Mapping (отображениевыпуклостей или шероховатостей). Существует несколько общих типов BumpMapping: Emboss Bump Mapping, Dot3 Bump Mapping, Environment Mapped BumpMapping (EMBM) и True, Reflective Bump Mapping. Самая эффективная методикаиз перечисленных использует Dot3 Bump Mapping. Для полноценной реализацииBump Mapping требует программирования пиксельных конвейеров — перехода отинтерполяции и выборки из текстур к вычислениям по формулам определенияцвета каждого пиксела объекта (а не только вершин). Так впервые появилисьпиксельные шейдеры — последовательности кодов графического процессора,позволяющие программировать его пиксельные конвейеры. Шейдеры заметноповысили реалистичность объектов.

Шейдеры. Шейдером в широком смысле называется программа для визу-ального определения поверхности объекта. Это может быть описание освеще-ния, текстурирования, постобработки и т. п. Программируемые шейдеры быливпервые представлены в RenderMan компании Pixar, там определены несколькотипов шейдеров: light source shaders, surface shaders, displacement shaders, volumeshaders, imager shaders. Эти шейдеры чаще всего программно выполняются ЦП ине имеют полной аппаратной реализации. Затем шейдеры были адаптированыдля графических приложений реального времени. Шейдеры для первых графи-ческих адаптеров писались на так называемом assembly shader language, которыйблизок к ассемблеру для ЦП, но не привязан к конкретному GPU. Его низкийуровень доставляет определенные сложности для понимания кода и программи-

130

2.2. Графическая подсистема ЭВМ

рования. В настоящее время используются специальные языки программирова-ния высокого уровня для создания шейдеров. Компания nVidia давно предлагаетС-компилятор шейдеров — Cg, a Microsoft включила в состав DirectX 9.0с стан-дартный язык — High-Level Shader Language (HLSL).

В целом шейдеры добавили к графическому конвейеру множество новых воз-можностей по трансформации и освещению вершин и индивидуальной обработкепикселов, необходимых для разработчиков конкретных приложений. И все-таки,возможности аппаратных шейдеров до сих пор не раскрыты полностью и, по-видимому, с ростом их функциональностей в каждом новом поколении графиче-ских ускорителей скоро будет достигнут уровень тех самых шейдеров RenderMan,которые когда-то казались недостижимыми для игровых видеоускорителей. Пока вшейдерных моделях реального времени (в определении DirectX 9 API), поддержи-ваемых на сегодняшний день видеоадаптерами, определено лишь два типа шейде-ров: Vertex Shader (вершинный шейдер) и Pixel Shader (пиксельный шейдер). В APIDirectX 10 для ОС Vista к ним добавлен Geometry Shader (геометрический шейдер).

Вершинные шейдеры — программы, исполняемые видеопроцессорами, ко-торые производят математические операции с вершинами полигонов, относя-щихся к полигональной модели ЗО-объекта, иначе говоря, они предоставляютвозможность выполнять программируемые алгоритмы по изменению парамет-ров вершин и их освещению (естественное развитие блока T&L). Каждая вер-шина определяется набором атрибутов: координаты, цвет, нормаль, текстурныекоординаты и т. п. В процессе работы вершинные шейдеры в зависимости оталгоритмов изменяют эти данные, например вычисляя и записывая новые коор-динаты и/или цвет, т. е. входными данными вершинного шейдера является ин-формация об одной вершине геометрической модели, обрабатываемой в данныймомент. Обычно это пространственные координаты, нормаль, компоненты цветаи текстурные координаты. Результаты выполнения шейдера служат входнымидля дальнейшей части конвейера, затем растеризатор делает линейную интерпо-ляцию входных данных для поверхности треугольника и для каждого пикселаисполняет соответствующий пиксельный шейдер.

До появления современных видеопроцессоров программисты либо исполь-зовали собственные программы и алгоритмы, изменяющие параметры вершин,которые исполнялись ЦП (программный T&L), либо фиксированные алгоритмыв видеопроцессорах с аппаратной реализацией трансформации и освещения (ап-паратный T&L). Первая же шейдерная модель DirectX означала большой шагвперед от фиксированных функций по трансформации и освещению вершин кполностью программируемым алгоритмам. В современных видеопроцессорах свершинами при помощи вершинных шейдеров можно делать очень много слож-ных геометрических преобразований. Особое внимание вершинным шейдерамуделяется при использовании профессиональных видеокарт.

Возможности шейдеров росли от версии к версии. Начиная с версии 3.0,(включены в API DirectX 9c) шейдеры почти не ограничивают методы програм-мирования, позволяя использовать в вычислениях текстуры и задавать уникаль-

131

2. Технические средства компьютерной графики

ные свойства вершин, т. е. вершинный блок графического процессора сейчасмало чем уступает по функциональности ЦП.

Пиксельные шейдеры — программы расчета значений цвета и яркости от-дельных пикселов. Задачи вершинных шейдеров при необходимости можно ре-шать на ЦП. С геометрическими расчетами мощный процессор справится безпроблем. Но при выполнении пиксельного шейдера даже сверхмощный CPUзадумается надолго, поскольку здесь происходит интенсивный обмен с памятьюи сложные расчеты с использованием арифметики с плавающей точкой.Пиксельные шейдеры — это программы, выполняемые после растеризации длякаждого пиксела изображения. Они производят выборку из текстур и/или мате-матические операции над цветом и значением глубины (Z-buffer) пикселов. Всеинструкции пиксельного шейдера выполняются попиксельно после того, какоперации с трансформированием и освещением геометрии завершены. Пиксель-ный шейдер в итоге своей работы выдает конечное значение цвета пиксела иZ-значение для последующего этапа графического конвейера, блендинга. Наи-более простой пример пиксельного шейдера — мультитекстурирование, являю-щееся смешением нескольких текстур (diffuse и lightmap, например), и наложе-ние результата вычислений на фрагмент.

До появления видеопроцессоров с аппаратной поддержкой пиксельныхшейдеров у разработчиков были лишь возможности по обычному мультитексту-рированию и альфа-блендингу, что существенно ограничивало возможности помногим визуальным эффектам и не позволяло делать многое из того, что сейчасдоступно. И если с геометрией еще что-то можно было сделать программно, то спикселами — нет. Ранние версии DirectX (до 7.0 включительно) были ориенти-рованы на повершинные расчеты и предлагали крайне ограниченную функцио-нальность попиксельных расчетов. Пиксельные шейдеры сделали возможнымрасчет освещения любых поверхностей попиксельно, используя заданные разра-ботчиками материалы. Пиксельные шейдеры версии 1.1 (в понимании DirectX)уже могли не только делать мультитекстурирование, но и многое другое. Однакобольшинство игр, использующих шейдеры версии SM1, просто использовалитрадиционное мультитекстурирование на большинстве поверхностей, выполняяболее сложные пиксельные шейдеры лишь на части поверхностей, для созданияразнообразных спецэффектов (общеизвестно, что вода до сих пор является наи-более частым примером использования пиксельных шейдеров в играх). Обра-боткой пиксельных шейдеров практически всегда занимаются пиксельныеконвейеры графического процессора. Использование пиксельных шейдеров по-зволило реализовать расчет освещенности объектов методом Фонга, обеспечи-вающим достаточно высокую реалистичность. С появлением шейдеров версииSM3 и поддерживающих их видеопроцессоров возможности пиксельных шейде-ров возросли уже до того, чтобы с их помощью делать даже трассировку лучей(raytracing), пусть и с некоторыми ограничениями.

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

132

2.2. Графическая подсистема ЭВМ

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

Texture Mapping (наложение текстур). Традиционно термином «texturemapping» в трехмерном моделировании называют процесс наложения изображе-ния текстуры на объект (текстура как бы натягивается на объект) для приданияему соответствующего внешнего вида. Наложение текстур без каких-либо эф-фектов отличается простотой реализации, обработка не требует значительныхвычислительных мощностей, возможно использование и отображение практиче-ски любых изображений.

MIP mapping (MIP-текстурирование). Multum in Parvo (с лат. — много водном) — метод улучшения качества текстурных изображений при помощи тек-стур с разным разрешением для различных объектов одного и того же изобра-жения в зависимости от их размера и глубины. Таким образом, в памяти хранят-ся несколько копий изображения текстуры в различных разрешениях. В резуль-тате этого изображение остается качественным при приближении к объекту ипри удалении от него. При использовании этого метода формируется изображе-ние высокого разрешения для близко расположенных объектов и изображениенизкого разрешения при удалении объектов. MIP mapping снижает мерцание и«зашумленность» изображения, возникающие при texture mapping, повышаетэффективность использования текстур.

Суть MIP-текстурирования заключается в предварительном или динамиче-ском создании набора текстур с различным разрешением и уровнем детализациина основе базовой текстуры максимального разрешения. Цвет каждого текселя(элемент текстуры — определенный пиксел в текстуре) текстуры с более низкойдетализацией выбирается путем аппроксимации цвета четырех ближайших тек-селей текстуры предыдущего (более высокого) уровня детализации. При по-строении трехмерной сцены определяется удаленность полигона от картиннойплоскости и соответственно этому значению накладывается текстура с заданнымразрешением. В настоящее время для выбора конкретного уровня детализациииспользуют в основном динамический расчет.

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

Procedural Textures (процедурные текстуры). Эти текстуры создаются на ос-нове аналитической математической модели. Такие текстуры не занимают в ви-деопамяти места, они генерируются пиксельным шейдером «на лету», каждый

133

2. Технические средства компьютерной графики

их элемент (тексель) получается в результате исполнения соответствующих ко-манд шейдера. Наиболее часто встречающиеся процедурные текстуры: разныевиды шума (например, fractal noise), дерево, вода, лава, дым, мрамор, огонь, т. е.те, которые сравнительно просто можно описать математически. Процедурныетекстуры также позволяют использовать анимированные текстуры при помощивсего лишь небольшой модификации математических формул. Например, изо-бражения облаков, созданные подобным образом, выглядят вполне правдопо-добно и в динамике, и в статике.

Преимущества процедурных текстур также включают в себя неограничен-ный уровень детализации каждой текстуры. При этом не нужна пикселизация,текстура всегда генерируется под необходимый для ее отображения размер.Большой интерес представляет анимированный Normal Mapping, с его помощьюможно сделать волны на воде без применения предварительно просчитанныханимированных текстур. Еще одно достоинство таких текстур состоит в том, чточем больше их применяется в продукте, тем меньше работы для художников(правда, больше для программистов) над созданием обычных текстур.

Bump Mapping/Specular Bump Mapping (бамп мэппинг). Это техника модели-рования неровностей или микрорельефа на плоской поверхности без большихвычислительных затрат и изменения геометрии. Для каждого пиксела поверхностивыполняется вычисление освещенности, исходя из значений в специальной кар-те нормалей, называемой normal map. Это обычно 8-битная черно-белая текстураи значения цвета текстуры не накладываются как обычные текстуры, а исполь-зуются для описания неровности поверхности. Значение цвета каждого текселяопределяет высоту соответствующей точки рельефа, большие значения означа-ют большую высоту над исходной поверхностью, или наоборот.

Степень освещенности точки зависит от угла падения лучей света. Чемменьше угол между нормалью и лучом света, тем больше освещенность точкиповерхности, т. е. если взять ровную поверхность, то нормали в каждой ее точкебудут одинаковыми и освещенность также будет одинаковой. Если поверхностьнеровная, то нормали в каждой точке будут разными и освещенность будет раз-личная — в одной точке она будет больше, в другой меньше. Отсюда и принципbump mapping — для моделирования неровностей в разных точках полигона за-даются нормали к поверхности, которые учитываются при попиксельном вы-числении освещенности. В результате получается более натуральное изображе-ние поверхности, bump mapping придает поверхности большую детализацию,такую, как неровности на кирпиче, поры на коже и на других поверхностях безувеличения геометрической сложности модели, так как расчеты ведутся на пик-сельном уровне. Причем при изменении положения источника света корректноизменяется и освещенность этих неровностей.

Конечно, расчет освещенности в вершинах намного проще с точки зрениявычислений, но слишком нереалистично это выглядит, особенно при малом чис-ле полигонов в геометрии. Интерполяция цвета для каждого пиксела не можетвоспроизвести большие, чем рассчитанные значения для вершин, т. е. пикселы в

134

2.2. Графическая подсистема ЭВМ

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

Необходимо также напомнить о составляющих освещенности. Цвет точкиповерхности рассчитывается как сумма ambient, diffuse и specular составляющихот всех источников света в сцене. Вклад в это значение каждого источника светазависит от расстояния между источником света и точкой на поверхности.

Равномерная (ambient) составляющая освещения — аппроксимация гло-бального освещения, фоновое освещение для каждой точки сцены, при кото-ром все точки освещаются одинаково и освещенность не зависит от другихфакторов.

Рассеянная, или диффузная (diffuse), составляющая освещения зависит отположения источника освещения и от нормали поверхности. Эта составляющаяосвещения разная для каждой вершины объекта, что придает им объем. Светуже не заполняет поверхность ровным, одинаковым оттенком.

Бликовая (specular) составляющая освещения проявляется в бликах отраже-ния лучей света от поверхности. Для ее расчета помимо вектора положения ис-точника света и нормали необходимы еще два вектора: вектор направлениявзгляда и вектор отражения. Бликовая модель освещения впервые была предло-жена Фонгом (Phong Bui-Tong). Блики существенно увеличивают реалистич-ность изображения, поскольку практически все реальные поверхности в той илииной степени отражают свет, поэтому бликовая составляющая очень важна, осо-бенно при моделировании динамики, так как по бликам сразу видно изменениеположения камеры или самого объекта. Существуют другие более сложные спо-собы вычисления этой составляющей, учитывающие распределение энергиисвета, его поглощение материалами и рассеивание в виде диффузной состав-ляющей.

В ранних видеокартах (на базе чипов nVidia Riva TNT) использовались не-которые виды bump mapping (Emboss Bump Mapping), однако методы их реали-зации в то время были крайне примитивны и широкого применения не получи-ли. Следующим известным видом был Environment Mapped Bump Mapping(EMBM), затем появился Normal Mapping, видеопроцессоры того времени тре-бовали три прохода для реализации алгоритма, так как они были ограниченыодновременным использованием только двух текстур. Начиная с версии процес-сора NV20 (GeForce3) появилась возможность выполнять алгоритм за один про-ход, используя пиксельные шейдеры. Позднее стали применять более эффектив-ные методы.

Normal Mapping (нормалмэппинг). Это улучшенная разновидность техникиbump mapping, описанной выше, ее расширенная версия. Bump mapping был раз-

135

2. Технические средства компьютерной графики

работай Блинном (Blinn) еще в 1978 г. Нормали поверхности при этом методеналожения рельефа изменяются на основе информации из карты нормалей(normal map). В то время как bump mapping всего лишь изменяет существующуюнормаль для точек поверхности, normal mapping полностью заменяет нормалипутем выборки их значений из специально подготовленной карты нормалей(normal map). Эти карты обычно являются текстурами с сохраненными в них,заранее просчитанными значениями нормалей, представленными в виде компо-нентов цвета RGB (существуют и специальные форматы для карт нормалей, втом числе со сжатием), в отличие от 8-битных черно-белых карт высот в bumpmapping.

Как и bump mapping, normal mapping является достаточно простым методомдобавления детализации к моделям сравнительно низкой геометрической слож-ности без использования сложной реальной геометрии, только более продвину-тый. Одно из наиболее интересных применений этого метода — существенноеувеличение детализации моделей с малым числом полигонов при помощи картнормалей, полученных обработкой такой же модели высокой геометрическойсложности. Карты нормалей содержат более подробное описание поверхностипо сравнению с bump mapping и позволяют представлять более сложные формы.

Карты нормалей по сравнению с простым использованием большого коли-чества полигонов представляют более эффективный способ для хранения под-робных данных о поверхностях. Однако их существенным ограничением являет-ся то, что они не очень хорошо подходят для крупных деталей, поскольку normalmapping на самом деле не добавляет полигонов и не изменяет форму объекта, онтолько создает видимость этого. Это всего лишь моделирование деталей на ос-нове расчета освещенности на пиксельном уровне. На крайних полигонах объек-та и при больших углах наклона поверхности это очень хорошо заметно. Поэто-му наиболее целесообразно применение normal mapping для создания модели смалым числом полигонов, достаточно детализированной для того, чтобы сохра-нялась основная форма объекта, и использование карты нормалей для добавле-ния более мелких деталей.

Карты нормалей обычно создаются на основе двух версий модели: с малыми большим числом полигонов. Модель с малым числом полигонов состоит изосновных форм объекта и имеет простое геометрическое описание, а модель сбольшим числом полигонов содержит все необходимое для максимальной дета-лизации. Затем при помощи специальных утилит карты сравниваются друг сдругом, рассчитывается разница и сохраняется в текстуре, называемой картойнормалей. При ее создании дополнительно можно использовать и bump map дляочень мелких деталей, которые нельзя смоделировать даже в модели с большимчислом полигонов (поры кожи, различные мелкие углубления и т. п.).

Карты нормалей представляются в виде обычных RGB текстур, где компо-ненты цвета R, G и В (от 0 до 1) интерпретируются как координаты X, Y и Z. Каж-дый тексель в карте нормалей представляется как нормаль точки поверхности.Карты нормалей бывают двух видов: с координатами в глобальной системе ко-

136

2.2. Графическая подсистема ЭВМ

ординат или в локальной системе координат треугольника. Чаще применяетсявторой вид карт.

Современные приложения реального времени часто проигрывают предвари-тельно просчитанной анимации по качеству изображения. Это касается преждевсего качества моделирования освещения и геометрической сложности сцен.Количество вершин и треугольников, рассчитываемых в реальном времени, ог-раничено, поэтому очень важны методы, позволяющие снизить сложность гео-метрии. До normal mapping было разработано несколько таких методов, но мо-дели с малым числом полигонов, даже при использовании bump mapping, изо-бражаются хуже более сложных моделей. Normal mapping, несмотря на прису-щие ему недостатки, заметно улучшает итоговое качество рендеринга, сохраняянизкую геометрическую сложность моделей. Сейчас данный метод весьма попу-лярен и используется во многих компьютерных играх благодаря высокому ре-зультирующему качеству изображения и снижению требований к геометриче-ской сложности моделей.

У метода normal mapping есть один недостаток — увеличение сложноститекстур. Карта нормалей сильно влияет на то, как будет выглядеть объект, и онадолжна быть достаточно высокого разрешения, поэтому требования к видеопа-мяти и ее пропускной способности удваиваются (в случае несжатых карт норма-лей). Однако пропускная способность видеопамяти и ее объем непрерывно рас-тут, разработаны методы сжатия специально для карт нормалей, поэтому этиограничения практически не являются существенными. Гораздо важнее эффект,который дает метод normal mapping, позволяя использовать модели со сравни-тельно малым числом полигонов, снижая требования к памяти для хранениягеометрических данных и повышая производительность.

Displacement Mapping (карта смещения). Наложение карт смещения являетсяметодом добавления деталей к трехмерным объектам. В bump mapping и другихпопиксельных методах картами высот корректно моделируется только освещен-ность точки, но не изменяется ее положение в пространстве. Это дает лишь ил-люзию увеличения сложности поверхности, а карты смещения позволяют полу-чить сложные ЗО-объекты из вершин и полигонов без ограничений, присущихпопиксельным методам. Этот метод изменяет положение вершин треугольников,сдвигая их по нормали на величину, исходя из значений в картах смещения.

Карта смещения — обычно черно-белая текстура, и значения в ней исполь-зуются для определения высоты каждой точки поверхности объекта подобноbump map. Часто карты смещения применяются (в этом случае они называютсяи картами высот) для создания земной поверхности с холмами и впадинами. По-скольку рельеф местности описывается двухмерной картой смещения, его отно-сительно легко деформировать при необходимости, так как это потребует всеголишь модификации карты смещения и рендеринга поверхности на ее основе вследующем кадре.

Большим преимуществом наложения карт смещения является не простовозможность добавления деталей к поверхности, а практически полное создание

137

2. Технические средства компьютерной графики

объекта. При этом модель объекта с малым числом полигонов разбивается (тес-селируется) на большее количество вершин и полигонов. Вершины, полученныев результате тесселяции, затем смещаются по нормали, исходя из значения, про-читанного в карте смещения. В итоге из простого объекта, используя соответст-вующую карту смещения, получаем сложный ЗБ-объект. Число треугольников,созданных при тесселяции, должно быть достаточно большим для того, чтобыпередать все детали, задаваемые картой смещений. Иногда дополнительные тре-угольники создаются автоматически, используя N-патчи или другие методы.Карты смещения лучше использовать совместно с методом bump mapping длясоздания мелких деталей, где достаточно правильного попиксельного расчетаосвещенности.

Наложение карт смещения впервые появилось в DirectX 9.O. Это была пер-вая версия данного API, которая поддерживала метод Displacement Mapping.В DX9 поддерживается два типа наложения карт смещения: filtered и presampled.Filtered метод отличается тем, что позволяет использовать мип-уровни для картсмещения и применять для них трилинейную фильтрацию. В этом методе мип-уровень карты смещения выбирается для каждой вершины на основе расстоянияот вершины до камеры, т. е. уровень детализации выбирается автоматически.Таким образом достигается почти равномерное разбиение сцены, когда тре-угольники имеют примерно одинаковый размер.

Наложение карт смещения можно, по существу, считать методом сжатиягеометрии. Использование карт смещения снижает объем памяти, требуемыйдля определенной детализации ЗО-модели. Громоздкие геометрические данныезамещаются простыми двухмерными текстурами смещения, обычно 8-битнымиили 16-битными. Это снижает требования к объему памяти и пропускной спо-собности, необходимой для доставки геометрических данных видеопроцессору,а эти ограничения являются одними из основных для современных систем. Илиже при равных требованиях к пропускной способности и объему памяти нало-жение карт смещения позволяет отображать намного более сложные геометри-ческие ЗО-модели. Применение моделей меньшей сложности, когда вместо со-тен тысяч или миллионов треугольников используют десятки тысяч, позволяетускорить их анимацию или улучшить, применив более сложные комплексныеалгоритмы и методы вроде имитации тканей (cloth simulation).

Другое преимущество карт смещения состоит в том, что их применение пре-вращает сложные полигональные трехмерные сетки в несколько двухмерных тек-стур, которые проще поддаются обработке. Кроме того, вместо сравнительносложных алгоритмов сжатия трехмерных сеток можно применять обычные мето-ды сжатия текстур, даже подобные JPEG. А для процедурного создания моделейЗО-объектов можно использовать обычные алгоритмы для двухмерных текстур.

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

138

2.2. Графическая подсистема ЭВМ

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

Parallax Mapping/Offset Mapping. После метода normal mapping, представ-ленного в 1984 г., был разработан метод рельефного текстурирования (ReliefTexture Mapping), представленный Olivera и Bishop в 1999 г. Этот метод для на-ложения текстур основан на информации о глубине. Метод не нашел примене-ния в играх, но его идея способствовала продолжению работ над методомparallax mapping и его улучшением. Kaneko в 2001 г. представил метод parallaxmapping, который стал первым эффективным методом для попиксельного ото-бражения эффекта параллакса. В 2004 г. Welsh продемонстрировал применениеметода parallax mapping на программируемых видеопроцессорах. У этого методамного различных названий: Parallax Mapping, Offset Mapping, Virtual Displace-ment Mapping, Per-Pixel Displacement Mapping. Далее применяется первое и ос-новное название.

Parallax Mapping — одна из альтернатив методам bump mapping и normalmapping, которая дает еще большее представление о деталях поверхности, болеенатуралистичное отображение ЗО-поверхностей также без слишком большихпотерь производительности. Этот метод похож одновременно на наложение картсмещения и normal mapping (нечто среднее между ними). Метод также предна-значен для отображения большего количества деталей поверхности, чем имеетсяв исходной геометрической модели. Отличие состоит лишь в том, что данныйметод искажает наложение текстуры, изменяя текстурные координаты так, чтоповерхность выглядит выпуклой, хотя в реальности она плоская и не изменяет-ся. Иными словами, метод parallax mapping — метод аппроксимации эффектасмещения точек поверхности в зависимости от изменения точки зрения.

В этом методе сдвигаются текстурные координаты (поэтому его иногда на-зывают offset mapping) так, чтобы поверхность выглядела более объемной. Идеяметода состоит в том, чтобы возвращать текстурные координаты той точки, гдевидовой вектор пересекает поверхность. Это требует просчета лучей (рейтрей-синг) для карты высот, но если она не имеет сильно изменяющихся значений(гладкая или плавная), то можно обойтись аппроксимацией. Данный метод эф-фективен для поверхностей с плавно изменяющимися высотами, без просчетапересечений и больших значений смещения. Подобный простой алгоритм отли-чается от normal mapping всего тремя инструкциями пиксельного шейдера: двематематические инструкции и одна дополнительная выборка из текстуры. Послетого, как вычислена новая текстурная координата, она используется дальше длячтения других текстурных слоев: базовой текстуры, карты нормалей и т. п. Ме-тод parallax mapping на современных видеопроцессорах почти также эффекти-

139

2. Технические средства компьютерной графики

вен, как обычное наложение текстур, а в результате получается более реали-стичное отображение поверхности по сравнению с методом normal mapping.

Однако использование parallax mapping ограничено картами высот с не-большой разницей значений. Резкие неровности обрабатываются алгоритмомнекорректно, появляются различные артефакты, «плавание» текстур и пр. Былоразработано несколько модифицированных методов для улучшения техникиparallax mapping. Несколько исследователей (Yerex, Donnelly, Tatarchuk,Policarpo) предложили новые методы, улучшающие начальный алгоритм. Почтивсе идеи этих методов основаны на трассировке лучей в пиксельном шейдередля определения пересечений деталей поверхностей друг другом. Модифициро-ванные методы получили несколько разных названий: Parallax Mapping withOcclusion, Parallax Mapping with Distance Functions, Parallax Occlusion Mapping.Для краткости будем их все называть Parallax Occlusion Mapping.

Методы Parallax Occlusion Mapping включают еще и трассировку лучей дляопределения высот и учета видимости текселов. Поскольку при взгляде под угломк поверхности текселы загораживают друг друга, то учитывая это, можно доба-вить к эффекту параллакса больше глубины. Получаемое изображение становитсяреалистичнее и такие улучшенные методы можно применять для более глубокогорельефа, он отлично подходит для изображения кирпичных и каменных стен, мос-товой и подобных поверхностей. Главное отличие метода Parallax Mapping от ме-тода Displacement Mapping состоит в том, что все расчеты являются попиксель-ными, а не повершинными. Именно поэтому метод имеет названия Virtual Dis-placement Mapping и Per-Pixel Displacement Mapping.

Метод Parallax Mapping позволяет эффективно отображать детализированныеповерхности без миллионов вершин и треугольников, которые потребовались быпри геометрической реализации. При этом сохраняется высокая детализация(кроме силуэтов/граней) и значительно упрощаются расчеты анимации. Этотметод проще, чем метод реальной геометрии, в нем используется значительноменьшее количество полигонов, особенно в случаях с очень мелкими деталями.

Дополнительное преимущество метода состоит в том, что карты высот мо-гут динамически изменяться (поверхность воды с волнами, дырки от пуль в сте-нах и многое другое). К недостаткам данного метода можно отнести отсутствиегеометрически правильных силуэтов (краев объекта), поскольку алгоритм по-пиксельный и не является настоящим Displacement Mapping. Однако он снижаеттребования к производительности в результате уменьшения затрат на трансфор-мацию, освещение и анимацию геометрии и экономит видеопамять, необходи-мую для хранения больших объемов геометрических данных.

Композитные текстуры. Текстуры высокого разрешения занимают огром-ное место в памяти. Например, текстура размером 2048 х 2048 пикселов при глу-бине цветности 32 бита достигает объема 16 Мбайт. Очевидно, что затраты ви-деопамяти при использовании таких текстур будут очень большие, и придетсяхранить часть текстур в ОП, что дополнительно нагружает шину видеоадаптера,занятую передачей данных для обсчета полигонов.

140

2.2. Графическая подсистема ЭВМ

Для решения этой проблемы была предложена технология так называемыхкомпозитных текстур, или текстур с детализацией. При таком подходе требуетсясоздать всего две текстуры: базовую и детальную. Базовая текстура содержитосновные элементы и как бы создает общий фон, детальная текстура — лишьмелкие элементы, необходимые при рассмотрении объекта вблизи. Обе тексту-ры смешиваются, причем степень их взаимовлияния определяется исходя израсстояния до плоскости проецирования.

Алгоритм наложения текстур может реализовываться по-разному в зависи-мости от выбора разработчиков. Например, часто используют смешение с по-мощью альфа-канала или мультитекстурирования. В результате на большом рас-стоянии видна только базовая текстура, а по мере приближения объекта к кар-тинной плоскости начинает проявляться детальная текстура. Пошаговый методреализации основан на механизме MIP mapping и мультитекстурировании, т. е. спомощью механизма LOD определяется уровень MIP-каскада для выборки соот-ветствующей детальной структуры (напомним, что базовая текстура остаетсянеизменной). Затем детальная структура накладывается на базовую — и резуль-тат отправляется в буфер кадра. Очевидно, что при такой методике уровень де-тализации меняется дискретно, скачками. Будет ли это заметно пользователю,зависит от искусства разработчиков.

Смешение с помощью альфа-канала позволяет организовать динамическоеизменение уровня детализации. Реализовать этот алгоритм достаточно просто,построив функцию зависимости степени прозрачности детальной текстуры отуровня LOD (Level-of-Detail — уровень детализации) и направления движенияобъекта (к картинной плоскости или в глубину).

Трехмерные текстуры. Элемент трехмерной текстуры представляет собойнекоторый кубический объем. Каждая точка внутри текстурного куба имеетприсвоенный ей цвет. Конечно, на самом деле трехмерный объект в компьютер-ной графике состоит из конечного числа точек (текселов), и потому его удобнопредставлять как конечный набор слоев (плоских текстур), текселы которых об-разуют узловые точки трехмерной текстуры.

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

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

Важным свойством трехмерных текстур является способность реалистичноимитировать материалы с характерной внутренней структурой. Например, для

141

2. Технические средства компьютерной графики

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

Методы фильтрации текстур. Вычисление цвета точки полигона, попав-шей между жирными точками текстуры, называется фильтрацией. Очевидно,что цвет пиксела проекции трехмерного объекта на экран должен однозначноопределяться цветом тексела соответствующей текстуры. Однако это правилодействует только в простых случаях при направлениях проецирования, близкихк нормали, и соответствующем удалении от картинной плоскости. Дело в том,что как пиксел, так и тексел только в математическом смысле именуются точка-ми. Физически они имеют вполне конкретные размеры и выглядят как окружно-сти, диаметр которых зависит от разрешения экрана монитора и текстуры соот-ветственно. Как только угол проецирования выходит за определенные рамки,бывает, что на один пиксел проецируются два и более тексела, так что проекциястановится близкой к овалу. Если же объект очень близок к плоскости проеци-рования, может произойти обратное — один тексел будет проецироваться нанесколько пикселов.

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

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

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

142

2.2. Графическая подсистема ЭВМ

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

Трилинейная фильтрация. Этот метод представляет собой комбинацию тех-нологий MIP mapping и билинейной фильтрации (билинейной по текстуре и ли-нейной по текстурам). В технологии MIP mapping применяют текстуры с разнойстепенью детализации (и разным разрешением) в зависимости от удаленностиполигона от плоскости проецирования. При трилинейной фильтрации берутсядве соседние текстуры, одна из которых содержит текселы, попадающие в про-екцию, а другая является ближайшей к ней по удаленности, и к каждой приме-няют билинейную фильтрацию. В итоге аппроксимация цвета проводится ужепо восьми текселам и результат выглядит ближе к реальности, так как текстурызаранее обсчитаны для определенных расстояний. Чтобы не было видно резкихскачков при переходах от одного MIP-уровня к другому, видеопроцессор опре-деляет линейную комбинацию цветов, вычисленных по ближним и по дальнимтекстурам.

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

Внутри куба плоскость проекции может располагаться как угодно — в идеа-ле будут учтены все точки, попадающие в проекцию. В зависимости от размераграни куба может быть обсчитано от 8 до 32 текселов для определения цветаединственного пиксела. Результат действительно близок к фотореалистичному,но и расход ресурсов GPU и видеопамяти очень велик.

Environment Map (EM). Environment Map — карта окружающей среды(иногда ее называют картой отражения) — служит для отражения в объектесвойств окружающего пространства. Карты отражения либо создаются заранеепри разработке игры (обычно используются сферические карты среды), либо входе построения трехмерной сцены (кубические карты среды).

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

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

143

2. Технические средства компьютерной графики

применяется технология ЕМВМ. Затем попиксельное состояние окружения за-писывается в кубическую (Cube Map) текстурную карту, которая и накладывает-ся на объект.

Сжатие текстур. Повышение разрешения текстур до 2048x2048 точек при32-битном цветовом охвате вызвало существенное возрастание требований кобъему памяти, выделяемой для хранения текстурных карт. Ведь на основе базо-вой текстуры, согласно многим технологиям, генерируются другие уровни тек-стурных карт. Кроме того, часто применяют и прочие карты: освещенности, рель-ефа, окружающей среды и т. д. Очевидно, что хранить большой объем данных вобычном виде становится нерациональным. Разработчики видеоадаптеров предла-гают использовать различные методы сжатия данных для текстурных карт. Здесьсущественны два требования: сжатие практически без потери качества и обработ-ка данных «на лету» в процессе преобразования и наложения текстур.

Первой по-настоящему общепризнанной технологией сжатия текстур сталатехнология S3TC (S3 Texture Compression). В зависимости от характера тексту-ры степень сжатия достигает 6:1. Распаковка текстур производится «на лету» ивыполняется как программными, так и аппаратными средствами. Это обстоя-тельство привлекло интерес фирмы Microsoft, и она лицензировала новую тех-нологию у фирмы S3, включив механизм сжатия текстур в библиотеку DirectX(технология получила обозначение DXTC).

Вскоре появились технологии сжатия, альтернативные S3TC — технологияFXT1 от фирмы 3Dfx, объявленная открытой. Ее преимущества заключаются вбольшем коэффициенте сжатия, достигающем 8:1, и меньшей потере качествапри компрессии текстур.

Несколько особняком стоит технология VTC (Volume Texture Compression)от фирмы nVidia. Она ориентирована исключительно на сжатие трехмерныхтекстур. Известно, что ЗО-текстуры являются самыми требовательными к объе-му видеопамяти, однако взамен они обеспечивают великолепное качество изо-бражения, близкое к фотореалистичному.

Методы улучшения изображения. Дефекты изображения, возникающиепри рендеринге трехмерной сцены, носят различный характер. Обычно про-странственные искажения выражаются в ступенчатости прямолинейных границобъектов, потере мелких деталей изображения, появлении муара (регулярнойструктуры на изображении, не предусмотренной разработчиками), искажениитекстур. Особым видом являются дефекты, связанные с непреднамеренной ани-мацией сцены, например мерцание объектов, обусловленное постоянными пере-ключениями между ступенями LOD.

Технологии устранения ступенчатости прямолинейных границ объектов по-лучили название антиалиасинг, или сглаживание. Пространственные дефектысглаживаются либо локальными, либо глобальными методами. Глобальные ме-тоды применяют ко всей области картинной плоскости. До недавнего времениосновной в ЗБ-ускорителях фирмы ATI была технология сглаживания дефектовсцены (FSAA — Full scene anti-aliasing), использующая метод масштабирования

144

2.2. Графическая подсистема ЭВМ

изображения. Видеоадаптер в этом случае выполняет рендеринг сцены с разре-шением, превосходящим необходимое экранное разрешение, а затем произво-дится уменьшение изображения, при этом каждый пиксел обрабатывается наоснове маски, соответствующей коэффициенту масштабирования. Например,при маске 2 х 2 и экранном разрешении 800 х 600 точек необходимо выполнитьрендеринг сцены в разрешении 1600 х 1200. Затем каждому пикселу в реальномизображении будет присвоен цвет, получившийся в результате смешения цветовсоседних пикселов маски 2 х 2 в виртуальном разрешении. При этом сглажива-ются не только ступеньки, улучшается и цвет всех текстур, переходы становятсяболее плавными. Однако использование этого способа снижает производитель-ность минимум в 4 раза. Метод антиалиасинга, описанный выше, многим знакомкак суперсэмплинг (supersampling, SSAA), точнее, Ordered Grid Supersampling,OGSS. Сэмпл — избранный участок изображения, содержащий 1,4, 16 и т. д.пикселов, используемый для обработки объекта и сглаживания. Существует ещеодин метод суперсэмплинга — Rotated Grid Supersampling, RGSS. При его при-менении рассчитывается п версий изображения, смещенных на небольшое рас-стояние относительно исходного изображения в различных направлениях, а по-том цвета субпикселов дочерних изображений, которые имеют одинаковые ко-ординаты, смешиваются для получения цвета итогового пиксела.

Локальные методы применяют к границам объектов, т. е. текселы текстуры, яв-ляющиеся краевыми в полигоне, обрабатываются таким образом, чтобы исключитьступенчатость. Широко распространенной является технология усреднения поплощади. Для этого определяется весовое соотношение текселов, чьи проекциипришлись на данный пиксел. Затем их цвета смешиваются в соответствии с весо-выми коэффициентами и присваиваются данному пикселу. Такой способ сглажива-ния обычно называют мультисэмплинг (multisampling, MSAA). Это тот же супер-сэмплинг, только применяемый для обработки границ полигонов, а не всего изо-бражения. Действительно, антиалиасинг нужен для сглаживания краев полигонов,так зачем производить ту же самую работу на поверхности каждого полигона?Смысл мультисэмплинга (раньше этот метод назывался HRAA — High ResolutionAntialiasing) состоит в том, что не нужно обрабатывать все до единого пиксела наэкране, ведь подавляющее большинство из них находится внутри полигона, а не награнице. Конечно, отказ от сглаживания всей картинки ухудшает качество выводатекстур, но с этой проблемой должна бороться билинейная, трилинейная и анизо-тропная фильтрации. Технически мультисэмплинг происходит так. Видеопроцессорнаходит пикселы, расположенные на границе полигонов. В зависимости от уровнямультисэмплинга процессор делит пикселы на 2, 4, 8 и т. д. субпикселов и усредня-ет цвета каждого из них. В итоге наблюдается не такое сильное падение производи-тельности, как при обычном суперсэмплинге, поскольку, во-первых, процессорсэмплирует только грани между полигонами и, во-вторых, он использует не новуютекстуру для каждого пиксела, а одну и ту же. Особенность реализации мультисэм-плинга у каждого из производителей видеокарт состоит в том, как именно процес-сор выбирает пикселы и разбивает их на субпикселы.

145

2. Технические средства компьютерной графики

Современные графические процессоры компании nVidia основаны на тех-нологии улучшения качества изображения Intellisample 4.0, которая поддержи-вает два режима сглаживания — адаптивного суперсэмплинга и адаптивногомультисэмплинга с учетом прозрачности, которые повышают качество и ско-рость сглаживания. Режимы адаптивного суперсэмплинга и мультисэмплинга сучетом прозрачности используют дополнительные тексельные сэмплы и этапысглаживания для улучшения качества объектов, состоящих из тонких линий, та-ких как звенья цепи, деревья и растительность. Такие типы объектов обычностроятся на базе очень простых моделей полигонов (или даже на одном полиго-не). Сложность результирующего изображения (группы ветвей или растений)зависит от текстуры, накладываемой на полигон. Традиционный вид сглажива-ния не давал таких результатов, так как края ветвей или растений обычно нахо-дятся внутри проецируемой текстуры. К пикселам внутри полигона не приме-няются существующие на сегодня методы сглаживания.

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

Компания ATI пошла другим путем. Вместо того чтобы бороться с некаче-ственным сглаживанием путем наращивания количества сэмплов, она решилаисказить решетку, по которой размещаются субпикселы, эта технология получи-ла название Smooth Vision. Такой случайный отбор местоположения сэмпла по-зволяет намного лучше сгладить картинку, при этом сохраняя вполне приемле-мый уровень производительности.

В графическом процессоре R420 компании ATI реализован новый алгоритмсглаживания, называемый Temporal Antialiasing (временное сглаживание). Сутьтехнологии заключается в улучшении качества сглаживания благодаря особенно-стям человеческого зрения, которое обладает свойством инерционности. При рен-деринге сцены положение субпикселов меняется так, что на каждом четном и не-четном кадре субпикселы смещаются относительно начального положения. В итогеглаз усредняет два соседних кадра и создается впечатление, что использовано в2 раза больше сэмплов, чем на самом деле. Существенным ограничением в приме-нении алгоритма является обязательность включения вертикальной синхронизациис монитором. Если в игре частота кадров падает ниже частоты синхронизации, ал-горитм Temporal Antialiasing отключается и применяется обычное сглаживание.

После появления технологий SLI и Crossfire возродился интерес и к супер-сэмплингу. Теперь у обоих производителей доступны режимы, в которых тради-ционный сегодня мультисэмплинг комбинирован с простым суперсэмплингом2х, что позволяет улучшить качество текстур и сгладить изображения не только

146

2.2. Графическая подсистема ЭВМ

на гранях полигонов, но и внутри них (например, текстуру с надписью наподо-бие тех же вывесок в любых играх). Эти режимы объединены в один — SLI ААи Crossfire Super AA.

Postprocessing (постобработка). В широком смысле, постобработка — всето, что происходит после основных действий по построению изображения. Ина-че говоря, постобработка — любые изменения изображения после его рендерин-га. Постобработка представляет собой набор средств для создания специальныхвизуальных эффектов. Их создание производится уже после того, как основнаяработа по визуализации сцены выполнена, т. е. при создании эффектов постоб-работки используется готовое растровое изображение.

Существует много разных возможностей по обработке изображения послеего рендеринга. В графических редакторах имеется множество так называемыхграфических фильтров, или постфильтров: blur, edge detection, sharpen, noise,smooth, emboss и др. В применении к ЗО-рендерингу в реальном времени этопроисходит следующим образом: выполняется рендеринг всей сцены в специ-альную область (render target) и после основного рендеринга это изображениедополнительно обрабатывается при помощи пиксельных шейдеров и только по-том выводится на экран. Из эффектов постобработки в играх чаще всего исполь-зуют Bloom, Motion Blur, Depth Of Field. Существует и множество других пост-эффектов: noise, flare, distortion, sepia и др.

High Dynamic Range (HDR). В применении к ЗБ-графике — это рендеринг вшироком динамическом диапазоне. Суть HDR заключается в описании интенсив-ности и цвета реальными физическими величинами. Чаще других для описанияизображения используется цветовая модель RGB (см. гл. 1), когда все цвета пред-ставляются как сумма основных цветов: красного, зеленого и синего, с разной ин-тенсивностью в виде возможных целочисленных значений от 0 до 255 для каждо-го, при 8-разрядном кодировании цвета. Отношение максимальной интенсивностик минимальной, доступной для отображения конкретной моделью или устройст-вом, называется динамическим диапазоном. Так, динамический диапазон моделиRGB составляет 256:1 или 100:1 cd/m2 (два порядка). Общепринятое название этоймодели описания цвета и интенсивности — Low Dynamic Range (LDR).

Возможных значений модели LDR для всех случаев явно недостаточно,человек способен воспринимать гораздо больший динамический диапазон, особен-но при малой интенсивности света, а модель RGB для этого слишком ограниченадаже при большой интенсивности. Динамический диапазон зрения человека состав-ляет от 10^ до 108 cd/m2, т.е. 100000000000000:1 (14 порядков). Одновременновесь диапазон человек видеть не может, но диапазон, видимый глазом в каждыймомент времени, примерно равен 10000:1 (четырем порядкам). Зрение приспосаб-ливается к значениям из другой части диапазона освещенности постепенно, припомощи так называемой адаптации, как, например, при выключении света в комна-те в темное время суток — сначала глаза видят очень мало, но со временем адапти-руются к изменившимся условиям освещения и видят уже намного лучше. То жесамое происходит и при обратной смене темной среды на ярко освещенную.

147

2. Технические средства компьютерной графики

Таким образом, динамического диапазона цветовой модели RGB недоста-точно для представления изображений, которые человек способен видеть в ре-альности, эта модель значительно уменьшает возможные значения интенсив-ности света в верхней и нижней частях диапазона. Самый распространенныйпример, приводимый в материалах по HDR, — изображение затемненного по-мещения с окном на яркую улицу в солнечный день. При использовании моде-ли RGB можно получить или нормальное отображение того, что находится заокном, или только того, что внутри помещения. Значения больше 100 cd/m вLDR вообще обрезаются, это является причиной того, что при ЗО-рендерингетрудно правильно отображать яркие источники света, направленные непосред-ственно в камеру.

Сами устройства отображения данных пока что серьезно улучшить нельзя.В этом случае целесообразно отказаться от модели LDR при расчетах, а исполь-зовать реальные физические величины интенсивности и цвета (или линейнопропорциональные), а на монитор выводить максимум того, что он сможет. Сутьпредставления HDR состоит в использовании значений интенсивности и цвета вреальных физических величинах или линейно пропорциональных и в том, чтобыиспользовать не целые числа, а числа с плавающей точкой с большой точностью(например, 16 или 32 бит). Это позволит преодолеть ограничения модели RGB, aдинамический диапазон изображения намного увеличится. Затем любое HDRизображение можно отобразить на любом средстве отображения (например, наRGB-мониторе) с максимально возможным качеством для него при помощиспециальных алгоритмов tone mapping.

HDR-рендеринг позволяет изменять экспозицию уже после рендерингаизображения, имитировать эффект адаптации человеческого зрения (переме-щение из ярких открытых пространств в темные помещения, и наоборот), атакже выполнять физически правильное освещение. Он является унифициро-ванным решением для применения эффектов постобработки (glare, flares,bloom, motion blur). Алгоритмы обработки изображения, цветокоррекцию,гамма-коррекцию, motion blur, bloom и другие методы постобработки качест-веннее выполнять в HDR-представлении.

В приложениях ЗБ-рендеринга реального времени HDR-рендеринг началииспользовать не так давно, поскольку это требует вычислений и поддержкиrender target в форматах с плавающей точкой, которые стали доступны только ввидеопроцессорах с поддержкой DirectX 9. Обычная последовательность HDR-рендеринга в играх такова: рендеринг сцены в буфер формата с плавающейточкой, постобработка изображения в расширенном цветовом диапазоне (из-менение контраста и яркости, цветового баланса, эффекты glare и motion blur,lens flare и подобные), применение tone mapping для вывода итоговой HDR-картинки на LDR-устройство отображения. HDR-рендеринг очень полезен длякомплексной постобработки более высокого качества по сравнению с обыч-ными методами.

148

2.2. Графическая подсистема ЭВМ

2.2.3. Последовательность работы графического конвейера

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

Большинство приложений трехмерной графики при построении трехмерныхсцен придерживаются определенной последовательности действий, в совокуп-ности составляющей ЗБ-конвейер (рис. 2.20). Итогом работы ЗБ-конвейера яв-ляется получение результирующего изображения в буфере кадра и его отобра-жение на экране монитора компьютера. Группу операций, выполняющих обо-собленные промежуточные действия, принято называть этапом, или стадиейЗБ-конвейера. Описываемая ниже последовательность операций является в не-которой степени общепринятой в современных графических подсистемах. Приконкретной реализации на программном и аппаратном уровнях могут появлять-ся существенные отличия, однако смысловое содержание блоков практически неменяется. На сегодняшний день процесс визуализации трехмерной сцены на эк-ране монитора в общих чертах выглядит следующим образом.

Этап 1. На этом этапе решаются задачи создания модели трехмерной сцены, ко-торую необходимо отобразить. В их число входят определение перечня объектовсцены, их положения и ориентации в объеме сцены, состояния объектов, назначенияматериалов объектов, задание положения источников освещения, их типа и парамет-ров и т. п. С каждым объектом в сцене (например, при создании игр) может быть свя-зан некоторый набор геометрических моделей, т. е. объект один (например, некиймонстр), но с ним сопоставляются разные геометрические модели в зависимости отего состояния — жив, ранен, убит, трансформировался в другой объект и т. д. Прак-тически все задачи первого этапа решает ЦП. Результаты его работы пересылаются вграфический процессор по шине графического адаптера с помощью драйвера.

Однако чем выше требования к качеству отображения трехмерной сцены ичем сложнее сцена, тем больше объем передаваемых данных и тем выше требо-вания к пропускной способности шины графического адаптера. Одним из ос-новных критериев реалистичности отображения сцены является сложностьпредставленных в ней моделей. Обычно считается, что начиная с 500 000 тре-угольников в сцене, можно обеспечить качество отображения, близкое к фото-реалистичному. Объем данных для одного треугольника в этом случае близок к1 Кбайту, а общий поток данных превысит 2,5 Гбайт/с. Поэтому для современ-ных графических адаптеров характерна миграция с шины AGP на шину PCIExpress 16x с пропускной способностью до 8 Гбайт/с.

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

149

2. Технические средства компьютерной графики

Создание модели трехмерной сцены

Создание моделей объектов.Получение полигональной модели сцены

Выборка геометрии.Буфер вершин

Процессор вершин

Постбуфер вершин

Установка треугольников

Разбиение на фрагменты,удаление невидимых поверхностей

Установка фрагментов

Процессор фрагментов Выбор текстур

Блендинг

Запись в буфер кадра

Данные кадра (цвет и глубина)

•MS/SS антиалиасинг,

интерфейсы вывода кадра

Центральный процессор

Графический процессор

Вершины и атрибуты

Кэш-память Кадр (Z)

Кэш-память

Кэш-память

Текстуры

Кадр (Z)

Рис. 2.20. Этапы работы графического конвейера

(тесселяция). В библиотеке DirectX 8 появились средства описания поверхно-стей высокого порядка с помощью набора контрольных точек {Patches).

Этап 2. Выполняется построение геометрических моделей объектов трех-мерной сцены. Внешний вид объекта формируется с помощью полигональноймодели. Чаще всего в роли полигонов используются треугольники, посколькутреугольник — это простейшая плоская фигура, однозначно располагаемая втрехмерном пространстве. Как правило, применительно к ЗО-графике в компью-терных играх термины «полигон» и «треугольник» являются синонимами.Современные графические процессоры умеют выполнять дополнительные опе-рации, например тесселяцию {Tesselation), т. е. разделение исходных треуголь-ников на более мелкие. Некоторые графические процессоры могут аппаратнообрабатывать геометрические модели, построенные на основе параметрическихповерхностей (механизм RT-Patches). Часть графических процессоров можетпревращать плоские треугольники в трехмерные поверхности путем «выдавли-вания» в третье измерение (механизм N-Patches).

150

2.2. Графическая подсистема ЭВМ

Данные вершин выбираются из памяти и попадают в предварительный кэшвершин. Современные видеоадаптеры поддерживают несколько топологий хра-нения геометрии (треугольников) в памяти. Кроме того, поддерживается аппа-ратно-гибкий формат данных — для каждой вершины могут храниться не толь-ко классические данные, такие как координаты или вектор ее нормали, но и лю-бые другие наборы атрибутов допустимых скалярных или векторных типов.Существует аппаратная поддержка работы с несколькими потоками данных —когда часть атрибутов вершины хранится в одном массиве данных, а другаячасть — в другом. В таком случае выборка из памяти должна идти в несколькопотоков. Всем этим и занимается блок выборки геометрии.

Этап 3. Итоговый результат операций второго этапа (каждая вершина) пе-ресылается в вершинный процессор геометрического процессора для обработкивершинным шейдером. Каждая вершина полигона полностью описывается на-бором атрибутов: трехмерные координаты, нормаль, цвет, текстурные координа-ты и др. При обработке вершины вершинным шейдером графический процессорне имеет какой-либо информации о соседних вершинах треугольника. Нормаль(вектор, перпендикулярный к моделируемой поверхности) также является атри-бутом вершины, но не треугольника. Вершинные процессоры последовательнообрабатывают каждую вершину объекта, выполняя межкадровую интерполяциювершин (Key Frame Interpolation), наложение вершин (Vertex Blending) с исполь-зованием более чем четырех матриц преобразования, искажение свойств вершинкаким-либо параметрическим объектом и другие трансформации, а также рас-чет освещенности, используя сложные модели освещения, учитывающие свой-ства материала объектов, и другие операции. Содержание операций преобразо-вания и расчета освещенности объектов — Transform & Lightning (T&L) —можно динамически изменять посредством вершинных шейдеров. Таким обра-зом, в современном персональном компьютере многоядерный ЦП дополняетсяеще более сложным программируемым графическим процессором, содержащимнесколько десятков ядер.

С практической точки зрения нерационально все объекты трехмерной сценыотображать с максимальной детализацией, так как зрение человека не можетвоспринимать мелкие детали удаленных объектов. К тому же непрерывная об-работка нескольких десятков или сотен тысяч полигонов, составляющих объект,независимо от его удаления приводит к дополнительной и бесполезной нагрузкеграфического процессора. Изменить эту ситуацию можно, определяя в некото-рые моменты времени так называемый уровень детализации LOD (Level ofDetail) для всех объектов в трехмерной сцене. Расчет уровня детализации (LOD)в ЗО-приложениях позволяет снизить сложность рендеринга кадра за счетуменьшения общего количества полигонов, текстур и иных ресурсов в сцене.Метод особенно эффективен, если количество объектов в сцене велико и онирасположены на разных расстояниях от камеры. Существуют статический и ди-намический подходы к управлению детализацией. В первом случае заранее соз-даются упрощенные варианты максимально детализированного объекта. В тех-

151

2. Технические средства компьютерной графики

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

У каждого метода есть свои преимущества и недостатки. Статическоеуправление иногда вызывает эффект дергания изображения при смене детализа-ции объекта. Если уровень детализации близок к граничному значению, можетвозникнуть циклическая смена моделей с разным уровнем детализации. К томуже необходимо обсчитывать несколько разных моделей для одного объекта. Ди-намическое управление детализацией потребляет значительные вычислительныересурсы, требует непрерывного пересчета не только координат вершин тре-угольников, но и параметров освещенности текстур. При частом переключениимежду уровнями наблюдается эффект волнистости поверхности — форма объ-екта непрерывно «плывет», что при моделировании объектов неживой природывыглядит особенно нереально. Необходимо отметить, что уровень детализациине обязательно относится только к геометрии, метод может применяться и дляэкономии других ресурсов: при текстурировании (хотя видеопроцессоры и такиспользуют мипмэппинг, иногда есть смысл менять текстуры мгновенно на дру-гие, с иной детализацией), методы освещения (близкие объекты освещаются посложному алгоритму, а дальние — по простому), методы текстурирования (наближних поверхностях используется сложный параллаксмэппинг, а на дальних —нормалмэппинг) и т. п.

Этап 4. После вершинного процессора трансформированные и освещенные,т. е. уже обработанные вершинным шейдером, вершины попадают в небольшой(порядка 32 вершин в современных архитектурах) промежуточный буфер. Онназывается «Post T&L буфер вершин». Этот буфер играет двоякую роль, во-пер-вых, служит для накопления результатов, готовых отправиться на последующиестадии конвейера, и таким образом уменьшает вероятность потенциальных про-стоев блоков графического процессора в ожидании данных, а во-вторых, позво-ляет избежать повторного трансформирования и обработки шейдером вершины,если она будет повторно использована в скором времени. Например, это частопроисходит с соседними треугольниками, несмотря на наличие разных подходовк описанию геометрии, практически в каждом из них одна вершина будет ис-пользоваться несколько раз.

Этап 5. Вершины объединяются в соответствии с выбранной топологией(обычно по три), в соответствии с полигонами (треугольниками), к которым онипринадлежат, и отправляются в блок установки треугольников, где происходитпредварительная подготовка данных, необходимых для закраски всего полигона.Поскольку треугольники часто имеют общие вершины, обычно требуется обработ-ка лишь одной вершины для каждого нового треугольника. Недостающие вершинысчитываются из Post T&L буфера вершин. Здесь же производится отбрасываниеневидимых (вышедших за экран или заданных плоскостей отсечения) и повернутыхк нам обратной стороной (если такая опция задействована) треугольников.

152

2.2. Графическая подсистема ЭВМ

Этап 6. Треугольник разбивается на фрагменты, часть которых признаетсяневидимыми и отбрасывается в ходе предварительного теста глубины на уровнефрагментов. Результатом этого процесса являются видимые (или частично ви-димые) фрагменты (обычно квады), подлежащие закраске. Затем сравниваютсязначения глубины и отбрасываются полностью невидимые квады (если такиебудут), а остальные отправляются на установку и закраску в пиксельный про-цессор. При этом они снабжаются вычисленными значениями глубины и специ-альной битовой маской, которая говорит, какие из пикселов квада видимы, а ка-кие следует игнорировать (поскольку часть квада может оказаться за граньютреугольника, а другая часть пикселов может быть невидима из-за того, что непройдет тест глубины).

В среднем, как минимум, половина пикселов отбрасывается еще до закрас-ки, но это зависит от структуры сцены. Поэтому производительность проверки ивычисления глубины должна быть выше максимальной производительности за-краски.

Этап 7. При установке фрагментов для каждого из квадов вычисляются па-раметры, такие как текстурные координаты, MIP-уровень, векторы и установоч-ные параметры анизотропии и т. д., необходимые для дальнейших расчетов.Именно здесь вычисляются только базовые значения параметров на весь блок испециальные коэффициенты dx и dy — их предполагаемое изменение по гори-зонтали и вертикали квада. А затем из этого набора параметров получаются всечетыре значения. По мере роста сложности пиксельных шейдеров увеличиваетсяи число передаваемых и интерполируемых для каждой точки параметров. Числоинтерполяторов в видеопроцессоре не может быть очень большим, посколькуэто достаточно длительная операция, и интерполяция типичного набора пара-метров может занимать более одного такта, замедляя закраску. Использованиеквадов позволяет существенно поднять эффективность этого процесса.

В практических реализациях процесс интерполяции параметров может час-тично или полностью проходить в пиксельном процессоре, используя его специ-альные или общие ресурсы (ALU).

Этап 8. После установки и интерполяции параметров происходит закраскафрагментов. Все обрабатываемые квады по очереди проходят через длинныйконвейер, состоящий из ALU, затем двух текстурных модулей и затем еще двухALU. Длина конвейера (и соответственно время прохода квада через него) со-ставляет более двух сотен тактов, большая часть которых (около 170) приходит-ся на операцию выборки и фильтрацию текстур и скрыта в текстурных блоках.В нормальном режиме работы конвейер способен выдавать по кваду за такт. За-тем, если двух выборок текстур и трех операций было недостаточно, квад можетотправиться по кругу, через буфер квадов, повторно на вход этого конвейера.

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

153

2. Технические средства компьютерной графики

том смешивания (blend factor) и режимом смешивания (blend mode). Если цветпиксела представлен в формате RGBA, возможно выполнение смешивания сучетом альфа-канала (alpha blending). Этот метод позволяет моделировать про-зрачность объектов ЗБ-сцены для создания оптических эффектов типа дыма,стекла или воды. При отсутствии блендинга выполняется просто запись резуль-тирующих значений цвета и глубины в буфер кадра. На этом этапе может про-исходить несколько дополнительных операций, таких как: гамма-коррекция иливычисление самого большого значения глубины всего блока 4 x 4 для корректно-го обновления мини-буфера глубины, сжатие Z-координат и т. д.

Этап 10. После того как изображение построено, может быть произведендополнительный проход для усреднения результатов полноэкранного сглажива-ния изображения, иногда этот процесс сразу совмещается с выводом на экран.

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

2.2.4. Поколения графических процессоров

Первое поколение (1995-1997). Первое поколение графических карт пред-ставлено чипами, которые могут использоваться и на шине PCI, и на шине AGP,т. е. их производительность не превосходит пропускной способности шины PCI,и потому вариант AGP ничем не лучше. Среди карт первого поколения можновыделить модели Voodoo Graphics и Voodoo Rush компании 3Dfx, Riva 128 иRiva 128ZX компании nVidia.

Второе поколение (1997-1999). Второе поколение охватывает широкийкруг видеокарт, которые нормально работают только на шине AGP, так как ихпроизводительность в принципе превышает возможности шины PCI. Ко второмупоколению относятся чипсеты 3Dfx Voodoo2, 3Dfx Voodoo Banshee, nVidia RivaTNT, Matrox G200, S3 Savage 3D, i740 и более поздние 3Dfx Voodoo3, 3DfxVSA-100, nVidia Riva TNT2, Matrox G400, S3 Savage4, ATI Ragel28.

У карт второго поколения аппаратные конвейеры могут одновременно об-рабатывать две текстуры, они поддерживают до 64 Мбайт видеопамяти, частоподдерживается 32-битный цвет. Повышенная частота RAMDAC обеспечиваеткомфортную работу в высоких разрешениях экрана монитора. Глубина Z-буферасоставляет 24...32 бит. Стандартом считается аппаратная поддержка мультитек-стурирования, анизотропной фильтрации и прочих современных технологий.

Третье поколение (1999-2002). Третье поколение представлено видеоуско-рителями DirectX 7, оснащенными принципиально новым элементом — геомет-рическим процессором. Тем самым значительная часть расчетов геометрическихпреобразований и параметров освещения снимается с ЦП компьютерной системы.

154

2.2. Графическая подсистема ЭВМ

Это позволило значительно ускорить обработку трехмерных сцен. Однако следуетподчеркнуть, что разработчики программ должны специально предусмотретьподдержку новых возможностей в своих приложениях. Согласование параметроваппаратных средств и программного кода стало возможным благодаря принятиютипового API DirectX 7, разработанного компанией Microsoft. С этого временипоколения графических процессоров принято различать по способности аппарат-но реализовать функции какой-либо версии DirectX.

Четвертое поколение (2001-2005). Отличительной чертой видеокарт поко-ления DirectX 8 стало появление программируемого блока обработки атрибутоввершин (процессора вершин). Программы обработки (вершинные шейдеры)сначала выполняли геометрические операции, затем могли работать с цветомвершин и прозрачностью. Подобный блок для расчета цвета пикселов на основепиксельных шейдеров стал частью пиксельного конвейера.

Пятое поколение (2004 - н. вр.). Графические ускорители с полностьюпрограммируемым графическим процессором относятся к поколению DirectX 9.Благодаря их появлению разработчики программ получили возможность описы-вать способы обработки графики с помощью команд, похожих на операторыязыков программирования высокого уровня, например C++. В частности, ком-пания nVidia даже разработала язык Cg (С Graphics) для программирования сво-их графических процессоров. Поддержка программируемых графических про-цессоров предусмотрена в API DirectX 9 различных версий. В настоящее времяпоследней является версия DirectX 9.0с, поддерживающая вершинные и пик-сельные шейдеры версии 3.0.

2.2.5. Мониторы

Основными устройствами оперативного вывода графической информации(и не только графической) в современных ЭВМ являются различные мониторы.Наиболее распространенным в течение многих лет мониторам на ЭЛТ, произ-водство которых постоянно сокращается, пришли на смену мониторы на жид-кокристаллических панелях. Тем не менее мониторы на ЭЛТ до сих пор остают-ся непревзойденными в основных требованиях, которые предъявляются к уст-ройствам отображения красочной информации — цветопередаче, скорости ре-акции точки, углам обзора. По этой причине ниже рассматриваются не тольконаиболее популярные сегодня мониторы на жидкокристаллических панелях илиперспективные технологии, но и мониторы на ЭЛТ.

Мониторы на ЭЛТ. Всем знакомы мониторы с ЭЛТ. Эта технология отра-ботана до тонкостей многолетним производством, и до сих пор выпускаетсямного мониторов на ее основе. Работают такие устройства на ЭЛТ (CRT —Cathode Ray Tube), подобной кинескопу обычного домашнего телевизора. Как ителевизоры, мониторы выпускают с плоским экраном и традиционным, т. е. вы-пуклым. В отличие от традиционного монитор с плоским экраном обычно даетболее четкое изображение без искажений.

155

2. Технические средства компьютерной графики

Параметры монитора определяются характеристиками и качеством элемен-тов, управляющих видеотрактом и в основном характеристиками ЭЛТ. Иногдана основе ЭЛТ одной модели производители выпускают мониторы разных цено-вых категорий, меняя лишь их электронные блоки. В свою очередь, параметрыЭЛТ во многом зависят от выбранной технологии производства. Причем слож-ность современных технологий производства ЭЛТ такова, что освоить их, а за-тем и продолжить исследования могут только крупные производители, средикоторых Hitachi, Mitsubishi, Sony, Toshiba, Panasonic/Matsushita, Samsung, LG-Philips.

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

В цветных мониторах для формирования изображения применяют отдель-ные пушки для каждого из основных цветов (Red — красный, Green — зеленый,Blue — синий), а слой люминофора составляют из близко расположенных точекгруппами по три (также в сочетании Red, Green, Blue — RGB) точек цветноголюминофора. Для точного попадания в заданную точку люминофора необходи-мо электронный луч сфокусировать до заданных размеров в плоскости экрана.Это осуществляется установкой после пушек специального фокусирующегоэлектрода и теневой маски, имеющей отверстия с размерами, близкими к разме-рам отдельной точки люминофора, непосредственно перед люминофорным по-крытием. В зависимости от типа маски и характера отверстий различают триосновные технологии: трехточечная (дельтавидная) теневая маска (Dot-Trioshadow-mask); апертурная решетка (Aperture-grille); щелевая маска (Slot-mask).

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

Трехточечная теневая маска. Эта технология относится к проверенным тех-ническим решениям. Физически она представляет собой перфорированныйметаллический лист, расположенный перед люминофором. Расстояние междугруппами соседних точек таково, что маскируются все паразитные излучения,обеспечивается попадание луча от каждой электронной точки в требуемую точ-ку люминофора (с учетом допуска). За счет улучшения систем управления от-клоняющей системой удается выпускать трубки с практически плоской поверх-ностью экрана (так называемого типа FST). Традиционно считается, что монито-ры с теневой маской лучше воспроизводят текст, имеют высокую контрастность,хорошие показатели стоимость-эффективность. К недостаткам обычно относят

156

2.2. Графическая подсистема ЭВМ

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

Апертурная решетка. ЭЛТ с апертурнои решеткой была разработана фир-мой Sony. Выполненные по этой технологии ЭЛТ известны на рынке под име-нами, содержащими характерное окончание tron (Trinitron, DiamondTron). Маскапредставляет собой тонкую фольгу, в которой выполнены частые вертикальныеотверстия (апертурная решетка). Поперек размещают две-три нити, обеспечи-вающие жесткость конструкции. Соответственно и люминофор на дне колбырасполагается в виде вертикальных чередующихся полосок разных цветов. Осо-бенности технологии позволяют увеличить процент электронов, попадающих налюминофор, и добиться лучшей яркости изображения. Использование болеетемного стекла компенсирует недостаток контрастности. Мониторы с трубкамина основе апертурнои решетки традиционно привлекают специалистов для рабо-ты с графикой, требующей ярких и чистых цветов. Однако некоторые профес-сионалы считают недостатком сравнительно невысокую контрастность и нали-чие на экране тени от поперечных проволочных нитей.

Щелевая маска. Последней технологией, разработанной фирмой NEC, былатехнология щелевой маски. Под торговой маркой ChromaClear были выпущеныЭЛТ, в которых теневая маска образована продольными щелями. Соседниетриады рядов таких щелей смещены по вертикали, образуя решетку с располо-жением элементов в шахматном порядке. По сути дела, в технологии щелевоймаски удалось совместить достоинства предыдущих конструкций, почти изба-вившись от их недостатков. Специалисты признают, что решение NEC являетсяуниверсальным для всех групп пользователей.

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

Традиционно количественным выражением качества изготовления маски илюминофора служит минимальный размер точки на экране кинескопа. Раньшепод этим понимался минимальный диаметр точки. Для современных ЭЛТ с те-невой маской используют понятие «шаг точек» (Dot Pitch), для апертурнои ре-шетки — «шаг полос» (Strip или Grille Pitch).

В ЭЛТ с теневой маской принято измерять расстояния (т. е. шаг) междудвумя соседними точками люминофора по диагонали. Для апертурнои решеткии щелевой маски расстояние меряют по горизонтали. Примерное соотношениетаково: 0,27 мм Dot Pitch эквивалентно 0,25 мм Strip Pitch. Нормальным для мас-ки сегодня считается шаг 0,28 мм, качественные мониторы имеют шаг 0,25 мм,профессиональные мониторы с апертурнои решеткой — 0,22...0,24 мм. Величи-на шага заметно сказывается на качестве изображения. Поэтому для графиче-ских работ следует выбирать мониторы с шагом не более 0,25 мм. В трубках с

157

2. Технические средства компьютерной графики

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

Внедрение новых технологий в систему управления видеотрактом монитораи в принципы изготовления ЭЛТ позволило приступить к выпуску изделий сплоским экраном и укороченной трубкой. Модификации с плоским экраном из-вестны под разными торговыми марками — PanaFlat (Panasonic), Flatron (LGElectronics), FD Trinitron (Sony) и др. Уменьшение длины трубки достигнуто засчет увеличения угла отклонения лучей электронной пушки с 90 до 100°. У та-ких мониторов значительно меньше размер по глубине, т. е. глубина укорочен-ного 19-дюймового монитора равна глубине обычного 17-дюймового монитора.

Важным элементом монитора является его видеоусилитель. Полоса пропуска-ния (верхняя частота) видеоусилителя определяет возможности монитора по мак-симальному разрешению и частоте кадровой развертки. Видеоусилитель должениметь такую полосу пропускания, чтобы можно было обеспечить передачу сигна-лов, генерируемых видеоадаптером, без искажений. Минимально необходимую по-лосу пропускания достаточно просто рассчитать по необходимым параметрам раз-решения. Так, полосы пропускания монитора около 250 МГц достаточно для полу-чения разрешения экрана 1600 х 1200 точек при кадровой частоте 100 Гц.

Начиная с разрешения 1280 х 1024 точек при кадровой частоте 85 Гц и вышедля снижения искажений сигналов раньше монитор и видеоадаптер соединялиэкранированным коаксиальным кабелем и разъемами BNC. По коаксиальномукабелю через разъемы BNC на монитор поступают раздельные сигналы цветно-сти (R, G, В), вертикальной и горизонтальной синхронизации. В отличие отобычного VGA-кабеля раздельные кабели не влияют друг на друга, и потомуизображение получалось четким. В современных мониторах появилась возмож-ность помимо аналогового интерфейса VGA использовать цифровой интерфейсDVI, которым снабжаются также многие видеоадаптеры. Digital Visual Interface(DVI) был разработан группой Digital Display Working (DDWG), включающейдостаточно много компаний. Хотя этот стандарт не был принят VESA, DVI име-ет очень хорошую перспективу благодаря применению цифрового протоколапередачи — TMDS (PanelLink). По сравнению с другими вариантами цифровогоинтерфейса P&D и DFP, имеющими только один линк, DVI имеет второй линк,который удваивает максимальную пропускную способность. Это позволяет ис-пользовать разрешение выше 1280x1024. Дополнительное преимущество DVIзаключается в возможности передачи аналогового сигнала, что позволяет под-ключать LCD- и ЭЛТ-мониторы, использующие обычный вход VGA.

К достоинствам мониторов на ЭЛТ можно отнести качественное изображе-ние при работе с разными разрешениями. Нижней планки в разрешении практи-чески нет, можно использовать даже 320 х 240. Кроме того, мониторы на ЭЛТболее качественно передают цвета (исходя из восприятия их человеком), имеютзначительно больший угол обзора, более высокую скорость смены изображенияи более качественное сглаживание прямолинейных границ.

158

2.2. Графическая подсистема ЭВМ

Необходимо также учитывать вопросы безопасности использования мони-торов, поскольку пользователь, напрягая свое зрение, наблюдает изображение наэкране монитора и находится от него на расстоянии 40...50 см, подвергаясь воз-действию тех или иных излучений в течение длительного времени. Мониторы наоснове ЭЛТ являются наиболее опасными — они излучают широчайший спектрэлектромагнитного излучения, издают шум, не говоря уже о вреде для глаз принизком качестве изображения.

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

В Швеции были разработаны стандарты безопасности для вычислительнойтехники — ТСО, которые были приняты во многих странах мира. Первый стан-дарт обнародован в 1992 г., в нем приведены нормы допустимых электромагнит-ных излучений, уровня пожарной и электрической безопасности именномонитора. В 1995 г. были разработаны стандарты ко всей персональной ЭВМ икасались они эргономики, экологии, энергосбережения, уровня шума и тепловы-деления; требования к излучениям остались прежними, но применялись уже нетолько к монитору, но и ко всем составляющим ПЭВМ. ТСО'99 предъявил болеежесткие требования, чем ТСО'95, практически по всем пунктам. Современныемониторы должны отвечать требованиям ТСО'03, которые не столь значительноотличаются от стандарта ТСО'99.

Жидкокристаллические мониторы. В мониторах на плоских панелях,используемых в ЭВМ, применяются различные технологии получения изобра-жения: на жидких кристаллах (LCD), на плазменных (PDP) или светодиодныхэлементах (OLED) и др. Ниже рассматриваются только технологии, реально ис-пользуемые при производстве мониторов.

В основе работы мониторов на LCD лежат оптические свойства жидкихкристаллов (ЖК), первые упоминания о которых относятся к 1888 г., когда авст-рийский ботаник Ф. Райницер обнаружил эти удивительные структуры в ходесвоих экспериментов. Однако термин «жидкий кристалл» был предложеннемецким физиком О. Леманном, который исследовал их электромагнитные иоптические свойства. По своей природе ЖК представляют собой переходное со-стояние вещества между твердым и жидким состояниями, при котором сохраня-ется кристаллическая структура молекул и в то же время обеспечивается теку-честь. Под действием электрического поля молекулы ЖК могут изменять своюориентацию и вследствие этого изменять свойства светового луча, проходящегосквозь них.

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

159

2. Технические средства компьютерной графики

ЖК. На подложках проделаны параллельные бороздки, определяющие ориента-цию ЖК. Бороздки двух подложек ортогональны друг к другу и на пересечениибороздок образуются ячейки с ЖК. При этом продольные оси молекул самоговерхнего слоя ЖК будут расположены под прямым углом по отношению к осяммолекул из нижнего слоя. Между этими двумя крайними положениями образу-ется своеобразная молекулярная спираль с промежуточными ориентациямимолекул, которая и дала название технологии — twisted nematic (закрученныенематические). Причем каждая ячейка с ЖК располагается между контактамитонкопленочного транзистора (TFT). Именно эта основа TFT и меняет напряже-ние, под воздействием которого изменяется плоскость поляризации жидкости.За самой пластиной с ЖК расположены одна или две мощные флуоресцентныелампы подсветки и специальные материалы, или световоды, для равномерногораспределения освещения по плоскости экрана. Меняя угол поляризации, ЖКизменяют интенсивность проходящего света или прекращают его прохождение вкаждой конкретной точке. Каждая такая ячейка соответствует одной точке наэкране монохромной ЖК-панели. Сумма всех точек (пикселов) на панели и яв-ляется максимальным разрешением панели. Цветное изображение образуется,как и в мониторах на ЭЛТ, сочетанием трех основных цветов: красного, синего изеленого. Эту задачу решает панель цветного фильтра.

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

В присутствии электрического поля поворот вектора поляризации происхо-дит на меньший угол, тем самым вторая подложка становится лишь частичнопрозрачной для светового излучения. Если разность потенциалов такова, чтоповорота плоскости поляризации в ЖК-ячейках не происходит, то световой лучполностью поглощается вторым поляризатором и экран при освещении на про-свет выглядит черным.

Для управления свойствами ячеек к ним подключают электроды, создающиеразные электрические поля в отдельных ячейках экрана. В активной матрице(Active Matrix) каждая ячейка панели подключена к собственному управляюще-му элементу. В качестве управляющих элементов используются тонкопленоч-ные транзисторы (TFT — Thin Film Transistor), образующие матрицу из строк истолбцов соответственно ячейкам экрана. Активная матрица имеет высокую яр-кость и большие углы обзора (120... 160°) без ущерба для качества изображения.Время реакции дисплея с активной матрицей в лучших образцах составляет до8... 10 мс (для пассивной матрицы — около 300 мс). Яркость отдельного элемен-

160

2.2. Графическая подсистема ЭВМ

та изображения остается неизменной весь период демонстрации. Именно поэто-му для ЖК-мониторов достаточной считается частота регенерации 60 Гц.ЖК-кристаллы типа Super Twisted Nematic имеют увеличенный с 90 до 270° тор-сионный угол (угол кручения) ориентации, что обеспечивает лучшую контраст-ность изображения при увеличении размеров монитора.

Технология TN+Film является самой распространенной технологиейпроизводства ЖК-матриц, что обусловлено низкой стоимостью производствапри приемлемом качестве изображения. Принцип действия TN+Film матрицыоснован на использовании в ЖК-ячейках закрученных нематических кристаллов(TN — Twisted Nematic) и покрытием матрицы специальной пленкой с высокимпоказателем преломления для расширения угла обзора в горизонтальной плос-кости. TN+Film-матрицы отличаются невысоким качеством изображения, и од-ним из путей его повышения стала замена матового покрытия на глянцевое. Ро-доначальником этой идеи выступила компания Toshiba, технология называласьCASV (Clear Advanced Super View). Сегодня этот термин практически не ис-пользуется, но подобные технологии есть практически у любого производителяЖК-матриц. Так, Toshiba сейчас предлагает TruBrite, Sony — X-Brite и X-Black,ASUS — ACE View, IBM — FlexView, Fujitsu — CrystalView. Что интересно, всеэти технологии имеют общую идею, но могут использоваться по отношению кразличным типам матриц, что приводит к разным результатам.

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

Например, технология компании Sony X-Brite, название которой X-Brite(extended Brite (от bright) — расширенная яркость), реализует это усовершенст-вование. Формально дисплей с такой матрицей кажется более четким, ярким иконтрастным, но только при хорошем освещении. Это субъективное ощущениеосновано оно на особенностях зрения человека. Относительно технологииTN+Film с X-Brite необходимо отметить, что высокий уровень черного цветаздесь не уменьшился, и это сразу видно при слабом внешнем освещении. Прав-да, есть и позитивное улучшение — отсутствие рассеяния проходящего света.Но с другой стороны, это приводит к тому, что глянцевая матрица в отличие отматовых матриц отражает любые внешние яркие объекты, как в зеркале. Матри-цы на базе этой технологии имеют наименьшее время отклика и приемлемыеуглы обзора при самой низкой стоимости. Однако данной технологии присущи исущественные недостатки: плохая цветопередача, низкая контрастность, высо-кий уровень черного цвета и недостаточные углы обзора. Мониторы с использо-

161

2. Технические средства компьютерной графики

ванием TN+Film-матриц можно рекомендовать для просмотра видеофильмов икомпьютерных игр.

Технология IPS (In-Plane Switching) была разработана компаниями NEC иHitachi, известна также под названием SuperTFT. В соответствии с этой техноло-гией управляющие электроды расположены на одной подложке, а молекулы ЖКповорачиваются единой плоскостью без скручивания в спираль. Матрицы, изго-товленные по этой технологии, имеют углы обзора 170° в обоих направлениях,что обусловлено более точным механизмом управления ориентацией ЖК, по-скольку они располагаются параллельно друг другу. К тому же обеспечиваетсяболее высокая яркость и контрастность до 300:1. Но при этом IPS-матрицы от-личаются большим энергопотреблением, значительным временем отклика иочень высокой ценой. Однако на сегодняшний день им нет равных по качествуцветопередачи, и мониторы с этими матрицами можно рекомендовать для рабо-ты дизайнеров и обработки цифровых фотографий, где необходима высококаче-ственная визуализация статичных изображений.

Технология MVA (Multi-Domain Vertical Alignment), совместившая особенноститехнологий, описанных выше, была разработана компанией Fujtsu в 1996 г. В дан-ной технологии электроды размещены на обеих подложках, а сами подложки име-ют выступы, разделяющие ЖК на области — домены. Все домены переключаютсяодновременно, но продольные молекулы в них поворачиваются в противополож-ных направлениях. За счет усовершенствования способа размещения ЖК (они рас-положены параллельно друг другу, но под прямым углом к поляризационномуфильтру) получился некий промежуточный вариант, который обладает достоинст-вами IPS-матриц (высокие яркость и контрастность до 500:1, еще большие углы об-зора), а время отклика близко к значениям TN+Film-матриц. Модификацию этойтехнологии под названием PVA, которая отличается еще большей яркостью и кон-трастностью, использует компания Samsung. Аналогичная разработка под названи-ем ASV (Advanced Super View) есть и у компании Sharp.

Что касается будущего ЖК-матриц, то наиболее перспективной считаетсятехнология LTPS (Low Temperature Poly Silicon — низкотемпературный поли-кристаллический кремний), которая по всем параметрам превосходит все нынесуществующие технологии, но очень дорогая, трудоемкая и время ее массовогоиспользования еще не определено.

Параметры плоскопанельных мониторов. Важнейшим параметром плос-копанельных мониторов является стандартное (иногда называемое максималь-ным) разрешение. Оно соответствует числу пикселов по горизонтали и вертикали.Именно в стандартном разрешении ЖК-монитор воспроизводит изображениенаиболее качественно. Разрешение определяется размером ячеек и диагональюпанели. Сейчас производятся панели с ячейками размером 0,248...0,3 мм и, какправило, длина диагонали экрана определяет его стандартное разрешение. Так,для ЖК-монитора с длиной диагонали равной 15", стандартное разрешение рав-но 1024x768, а для 17" — 1280 х 1024. Для монитора на ЭЛТ можно установитьразрешение больше стандартного (рекомендуемого) для данного размера диаго-

162

2.2. Графическая подсистема ЭВМ

нали экрана, а на ЖК-мониторе — нельзя. Как правило, в ЖК-мониторах преду-смотрена возможность использовать разрешение более низкое, чем стандартное.Обычно применяют метод растяжения (Expansion), основанный на интерполя-ции изображения с низким разрешением на всю площадь экрана. Очевидно, чтопри этом существенно снизится качество изображения, поскольку интерполяцияухудшает резкость изображения и вносит цветовые искажения.

Яркость и контрастность определяют комфортность работы с ЖК-монито-ром. Средним считается значение яркости 250...350 кд/м2, качественные панелиподдерживают более высокие значения. Контрастность ЖК-монитора определя-ется отношением яркости самого яркого белого и самого темного черного цве-тов. Хорошим контрастным соотношением считается 350:1. Цветовой охват со-временных ЖК-панелей достигает 16,7 млн цветов. Угол обзора (по вертикали игоризонтали) характеризует зону восприятия изображения на экране без сущест-венных искажений. Нормальным считается угол обзора по горизонтали150... 160°, по вертикали 120.. .130°.

Слабым местом ЖК-мониторов остается время отклика (скорость переключе-ния между режимами черный — белый — черный), которое составляет 15.. .30 мс.Этот параметр характеризует максимальное быстродействие, а в режимах пони-женной яркости (менее 100 %) оно увеличивается в 5-7 раз, что приводит к сма-зыванию быстро меняющихся изображений.

Таким образом, к достоинствам ЖК-мониторов можно отнести малую глу-бину, действительно плоское изображение (без геометрических искажений),высокие значения яркости, низкое энергопотребление, отсутствие электромаг-нитных излучений. Однако им присущи четыре существенных недостатка: вы-сокая цена искажения в цветопередаче, единственный режим разрешения, обес-печивающий хорошее качество, малые углы комфортного обзора.

Плазменные мониторы. Основой для создания плазменных экранных мат-риц (Plasma Display Panels) стали процессы, происходящие в обычных лампахдневного освещения. Плазменные мониторы состоят из полой стеклянной панели,заполненной газом. На поверхность внутренней стороны стенок выведены микро-скопические электроды, образующие две симметричные матрицы, а снаружи этаконструкция покрыта слоем люминофора. Когда на контакты подается ток, междуними возникает крошечный разряд, который заставляет светиться (в ультрафиоле-товой части спектра) располагающиеся рядом молекулы газа. Возникшее свечениеосвещает участок люминофора, как и в обычных мониторах на ЭЛТ.

Панели, изготовленные по этой технологии, отличаются высокой яркостьюи контрастностью, а также малым временем отклика; угол обзора плазменныхпанелей практически равен 180°, а толщина — менее 10 см. Однако в качествемонитора плазменные панели используются достаточно редко, хотя и являютсяидеальным средством отображения коллективного пользования в учебномклассе или в домашнем кинотеатре. Это связано с техническими особенностя-ми плазменных панелей. Во-первых, габариты — при толщине в 8... 10 см ми-нимальная длина диагонали плазменной панели с приемлемым разрешением

163

2. Технические средства компьютерной графики

равна 32". Себестоимость 19"-панели немногим меньше 40", поэтому ни одинпроизводитель не решился на выпуск панелей даже с диагональю, равной 21".Во-вторых, сравнительно небольшой срок службы плазменной панели. Неда-ром на обратной стороне многих моделей установлен почасовой счетчик, от-считывающий суммарное время работы. Причем очень быстро такая панельвыгорает, если часто и подолгу просматривать статические изображения.И главное обстоятельство, останавливающее рядового покупателя, — оченьвысокая цена.

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

Мониторы OLED и DEL. Большой интерес к средствам отображения гра-фической информации постоянно стимулирует интенсивные научные исследо-вания в этой области. В результате этого каждые 3-4 месяца объявляется о но-вой разработке, готовой перевернуть «мониторный мир», появляются новыетехнологии, которых становится все больше и больше. Из этого множества но-винок наиболее близкими к массовому производству являются технологииOLED и DEL.

Органический электролюминесцентный монитор OLED представляет собоймонолитный тонкопленочный полупроводниковый прибор, который излучаетсвет, когда к нему приложено напряжение. OLED состоит из ряда тонких орга-нических пленок, которые заключены между двумя тонкопленочными провод-никами. Рабочее напряжение OLED составляет всего лишь 3...10 В. Цвет,эффективность и интенсивность излучения приборов OLED зависят от исполь-зованных органических материалов, которыми определяется многообразие вос-производимых дисплеем цветов. Сегодня основное внимание "разработчиковприборов OLED направлено на создание материалов для полноцветных прибо-ров OLED. В приборах OLED используются два класса органических материа-лов: микромолекулы (sm-OLED) и полимеры (PLED). Эти две системы имеютнесколько различий. Сегодня мониторы sm-OLED опережают мониторы PLEDпо эффективности и сроку службы.

Таким образом, OLED — тонкопленочное устройство со светоизлучающей по-верхностью, которая образована множеством одновременно излучающих свет ячеекна одной подложке. Причем эти ячейки могут быть изготовлены либо методом на-пыления, либо методом струйной печати. Для создания дисплея с произвольнымструктурированием можно применить обычную литографию. Другими словами,OLED имеют значительные преимущества в технологии формирования структуры.

Собственно говоря, органические светодиодные панели OLED (OrganicLight Emitting Diode) уже применяются в производстве CD- и МРЗ-плееров, атакже мобильных телефонов. В этом активное участие принимает компанияSamsung. Основанная на светодиодной технологии, OLED устраняет большин-

164

2.2. Графическая подсистема ЭВМ

ство недостатков ЖК-панелей. Как сообщают разработчики, угол обзора вOLED-панелях составляет более 160°, а время отклика достигает 10 мс, что воз-можно лишь в самых совершенных ЖК-мониторах. Яркость и контрастностьэтих устройств превышает показатели мониторов на ЭЛТ. Толщина и энергопо-требление OLED-панелей ощутимо меньше, что делает их привлекательнымидля применения в портативной технике: КПК, ноутбуках и т. п. Кроме того, этиприборы могут выдерживать немалые механические и температурные нагрузки,а стоимость производства ниже, чем для LCD.

Почти одновременно с запуском OLED-панелей в массовое производствобыло объявлено о завершающей стадии разработки еще более интересной тех-нологии — DEL (Dielectric ElectroLuminesceny), работа которой основана на осо-бенностях люминесцентного фосфора, излучающего свет под воздействиемэлектромагнитного поля. Контрастность такой панели еще выше, угол обзорауже 170°, а время отклика до 2 мс. Но самое главное — это высокое качествоцветопередачи, которое не уступает мониторам на ЭЛТ и позволяет использо-вать DEL-мониторы в профессиональных целях.

Производители плоских панелей оказались в некоторой растерянности: чемуотдать предпочтение, какая технология перспективна и получит большее распро-странение в ближайшем будущем. Можно предположить, что каждая технологиязаймет свою нишу. Ученые, расхваливая OLED, утверждают, что добьются мини-мальной толщины и возможности наносить такой дисплей практически на любуюповерхность, что в совокупности со способностью работать в сложных условияхпозволит в недалеком будущем увидеть его, например на стекле автомобиля, под-ключенным к бортовому компьютеру или на рукаве обычной куртки, выполняю-щим сразу несколько функций: часов, мобильного телефона и карманного персо-нального компьютера. При всех этих невероятных качествах они обещают, чтостоимость производства будет на 30.. .40 % ниже, чем для ЖК-мониторов.

Трехмерные мониторы. Однако, несмотря на удивительные возможностиновейших технологий и открывающиеся в связи с этим перспективы, предложенпринципиально новый подход — трехмерные или ЗО-мониторы. В результатеего реализации изображение на вашем мониторе начинает приобретать объем и«выходить» из экрана, причем для этого не нужно надевать очки или приниматьгаллюциногены. Все это ЗО-монитор, передающий трехмерное изображение вдвух плоскостях. Основывается это чудо на принципе стереоскопии: угол зрениякаждого глаза человека разный. Создавая два минимально отличающихся изо-бражения и располагая их таким образом, чтобы каждый глаз видел свое, инже-неры и добились эффекта трехмерности. Зрительного эффекта каждая компания-разработчик достигает своим способом на платформе TFT.

На сегодняшний день уже несколько компаний налаживают выпуск 3D-мониторов. Фирма Sharp представила жидкокристаллический 15" ЗО-монитор, акомпания Kodak анонсировала свою технологию трехмерного дисплея, превос-ходящую все известные по яркости. Немецкая компания ACT Kern уже продаетсвои трехмерные дисплеи. Однако стоимость ЗО-мониторов сегодня в несколько

165

2. Технические средства компьютерной графики

раз превышает стоимость обычных ЖК-мониторов. Такой монитор незаменимдля научных исследований, медицины, проектирования и других задач. Естест-венно, для новой технологии потребуется иное программное обеспечение, нопри развитии рынка ЗБ-мониторов оно будет разработано в кратчайшие сроки.

Преимущества и недостатки ЗБ-мониторов представлены в табл. 2.2.

Таблица 2.2

ТехнологияЭЛТ

ЖК

PDP

OLED

3D

НедостаткиМорально устарела, мерцание,масса и габаритные размерыСкорость реакции, цветопередача,углы обзора

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

ПреимуществаБольшие углы обзора, цветопере-дача, скорость реакции точкиЯркость, масса, габаритные разме-ры, дизайн, перспективы развития,большие диагоналиЯркость, контрастность, времяреакции точки

Время отклика, яркость, контраст-ность, углы

Улучшенное восприятие изобра-жения

2.2.6. Проекторы

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

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

Оптические системы в проекторах зачастую достаточно сложны, а качест-венную оптику в мире производит не так много компаний, и иногда изображе-ние даже в проекторах одного производителя может создаваться объективами сразными логотипами — от Fuji до Carl Zeiss. Электроника приобретает тембольшее значение, чем большее разрешение требуется от проектора и в связи сиспользованием телевидения высокой четкости (HDTV). Важной частью проек-тора является и лампа, создающая световой поток, равномерный по световымсвойствам. При выборе проектора обязательно следует учитывать срок службылампы и ее высокую стоимость.

166

2.2. Графическая подсистема ЭВМ

Проекторы на ЭЛТ. Технология формирования изображения на ЭЛТ — однаиз первых и наиболее отработанная. Но принципы ее работы в проекторах суще-ственно отличаются от мониторов или домашних телевизоров. Во-первых, в про-екторе имеется сразу три электронно-лучевых проекционных трубки. Каждая изних отвечает за свой цвет — красный, синий или зеленый, которые и формируютцветное изображение в соответствии с моделью RGB. Нужный цвет обычно фор-мируется цветным фильтром, стоящим за трубкой. Световой поток из трех ос-новных цветов проходит через относительно несложную систему линз и фоку-сируется на экране, создавая полноцветную картинку. Такие проекторы имеютотличную цветопередачу — за десятилетия технология производства трубокдостигла совершенства. Благодаря синтетическому характеру каждого участкаизображения на картинке отсутствует видимое зерно. Проекторы на ЭЛТ отлич-но передают и черный цвет, что сложно обеспечить во многих других системах.

Главными недостатками проекторов на ЭЛТ являются большие габарит-ные размеры и масса — каждая трубка имеет диаметр более 10 см и требуетмощного охлаждения. Кроме того, качественное изображение формируетсяпутем тщательного сведения трех картинок на одном экране, что исключи-тельно сложно в настройке и не позволяет быстро переместить проектор ни насантиметр после настройки. Цена таких проекторов чрезвычайно высока —выше 10 тыс. долл. Недостатком также является не самая высокая яркость та-ких систем, поэтому их лучше использовать в затемненных помещениях. Од-нако для качественного домашнего кинотеатра такие проекторы до сих поростаются одними из лучших.

Лазерные проекторы. В лазерных проекторах используется способ форми-рования изображения, подобный используемому в ЭЛТ. Источниками света вних являются три (иногда больше) лазера, яркость излучения которых модули-руется в соответствии с видеосигналом каждого цвета. Матрица лазеров форми-рует три луча красного, синего и зеленого цвета, которые смешиваются приформировании цветного изображения. Изображение создается очень сложнойсистемой фокусировки и развертки, в которой находится специальная системазеркал, осуществляющая развертку по горизонтали и по вертикали. Реалистич-ное изображение формируется при этом практически на любой, в том числе инеровной, поверхности, а его характеристики достаточно высоки. Начиная с2000 г., когда началось серийное производство таких проекторов, качество изо-бражения возросло, но все еще остаются проблемы с цветопередачей, хотя изо-бражение и обладает впечатляющими показателями контрастности и яркости.

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

167

2. Технические средства компьютерной графики

создавать изображения на огромных экранах — диагональ экрана может дости-гать нескольких десятков метров.

Существуют еще и такие малоизвестные устройства, как лазерные ЭЛТ, вкоторых лазерный луч, падая на люминофор, вызывает яркое свечение экрана,но они мало распространены и находятся на стадии разработки коммерческихпрототипов (такие разработки ведутся и в России).

Проекторы на ЖК-матрицах. Одной из самых отработанных является тех-нология, применяющаяся в проекторах — ЖК-матрица, работающая «на про-свет». Это самая первая и самая дешевая технология до сих пор остается самойраспространенной — проекторы, созданные на основе одной LCD-матрицы,распространены в образовательных учреждениях, в презентационных комнатахпри показе статичных слайдов и т. п. В данном случае свет лампы, проходясквозь LCD-матрицу как через диафильм или кинопленку, а затем через объек-тив, пронизывает множество слоев матрицы и цветового фильтра. В готовомизображении, проецируемом на экран, часто присутствует эффект «мозаично-сти». Кроме того, проблема формирования черного цвета проявляется здесь вполной мере. Поскольку ЖК-матрицы работают на просвет, то создать абсолют-но непрозрачный участок в условиях яркого и мощного освещения они попростуне способны. Поэтому часто черный цвет на экране больше похож на серый. Поэтой же причине ЖК-матрицы с трудом справляются с полутонами — количест-во градаций серого цвета не так велико, как это необходимо.

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

Проекторы на трех ЖК-матрицах. Три ЖК-матрицы позволяют создатьизображение гораздо лучшего качества, чем при использовании одной ЖК-матрицы, за счет разделения светового потока и прохождения его только черезодну ЖК-панель, а не через три цветовых фильтра последовательно. Это гаран-тирует большую яркость и лучшее качество картинки, особенно" в плане четко-сти. Система дихроичных зеркал разделяет свет на три составляющих цвета,пропуская каждый через свою ЖК-матрицу, а потом призма собирает все триизображения в одну картинку. Однако и в этом случае сохраняется проблемачерного цвета — он опять оказывается скорее серым, чем черным.

Проекторы на трех ЖК-матрицах обладают некоторым преимуществом пе-ред однокристальными DLP-проекторами, в которых цвет создается путем по-следовательного наложения цветов. В ЗЖК-проекторах цвет создается одновре-менно и без использования движущихся частей.

Проекторы на микрозеркальной технологии DLP. Самой бурно разви-вающейся технологией, на которой строятся современные проекторы, можносчитать микрозеркальную, или DLP-технологию. При ее использовании светмощной лампы отражается от специального чипа (DMD — Digital MirrorDevice), содержащего тысячи микрозеркал, каждое из которых отвечает за свойпиксел изображения. Матрица с зеркалами очень миниатюрна, обычно около 1",и именно на нее и на систему управления приходится большая часть стоимости

168

2.2. Графическая подсистема ЭВМ

таких проекторов и телевизоров. Каждое из миллионов микрозеркал управляетсяиндивидуально, и в итоге создается очень четкое и ясное изображение, лишен-ное мерцания и артефактов, присущих ЖК. Разработчиком этой технологии ипоставщиком всех DMD-матриц и схем управления ими является американскаякомпания Texas Instruments.

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

Пикселизация изображения, присущая ЖК-технологии, присутствует и вDLP-проекторах, хотя и в заметно меньшей степени. Это связано с промежутка-ми между элементами, формирующими пиксел. Если в ЖК-матрице на нерабо-тающие участки матрицы между точками, которые не участвуют в формирова-нии изображения, приходится до 30 % площади (в старых матрицах доходило идо 40 %), то при DLP-технологии — не более 10... 15 %. Учитывая, что эта тех-нология работает не на просвет, а на отражение, некоторые проблемы у такихпроекторов могут быть с формированием белого цвета, а также с несвоевремен-ным срабатыванием зеркал.

Проекторы и проекционные телевизоры на базе этой технологии наиболеекомпактны, к тому же позволяют получать световой поток до значения 10 тыс. лм.Существуют разновидности микрозеркальной технологии, несколько отличаю-щиеся по своим принципам от DLP, например iMOD или интерференционныедисплеи, но они пока не отработаны до конца, хотя имеют отличные перспекти-вы. Например, в технологии iMOD отсутствуют цветные фильтры, и она гораздоменее энергоемка.

Проекторы на технологии D-ILA (LCOS). Технология D-ILA (DigitalDirect Drive Image Light Amplifier) является коммерческим развитием техноло-гии LCOS (Liquid Crystal on Silicon — ЖК на кремнии) и активно развиваетсяразными производителями, в том числе и компанией JVC, которая выпускает наее основе проекционные системы. Изображение при использовании этой техно-логии формируется ЖК, однако работает она не на просвет, как обычныеЖК-матрицы, а на отражение, и иногда технология называется отражающимиЖК-панелями. Главное ее отличие от обычной ЖК-матрицы состоит в том, чтовся электроника расположена за слоем ЖК под отражающими электродами, а немежду ячейками. Это обеспечивает лучший коэффициент заполнения — изо-бражение формируется на большей площади матрицы, и незадействованной ос-тается минимальная площадь. Световой поток формируется несильным источ-

169

2. Технические средства компьютерной графики

ником света, а потом усиливается специальной лампой, отчего и происходит на-звание технологии.

В результате граница между пикселами практически незаметна, светоотдачаматрицы возрастает, а ее нагрев уменьшается. Теоретически контрастность са-мой матрицы может достигать 2000:1. Оптическая схема, подобная используе-мой в обычных ЖК-проекторах, и три матрицы D-ILA позволяют получить пол-ноцветное изображение. Формирование цветов происходит по-разному — так,например, JVC создала голографический фильтр, другие производители исполь-зуют вращающуюся призму, разделяющую цвета, существуют также трехчипо-вые системы, в которых нет движущихся частей.

Технология D-ILA сегодня активно развивается, как и технология трех ЖК-матриц, и позволяет получить изображение, по своим характеристикам близкоек получаемому проекторами на ЭЛТ, т. е. хорошо воспринимаемое глазом чело-века. С черным цветом эти проекторы справляются также отлично, к тому же этатехнология позволяет добиваться очень высокого разрешения. До сих пор такиепроекторы остаются достаточно тяжелыми и дорогими, однако над началом ихпроизводства работают многие компании, и перспективы у этой технологии хо-рошие.

Вопросы для самоконтроля

1. Какие задачи решают технические средства в составе графической системы?2. Перечислите основные пераметры компьютеров.3. Назовите основные классы ЭВМ и поясните их различия.4. Поясните состав и назначение устройств графической рабочей станции.5. Какова структура ЭВМ? Поясните назначение отдельных устройств.6. Перечислите основные особенности наборов мультимедийных инструкций цен-

трального процессора.7. Назовите основные виды запоминающих устройств и поясните их назначение.8. Поясните, как в ЭВМ организуется обмен с периферийными устройствами?9. Охарактеризуйте роль и место графической подсистемы в структуре ЭВМ.

10. Перечислите области применения трехмерной КГ.11. Назовите основные параметры графических адаптеров.12. Поясните устройство графического адаптера и назначение основных его элементов.13. Что понимают под технологией SLI и CrossFire?14. Какова структура графического процессора? Поясните назначение его отдельных

блоков.15. Поясните устройство вершинного процессора и решаемые им задачи.16. Поясните устройство пиксельного процессора и решаемые им задачи.17. Что такое встроенный ускоритель графики?18. Дайте сравнительную характеристику программных интерфейсов видеоадаптеров.19. Охарактеризуйте основные особенности работы ЗО-конвейера.20. Что понимают под вершинными и пиксельными шейдерами?21. Сравните технологии наложения и обработки текстур.

170

2.2. Графическая подсистема ЭВМ

22. Чем различаются основные методы MIP-mapping?23. Дайте сравнительную характеристику методов фильтрации текстур.24. Охарактеризуйте основные способы улучшения изображения.25. Какова структура и назначение графического конвейера?26. Перечислите основные задачи, решаемые на различных этапах работы графического

конвейера.27. Сравните поколения графических процессоров.28. Поясните устройство монитора на ЭЛТ и назначение его отдельных блоков.29. Назовите особенности устройства плоскопанельных мониторов.30. Сравните основные технологии формирования изображения, используемые в плос-

копанельных мониторах.31. Дайте сравнительную характеристику плоскопанельных мониторов и мониторов на

ЭЛТ.32. Поясните особенности устройства проекторов.33. Сравните основные технологии формирования изображения, используемые в проек-

торах.

3. МАТЕМАТИЧЕСКИЕ МОДЕЛИГЕОМЕТРИЧЕСКИХ ОБЪЕКТОВ

Рассматриваются математические модели кривых и поверхностей, нашед-шие широкое применение в современных графических пакетах и системах автома-тизированного проектирования. Подробно обсуждаются свойства бикубическихпараметрических кривых и поверхностей, на которых основывается значительнаячасть компьютерных приложений, связанных с рисованием и черчением. Многиепроектные ситуации требуют представления объекта в виде трехмерного тела, укоторого в явном виде заданы все внутренние и граничные точки. Твердотельноемоделирование — это самостоятельное направление компьютерной графики, ко-торое предлагает средства математического описания трехмерных объектов.В главе описываются самые известные и востребованные твердотельные модели:регулярные булевские операции, граничное представление (В-rep), конструктивнаягеометрия твердых тел (CSG), а также самые важные основные модели про-странственного разбиения.

3.1. Представление кривых и поверхностей

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

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

Во втором случае пользователь создает геометрию объекта, не отталкиваясьот существующего оригинала или прототипа. Современные компьютерные про-граммы предлагают для формообразования множество различных технических

172

3.1. Представление кривых и поверхностей

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

Самой простой формой представления поверх-ностей является полигональная сетка (polygon mesh) —совокупность плоских фрагментов, ограниченных мно-гоугольниками и соединенных между собой. В такойформе естественным образом представляется множествосамых разнообразных объектов: здания, мебель, про-мышленные интерьеры и пр. С некоторыми потерямипри помощи полигональных сеток можно описать глад-кие поверхности и поверхности природного происхож-дения.

Рис. 3.1. Аппроксима-ция гладкой поверхно-сти при помощи поли-

гональной сетки

На рис. 3.1 показана аппроксимация поверхности конуса при помощипростой полигональной сетки. Очевидные недостатки такого представленияможно отчасти компенсировать посредством уменьшения размеров ячеек сетки.Естественной платой за это решение будет увеличение размеров представленияи повышение затрат на вычисления и обработку в компьютере. Кроме того, призначительном увеличении размеров оригинала сеточная структура и изломы вместах сочленения могут стать заметными для наблюдателя.

Параметрическая полиномиальная кривая (parametric polynomial curve)представляет собой геометрическое место точек, которое задается тремя поли-номами и параметрами t, x, у, z. Значения этих параметров выбираются такимобразом, чтобы трасса кривой пролегала по требуемому пути. В теоретическихисследованиях по машинной графике используются различные виды и способыпредставления кривых. В этой книге рассмотрен только самый употребительныйслучай, когда кривые задаются полиномами третьей степени. Такие объектычасто называют кубическими кривыми.

Часто используется способ описания поверхностей, полное английское на-звание которого (parametric bivariate polynomial surface patches) переводят нарусский как куски полиномов. При этом координаты точек на криволинейной (вобщем случае) поверхности задаются при помощи трех двухмерных полино-мов — по одному на каждую координату х, у, z. В таком представлении грани-цей фрагментов служат полиномиальные кривые. Очевидно, что для точногоприближения сложных криволинейных поверхностей в общем случае понадо-бится намного меньше полиномиальных кусков, чем полигонов. Однако алго-ритмы обработки таких фрагментов технически сложнее, чем для многоуголь-ников. Самый популярный частный случай такого представления использует двакубических полинома, а соответствующие формы называются бикубическимиповерхностями (bicubic surfaces).

173

3. Математические модели геометрических объектов

Квадратичные поверхности (quadric surfaces) задаются уравнением видаfix, у, z) = О, г д е / — квадратичный полином от аргументов х, у, г. Это обычныйспособ описания простейших трехмерных форм: сферы, эллипсоида и цилиндра.

3.1.1. Полигональные сетки

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

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

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

3.1.2. Представление полигональных сеток

Рассмотрим несколько простых методов представления полигональных се-ток: прямой способ, указатели на список вершин и на список ребер.

Прямой способ описания

Этот способ описания представляет собой точное описание всех много-угольников в виде списка координат вершин:

P = ((xl,yu z,), U 2 , y2, z2),..., (хп, уп, zn)).

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

174

3.1. Представление кривых и поверхностей

координат вершин. Более того, для некоторых операций невозможно использо-вать явное представление смежных ребер и вершин. Например, чтобы перета-щить вершину и рассчитать новое положение всех смежных объектов интерак-тивно, требуется найти все полигоны, которые примыкают к данной вершине.Эта операция требует сравнения координатных троек одного полигона со всемианалогичными объектами других полигонов. Более эффективным способом реа-лизации этой операции является предварительная сортировка N координатныхтроек. В самом лучшем случае трудоемкость такой процедуры оценивается вы-ражением ,/V log2 N. Кроме того, накопление ошибок вычисления может привестик некорректному вычислению координат полигонов и фатальным ошибкам.

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

Список вершин

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

Каждый многоугольник задается множествомпорядковых номеров вершин в списке вершин. На-пример четырехугольник, опирающийся на верши-ны с номерами 3,7,12, 35, будет представлен в виде

Р = (3,7, 12,35).

На рис. 3.2 приведен пример описания поли-гональной сетки в виде списка вершин. Эта про-стейшая сетка состоит из двух полигонов Рх и Р2.Первый из них задается вектором (1, 2, 3), второйописывается тройкой (1, 3, 4). Это представлениеобладает несколькими несомненными преимуще-ствами по сравнению с явным описанием полиго-нальных сеток в виде списка многоугольников.Во-первых, здесь достигается значительная эко-

Рис. 3.2. Представление поли-гональных сеток в виде спискавершин:

v=(vuv2, у3, У4);Р, = (1,2,3);Р 2 = (1,3,4)

175

3. Математические модели геометрических объектов

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

Список ребер

Рис. 3.3. Представление поли-гональной сетки в виде спискаребер:

V=(VuV2,V3,Vd = (xuyi,zi),

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

перечня смежных многоугольников, число которых не может превышать два.В общем случае такое описание имеет следующий вид:

E2 = (v2, v3, Л); £з = (Vu v4,P2);E4 = (V3,V4,P2);E5 = (Vu

V3,Pl,P2);Pi=(EuE2,E5);P2 = (£3, E4, E5)

где Ei — описание ребра,

Р = (Ei, E2, ..., Е„),

t = (Vk, Vp, Ph Pt).

Здесь V — имена граничных вершин ребра; Р — наименования смежных поли-гонов или полигона.

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

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

E = (Vl,V2,PuP2,...,Pn).

Следует отметить, что ни в одном из рассмотренных описаний (явное опи-сание, список вершин, список ребер) задача определения ребер, смежных задан-

176

3.1. Представление кривых и поверхностей

ной вершине, не имеет простого решения. В любом случае для ее решения сле-дует просмотреть все наличные ребра.

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

3.1.3. Согласованность полигональных сеток

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

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

Существует очень лаконичный программный код, предназначенный дляпроверки принадлежности ребер полигонам. Достаточно легко устанавливаетсяи ликвидируется избыточность (кратное присутствие ребер и вершин на границеодного многоугольника). Разработаны эффективные процедуры для определениясвязности и идентификации отверстий.

3.1.4. Уравнения плоскости

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

Ах + By + Cz + D = 0.

Коэффициенты этого уравнения задают нормаль [А, В, С] к данной плоскости.Точки Р\, Р2, Рз, принадлежащие плоскости, позволяют вычислить нормаль каквекторное произведение Р\Рг х Р\Ръ (или Р2Рг х РгР\ и т. д.), где Р, — радиусы-векторы, соединяющие начало координат с точками плоскости.

177

3. Математические модели геометрических объектов

(х\,У\)у Если векторное произведение равно ну-

лю, то выбранные три точки коллинеарны,т. е. не могут определить положение плос-кости. Вместо этой выборки в принципе мо-жет быть использована любая другая сово-купность точек. Свободный член уравненияD может быть определен после нахождениянормали [А, В, С] и подстановки в искомоеуравнение любой из трех точек.

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

Очевидно, что коэффициенты А, В, С уравнения плоскости зависят от про-екций полигона на координатные плоскости (х, у), (х, z), (у, z)- Например, еслиполигон расположен параллельно плоскости (х, у), то А = В = О, а его проекции накоординатные плоскости (х, z), (у, z) равны нулю.

Пусть известна проекция полигона на координатную плоскость (х, у). Поэтим данным можно определить коэффициент С уравнения плоскости:

j~t "I V Ч s ч Ч

Рис. 3.4. Вычисление коэффициентауравнения плоскости по проекции:

С=-((У\ +у2)(х2-х1) +

(у3

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

На рис. 3.4 показан простой пример вычисления коэффициента уравненияплоскости по известной проекции многоугольника.

Описанный подход обладает рядом несомненных преимуществ. Самое глав-ное, что он не предъявляет особых требований к выбору точек. Они могут иметьпроизвольное размещение в пространстве, даже быть компланарными или кол-линеарными.

Полученное уравнение плоскости позволяет точно оценить степень неком-планарности многоугольника. Для этого достаточно вычислить кратчайшее рас-стояние между несущей плоскостью и каждой вершиной полигона:

Ax+By+Cz + D(л- — | ,

где x,y,z — координаты вершины.

178

3.2. Параметрические кубические кривые

Расстояние, рассчитанное по этой формуле, может быть положительнымили отрицательным в зависимости от положения точки. Если точка принадлежитнесущей плоскости, то d = 0. Если по условиям задачи требуется определитьтолько положение точки, для этого не требуется вычислять корень и выполнятьделение. Знак числителя даст точный ответ на поставленный вопрос.

Уравнение несущей плоскости не является единственным. Его можно ум-ножить на любое число к, отличное от нуля. Это меняет вид уравнения, но неменяет положения плоскости. Часто коэффициенты плоскости хранят в норма-лизованном виде при

1к =

+ С2

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

3.2. Параметрические кубические кривые

Ломаные и полигоны представляют собой важнейшие способы аппроксима-ции кривых и поверхностей. Чтобы получить высокую точность кусочно-линейной аппроксимации сложных кривых или поверхностей в общем случаетребуется большое количество фрагментов. Это влечет необходимость храненияи обработки больших массивов граничных точек, что способно усложнить неко-торые интерактивные операции с геометрическими формами. Рассмотрим болееэффективный способ представления кусочно-гладких кривых. Далее это пред-ставление будет обобщенно на случай пространственных поверхностей. Основ-ная идея состоит в том, чтобы для описания геометрии сложных объектов ис-пользовать кривые более высоких порядков, чем линейные функции. В общемслучае эти кривые точнее приближают форму и требуют для обработки меньшевычислительных ресурсов.

3.2.1. Основные положения

Существуют три основных подхода к использованию аппроксимационныхкривых высоких порядков. Так, можно попытаться найти точные аналитическиевыражения вида у =f(x) и z = g(x). Этот выбор имеет несколько очевидных не-достатков. Во-первых, нельзя однозначно описать замкнутые кривые, напримерокружности или эллипсы. Такие объекты приходится предварительно разбиватьна ряд сегментов и искать описание каждого из них. Во-вторых, полученноеописание не обладает инвариантностью относительно поворотов. Чтобы задатьповернутую версию кривой следует проделать значительную вычислительнуюработу, а в общем случае требуется получить новое разбиение кривой на сегмен-

179

3. Математические модели геометрических объектов

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

Проблемы иного порядка влечет за собой попытка задать кривую в виде ре-шения неявного уравнения f(x, у, z) = 0. Во-первых, выбранное уравнение спо-собно продуцировать несколько решений, в числе которых могут содержаться ипаразитные. Во-вторых, существуют кривые, которые не имеют точного анали-тического описания или описываются системами уравнений. Простейший примертакого рода — полуокружность. В-третьих, серьезные проблемы возникают впроцессе объединения неявно заданных фрагментов кривых. Часто в точках ихсочленения невозможно определить точную величину тангенса угла наклона, зна-чение которого используется в процессе решения многих геометрических задач.

Параметрическое задание кривой в виде х = x(t), у = y(t), z = z(f) преодолева-ет недостатки функционального и неявного способов описания кривых. Вместокусочно-линейных кривых, рассмотренных в предыдущем разделе, здесь будутиспользоваться кусочно-полиномиальные кривые. Более точно, если сложнаякривая разбивается на несколько сегментов, каждый из которых описываетсятремя функциями x(t), y(t), z(t), являющимися кубическими полиномами от па-раметра t. В современной практике геометрических вычислений кубические по-линомы используются чаще всего. Полиномы низших порядков не обеспечива-ют достаточной точности аппроксимации кривых, а многочлены более высокихпорядков порождают осцилляции формы, что приводит к росту вычислительныхресурсов. Никакие другие полиномы невысокой степени не дают возможностивыполнить точную интерполяцию криволинейных фрагментов по значениямконцевых точек и их производных. Кроме того, параметрические кубическиекривые — это кривые самого низкого порядка, которые могут занимать произ-вольное положение (не лежать на плоскости) в трехмерном пространстве. Дей-ствительно, положение кривой, описываемой полиномом второй степени, зада-ется тремя точками, а три точки всегда определяют плоскость.

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

Кубический полином, описывающий криволинейный сегмент, можно пред-ставить в следующем виде:

Q(t) = [x(t), y(t), z(t)],где

x(t) = axt3 + bxt

2 + cxt + dx;

= a/+bzt2+czt +

180

3.2. Параметрические кубические кривые

Без потери общности можно утверждать, что значения параметра t ограни-чиваются единичным интервалом.

Введем вектор-строку Т = [t3, t2, t, 1]. Используя это обозначение, исходноевыражение можно записать в более компактном матричном виде:

= [x(t),y(t),z(t)] = TxC,

где

С =

ах a az

\ КСУ Сг

Производная от функции Q(t) называется касательным или тангенциальнымвектором параметрической кривой. Тангенциальный вектор легко найти прямымдифференцированием выражения Q(t):

1dt dt

d_

~dt dt dt-,2t,t, 1, 0]xC =

= [3axt2 +2bxt+cx, 3ayt

2 +2byt+cy, 3azt2 +2bzt+cz].

На рис. 3.5 показан пример двух соединенных сегментов параметрическойкубической кривой и их полиномы. Пример демонстрирует возможность пара-метрическим способом задавать многозначные кривые, т. е. такие зависимости,которые могут принимать несколько значений при одном значении аргумента.

Если два сегмента V\ и V2 параметрической кривой соединены, то говорят,что кривая принадлежит в данной точке к классу геометрической непрерывно-сти G0. Если совпадают направления касательных векторов (необязательно зна-

Рис. 3.5. Координаты параметрической кривойи представляющие их полиномы

181

3. Математические модели геометрических объектов

Соединительная чения), то кривая в точке соединения принад-точка лежит классу G1. Длины касательных векто-

ров таких сегментов связаны прямо пропор-циональным соотношением T(VX) = kT(V2), гдек — коэффициент пропорциональности. Всистемах автоматизированного проектирова-ния во многих операциях используются кри-вые последнего класса, поскольку они вос-

*(') принимаются наблюдателем как гладкие.

Рис. 3.6. Соединение фрагментов Если в точке сочленения сегментов сов-кривых трех различных типов падают значения и направления касательных

векторов, то такая кривая относится к классуС1. Наконец, равенство производных п порядка дает основания отнести кривую кклассу С". Иногда непрерывность типа С, i = 1,2, ... называют параметрическойнепрерывностью.

На рис. 3.6 показаны примеры соединений фрагментов кривых. Кусок кри-вой S соединяется с тремя кривыми Со, Сь С2 (нижний индекс обозначает типсоединения).

Очевиден физический смысл касательного вектора —Q(t) . Его значениеdt

равно скорости изменения кривой относительно параметра t в данной точке.Вторая производная от Q(t) по параметру t равна ускорению. Если, к примеру,камера движется вдоль параметрической кубической кривой и делает снимкичерез равные промежутки времени, то касательный вектор задает скорость пе-ремещения камеры вдоль кривой. В точках сочленения фрагментов скоростьдвижения камеры и ее ускорение не должны резко изменяться. В противномслучае возможны заметные нарушения плавности съемки. На примере, показан-ном на рис. 3.6, кривая С2 обеспечивает намного более высокую плавность и назначительном удалении от точки соединения.

Очевидно, что принадлежность кривой классу С1 влечет за собой ее при-надлежность G1. Обратное утверждение не является справедливым в общем слу-чае. Следует отметить, что, опираясь только на визуальную оценку параметриче-ских кривых, часто бывает трудно обнаружить значительную разницу междукривыми классов С1 и G1.

Существует важный частный случай, когда выполнимость условия при-надлежности классу С1 не влечет за собой принадлежность кривой классу G 1.Такая ситуация может возникнуть, когда значения касательного вектора равнынулю в точке сочленения для обоих смежных сегментов параметрической кри-вой. В этом случае значения касательного вектора будут равны, но его направ-ления могут различаться (рис. 3.7). Если представить себе движение камерывдоль этой кривой, то в точке сочленения скорость ее перемещения будет рав-на нулю, после перехода на смежный фрагмент она изменит направлениедвижения.

182

3.2. Параметрические кубические кривые

Графики параметрических кривых за- у^метно отличаются от графиков обычныхфункций, где независимый аргумент откла-дывается по одной оси, а зависимый — подругой. Аргумент t параметрических кривыхне представлен на их графиках совсем. Это означит, в частности, что невозможно опреде-

Рис. 3.7. Пример кривой, котораялить касательный вектор непосредственно w

F ^ принадлежит классу С, но не вхо-по графику параметрической кривой. д и т в к л а с с Q

1 .Проиллюстрируем это утверждение про- р _ т о ч к а с о ч л е н е н и я ф р а г м е н т о в ( з а с е ч _

стым примером. Пусть имеется параметриче- к а м и обозначены расстояния, пройденныеекая кривая 8(0, 0 < t < 1, а ее касательный объектом за равные промежутки)вектор равен нулю при t = 0. Предположим,что ц(0 = 8(20, 0 < t < 1/2. В этом случае графики параметрических функцийц(0 и 8(0 совпадают. С другой стороны, ц'(0) = 28'(0). Это значит, две кривыеимеют одинаковые графики, но различные касательные векторы. Поэтому при-нято накладывать на кривые требование принадлежности к классу G1. Для глад-кого сочленения двух фрагментов часто достаточно совпадения направлениякасательных векторов, а не их полного равенства.

Как следует из определения, для нахождения кубического полинома (фор-мула (3.1)) требуется установить значения его четырех коэффициентов. Для на-хождения неизвестных следует наложить на кривую четыре дополнительныхусловия. Такими условиями служат значения кубического сегмента на концевыхточках, значения касательного вектора и условия связности между соседнимисегментами.

Рассмотрим три важнейших типа кривых — многочлены Эрмита, кривыеБезье и сплайны различного рода. Первые задаются собственными значениями ивеличинами касательного вектора, принимаемыми на концевых точках. Для оп-ределения кривой Безье требуется задать значения кривой на концевых точках идва промежуточных значения, которые используются для пересчета касательно-го вектора. Для определения сплайнов должны быть известны значения четырехконтрольных точек и, кроме того, могут накладываться различные дополнитель-ные условия, например степень гладкости или поведение кривой вблизи точкисочленения. Важнейшими типами сплайнов, нашедшими широкое применение вмашинной графике, являются однородные (uniform) и неоднородные (nonuni-form) В-сплайны.

Напомним, что параметрическая кубическая кривая описывается уравнением

Q(t)=TxC,

где <2(0 = МО, j(0, z(t)], T = [t3, t2, t, 1]; С — прямоугольная матрица коэффици-ентов

183

3. Математические модели геометрических объектов

С =

ах ау az

br b, h

d, d., d

Представим матрицу С в виде С = MG, где матрица М — базовая матрицачетвертого порядка, a G — вектор-столбец геометрических ограничений, кото-рый часто называют геометрическим вектором. Координаты геометрическоговектора формируются на основе дополнительной информации о поведении кри-вой. Это могут быть значения на концевых точках, величины касательного век-тора и другие ограничения, определяющие поведение кривой. Обозначим черезGx вектор-столбец, содержащий только х-компоненты геометрического вектора.Аналогичное толкование будут иметь обозначения Gy и Gz. По матрицам М и Gстроится классификация различных типов кривых.

Запишем выражение параметрической кривой в развернутом виде:

Q{t)=[x(t\ y(t), z(t)}=[t\ t2, t,

mn

m2\

ml2 mn

m00 m^.

mu

m2 4

m31 m3 4

mm4X m4

Найдем выражение для координаты x(t)\

x{t) = TxMxGx =

= (timn+ t2m2l+ tm3l+ m4l)gu+(t3ml2+ t2m22 +

;43

X

G4_

(3.2)

m42)g2x (3.3)

(t3ml3+ t2m23+ tm33+ m43)g3x+(t3mH+ t2m24+ tm34+ m44)g4x.

Из уравнения (3.3) следует, что кривая представляет собой взвешенную суммуэлементов геометрической матрицы. Такой вес имеют кубические полиномы повсем трем геометрическим координатам. Совокупность весовых коэффициентовиногда называют стыковочной функцией, или функцией сопряжения (blendingfunction). Стыковочные функции В задаются простым матричным соотношением

В=ТхМ.

Способы вычисления матрицы М зависят от специфики параметрическихкривых.

3.2.2. Кривые Эрмита

Свое название кривые получили от имени французского математика ШарляЭрмита, который подробно исследовал их свойства. Это частный случай кубиче-

184

3.2. Параметрические кубические кривые

ских полиномиальных кривых, которые задаются на значениями концевых точеки величинами касательного вектора. Обозначим Р\, РА — значения кривой наконцевых точках сегмента, a R\, R$— значения касательного вектора в начале иконце сегмента. Удобнее использовать такую нумерацию вместо последователь-ной, так как далее номерами 2 и 3 обозначаются внутренние точки сегментовкривых.

Для определения базисной матрицы Mh кривой Эрмита, которая связана сгеометрическим вектором G/, полиномиальных коэффициентов, запишем четыреуравнения (по одному на каждое геометрическое условие) и, решив полученнуюсистему, найдем значения неизвестных величин.

Запишем компоненту х геометрической матрицы Эрмита в следующем виде:

Чх

и из уравнения (3.2) найдем x(t):

x(t)= axt3+bj2+cxt+dx= t3t2= [t3,t2,t,\] xMhx G v (3.4)

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

х(0) = Р]х= [0,0,0, x

x(l) = P4x=[l, I, 1, №hGhx.

Найдем производную от уравнения (3.4):

= [3t2, 2t, I, 0]MhGh .xat

С помощью этого уравнения запишем значения, которые принимает каса-тельный вектор на границах интервала:

dt=[3, 2, 1, 0]xMhxGh .

Четыре уравнения х(0), х(1),dt ' dt J

условия, можно записать в более компактном матричном виде:

, использующие граничные

185

3. Математические модели геометрических объектов

Г\х 0 01 1

0 1

2 1

(3.5)

Из этого уравнения легко найти значение матрицы Mh:

О О

1 1

о о3 2

О

1

1

1

- 1'2

-3

О

1

_2

3

О

о

1

-2

1

О

1

-1

О

О

(3.6)

Полученное значение можно использовать для определения величины x(t).Для этого достаточно воспользоваться соотношением

x(t)=TxMhxGhx,

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

для координат y{t) и z(t):

y(t)=TxMhxGhy;

z(t)=TxMhxGhz.

Используя три последних уравнения, можно записать компактное матричноевыражение для уравнения кривой:

, z(t)]=TxMhxGh;

(3.7)

Напомним, что Р\, Р4 — значения кривой в концевых точках; /?ь R4 — зна-чения касательного вектора на границах интервала; Gh — геометрический век-тор. Если в уравнении (3.7) раскрыть подвыражение Тх Mh, то можно опреде-лить стыковочную функцию Эрмита Bh в явном виде:

Q{t)=TxMhxGh=BhxGh =

(2t3 -3t2 +Щ +(-2t3~t2)R4.

(3.8)

На рис. 3.8 показаны графики четырех стыковочных функций, используемыхв кривых Эрмита в качестве весов элементов геометрического вектора. На ри-

186

3.2. Параметрические кубические кривые

сунке они помечены именами начальных условий,вклады которых регулируют. Так, функция

fit) = 2t —3t +1, которая задает удельный вес

Р\, фигурирует под этим именем.В начальной точке it = 0) только одна кривая

Pi отлична от нуля. В начальной точке на формукривой Qit) оказывает влияние только одна кри-вая Р]. С ростом параметра t влияние функцийR], R4, PA становится все более заметным.

Введем обозначения:

/(О

Рис. 3.8. Стыковочные функцииЭрмита

На рис. 3.9 представлены стыковочные функции, взвешенные значениямигеометрического вектора (рис. 3.9, а), их сумма (рис. 3.9, б) и результирующаякривая Qit) (рис. 3 9, в).

y(t)

1

p4p4(t)

y(t)

уЩl

1 x(t) =

Рис. 3.9. Элементы плоской кривойЭрмита:

а — стыковочные функции; б —сумма стыковочных функций y(t) =

,(0 + P4P4W + RiRi(f)в — результирующая кривая

187

y(t)

3. Математические модели геометрических объектов

Семейство кривых Эрмита изображено нарис. 3.10. Различная форма кривых продуци-руется вариациями длины касательного векто-ра R\. Направление этого вектора и остальныевеличины, влияющие на форму кривых, оста-ются без изменения.

На рисунке видно, что чем длиннее ка-сательный вектор, тем большее влияние оноказывает на форму кривой.

На рис. 3.11 показано еще одно семейст-

x(t)

Рис. 3.10. Семейство кривых Эрмита

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

Многие интерактивные графические системы позволяют управлять формойкривых Эрмита интерактивно, посредством настройки положения концевых то-чек и величин касательных векторов (рис. 3.12). Эти объекты выводятся на эк-ране дисплея и выполняют функции регуляторов формы. Оператор может припомощи мышки перемещать концевые точки и буксировать окончания касатель-ных, программа отслеживает сделанные изменения, рассчитывает и рисует но-вую форму кривой. Гладкость точки сочленения фрагментов (точка Л на рис. 3.12)обычно задается специальной командой, по умолчанию окончания касательныхи точка сочленения являются коллинеарными.

Если две кубические кривые Эрмита соединяются в концевой точке классаG1 (рис. 3.13, точка Р4), то их геометрические векторы должны иметь вид

О дс(О

Рис. 3.11. Семейство кривых Эрмита

188

3.2. Параметрические кубические кривые

y(t)* 1 /

Рис. 3.12. Интерактивное управление фор-мой кривой Эрмита

РА

А.

и

РА

PI

kR4

О x(t)

Рис. 3.13. Пример соединения двух фраг-ментов кривых Эрмита класса G1

при к > О,

т. е. они обязаны иметь общую точку (Р4) и касательные векторы, по крайней мере,с равными направлениями. Более строгие ограничения накладывает принадлеж-ность к классу С\ В этом случае к=1, поэтому в точке сочленения должны совпа-дать направления и значения касательных векторов смежных сегментов.

С точки зрения визуализации кривые Эрмита очень просты в обработке. Дляэтого достаточно воспользоваться основным уравнением (3.8). Интервал изме-нения параметра t делится на несколько частей, после чего вычисляется после-довательность значений полинома непосредственно по формуле определения.Для выполнения искомых расчетов существует очень компактный программныйкод. Эффективность вычислений можно повысить за счет использования схемыГорнера разложения полиномов:

f(t)=at3 +bt2 +ct+d=((at+b)t+c)t+d.

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

3.2.3. Кривые Безье

Рассмотренные в предыдущем разделе методы представления кривых даютхорошие результаты. Они очень удобны при описании формы, основа которойполучена с помощью экспериментов или математических расчетов. Это можетбыть фюзеляж или крыло самолета, некоторые фрагменты двигателя внутренне-го сгорания, многие стандартные механические детали и т. д. Существует, одна-

189

3. Математические модели геометрических объектов

Рис. 3.14. Примеры кривых Безье и положение их контрольных точек

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

Кривые Эрмита не очень удобны для интерактивной работы с кривыми. На-правление и величина касательных не дают необходимого интуитивного пред-ставления о кривой, так как неочевидна связь между набором чисел и формойсоответствующей кривой. Французский исследователь Пьер Безье (P. Bezier)предложил другой метод создания кривых и поверхностей любой формы.

Кривые Безье — специальный вид кубических полиномиальных кривых, укоторых для определения положения касательных векторов используются спе-циальные контрольные точки, не принадлежащие самому объекту. На рис. 3.14пунктиром обозначены выпуклые оболочки контрольных точек. В общем случаевыпуклая оболочка может и не касаться всех контрольных точек.

Начальный R\ и конечный R4 касательные векторы кривой Безье зависят от век-торов Ри Р2 и Рз, РА, где все Р, — радиусы-векторы, соединяющие контрольныеточки с началом координат. Эти величины задаются следующими соотношениями:

СИ

О"I

dQ{0)

dt

dt

=3(/>2-P1);

=3(P 4 -P 3 ) .

(3.9)

Геометрический вектор кривой Безье имеет вид

L M Jатом:.'

Обозначим через МИь матрицу, которая задает соотношение между геомет-

рическим вектором Эрмита и геометрическим вектором Безье. Она определя-

190

3.2. Параметрические кубические кривые

ется соотношением Gh = Mh x Gb, которое в развернутом виде имеет следую-

щий вид:

1

0

-3

0

0

0

3

0

0

0

0

-3

0"

1

0

3

Pi

Pi

Ргp4

=MhbxGb. (3.10)

Для нахождения базисной матрицы Мь воспользуемся уравнением для кри-вых Эрмита*•• Q(t)=[x(t), y(t), z(t)]=TxMhxGh, а

в котором заменим Gh на Mh Gb и представим Мь в виде MbMh , тогда

Q(t)=Tx MhxGh= Tx Mhx(Mhb xGb) = Тх (MhxMh) xGb = TxMbx Gb.

Выполнив матричное умножение, получим

3

-3

1

3

-6

3

0

-3

3

0

0

1

0

0

0

Окончательно имеем

Четыре полинома, которыми взвешены ко-ординаты геометрического вектора в уравне-нии (3.12), называются полиномами Берн-штейна (базисом Бернштейна) (рис. 3.15). Повнешнему виду этих полиномов легко оценитьвлияние контрольных точек на результирую-щую форму кривой Безье. При t = 0 только В]отличен от нуля, поэтому в этой точке криваяприближается к Pi. Аналогично при t - 1 толь-ко полином В4 вносит свой заметный вклад вповедение кривой, поэтому на форму кривойвлияет только положение точки Р4.

На рис. 3.16 показаны два сегмента кривойБезье, соединенные общей точкой. Для ее при-надлежности классу G1 требуется выполнениеусловия

Р3-Р4=к(Р4-Р5), к>0.

(3.11)

(3.12)

Рис. 3.15. Представление поли-номов Бернштейна, которые слу-жат весовыми коэффициентами вматематическом описании кривых

Безье:

В, = ( 1 - 0 3 ; B2 = 3t(\-t)2;

191

3. Математические модели геометрических объектов

*Pl Это значит, что три точки Ръ, Р4, Р5 долж-^_ 5 _ рь ны отличаться друг от друга, но лежать на

одной прямой. Если коэффициент к = 1, тодополнительно к непрерывности класса G1

pi p pi гарантируется принадлежность кривой

->-., * классу С1.Рис. 3.16. Два сегмента кривой Безье, ^g-

, „ „ „ Обозначим полиномы двух смежныхсоединенные общей точкой Р4 . . , J . тж

сегментов xt (левого) и хг (правого). Ис-пользуя введенные обозначения, можно

сформулировать условия, которые обеспечивают выполнимость условий С0 и С1

в точке сочленения сегментов:

Применив уравнение (3.12), получим

Как и предполагалось, эти условия выполняются и для двух оставшихсякоординат у и z. Для экономии места соответствующие выражения опускаются.Таким образом, для выполнимости условий С0 и С1 требуется, чтобы Р4 - Р3 =

= Р5-РА.

Если проанализировать полиномы Бернштейна (й| - В4), то очевидно, что ихсумма всегда равна единице, а каждый из них принимает только неотрицатель-ные значения на интервале 0 < t < 1. Таким образом, Q(t) представляет собойвзвешенное среднее четырех контрольных точек. Это значит, что каждый сег-мент кривой Безье полностью вписан в выпуклую оболочку, форма и положениекоторой зависит от контрольных точек (см. рис. 3.14). Для двухмерных кривыхэту оболочку можно представить как многоугольник, который образует резино-вая нить, натянутая на контрольные точки. Для кривых в трехмерном простран-стве оболочкой служит полиэдр, образованный подобно многоугольнику.

Свойство выпуклой оболочки сохраняется для всех кубических кривых (нетолько кривых Безье), определенных как взвешенная сумма контрольных точек,если их веса неотрицательны и в сумме дают единицу. Более того, это утверж-дение оказывается справедливым и для n-мерного пространства.

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

192

3.2. Параметрические кубические кривые

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

В заключение раздела приведем краткую сводку основных свойств кривыхБезье:

• форма кривой Безье зависит от выпуклой оболочки, образованной конт-рольными точками кривой;

• первая и последняя точки кривой совпадают с соответствующими точкамиопределяющего многоугольника;

• векторы касательных на концах кривой Безье по направлению совпадают спервой и последней сторонами многоугольника;

• кривая обладает свойством уменьшения вариации. Это означает, что криваяпересекает любую прямую линию не чаще, чем определяющий многоугольник;

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

ка, зависит от интерполяции или аппроксимации, устанавливающей связь кри-вой и многоугольника. Здесь основой является выбор базисных функций. БазисБернштейна, который порождает кривые Безье, обладает двумя свойствами, ог-раничивающими гибкость кривых. Ограничение состоит в том, что количествовершин многоугольника жестко задает порядок многочлена. Например, кубиче-ская кривая должна быть задана четырьмя вершинами и тремя отрезками. Мно-гоугольник из шести точек всегда порождает кривую пятого порядка. Единст-венный способ понизить степень кривой — сократить число вершин, а повыситьстепень кривой — увеличить их число.

Второе ограничение следует из глобальной природы базиса Бернштейна.Это означает, что величина аппроксимирующих функций В,(?) из уравнения(3.12) ненулевая для всех значений параметра t в интервале от 0 до 1. Любаяточка на кривой Безье зависит от всех определяющих вершин, поэтому измене-ние какой-либо одной вершины оказывает влияние на всю кривую. Локальныевоздействия на кривую невозможны.

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

193

3. Математические модели геометрических объектов

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

3.2.4. Однородные нерациональные В-сплайны

Термин «сплайн» заимствован из традиционной технологии изготовленияповерхностей сложного профиля. Так ранее называли полосы материала, кото-рые под действием грузов выгибались таким образом, чтобы получить искомуюконфигурацию сложной фигурной поверхности. Математическим эквивалентомфизических сплайнов служат так называемые натуральные кубические сплайны,представляющие собой непрерывные кубические полиномы, форма которых за-дается п контрольными точками. Кривые этого вида обладают более высокойстепенью гладкости, чем кривые Эрмита и Безье. При выполнении некоторыхдополнительных условий они могут принадлежать к классам С0, С1 и С2. Одна-ко их применение в системах машинной графики сдерживается двумя недостат-ками. Вычисление формы натуральных полиномов требует обращения матрицвысокого порядка, что затрудняет интерактивную работу с ними даже на мощ-ных вычислительных системах. Кроме того, смещение контрольной точки вле-чет за собой не локальные изменения формы, а влияет на общую форму кривой.••;•• В-сплайны — совокупность полиномиальных сегментов, положение кото-рых задается небольшим числом контрольных точек. Смещение одной кон-трольной точки влияет только на некоторый фрагмент кривой и не вносит гло-бальных изменений в ее форму. В-сплайны обладают такой же гладкостью вточках сочленения, как натуральные сплайны, но значительно превосходят по-следние по эффективности вычислений.

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

Кубический В-сплайн задается последовательностью полиномиальных сег-ментов 2з, Q^--,Qm, положение которых зависит от контрольных точек Ро, Ри

Рт, т > 3. Сегменты, образующие кривую, могут быть определены как функцииаргумента t на интервале 0 < t < 1, однако удобнее переопределить их таким об-разом, чтобы они принимали значения на общем последовательном интервале(для этого достаточно выполнить подстановку t - t + к).

Итак, каждый сегмент Qt задан на интервале t, < t < t,•+ ь где 3 «S i < т. Пер-вый сегмент (2з (w - 3) задан на интервале /3 ^ t < и четырьмя контрольнымиточками Р0- • -Ръ- Для каждого i > 4 между соседними сегментами <2<_i и <2, суще-ствует точка сочленения или узел, положение которого задается значением па-

194

3.2. Параметрические кубические кривые

Р\

О x(t)

Рис. 3.17. Пример В-сплайна, обра-

зованного сегментами Q^-Qg'-

• — узлы; • — контрольные точки

раметра /,. Это значение будем называть уз- У('Уловым. Начальный узел расположен в точке?з, конечный — в tm+\, общее число узлов накривой равно т-\.

На рис. 3.17 показан пример двухмерногосплайна с выделенными узлами и контроль-ными точками.

Название «однородный сплайн» означает,что все узлы расположены на равном расстоя-нии по значениям параметра t. Без потери общ-ности можно предположить ц = 0, tM - t,•• = 1.В подразд. 3.2.5 рассматриваются сплайны, укоторых расстояния между узлами могутбыть не равны. Такие объекты называютсянеоднородными В-сплайнами. Термин «нера-циональные» используется для того, чтобыотличить нерациональные объекты от так называемых рациональных сплайнов.Последние представляют собой параметрические кривые, у которых координатыx{t), y(i) и z{t) представляют собой отношение двух кубических полиномов. Рацио-нальные сплайны рассматриваются в следующем разделе. Префикс «В» означает,что кривые этого вида представляют собой взвешенную сумму полиномиальныхбазисных функций. Он вводит явное различение В-сплайнов от натуральных, ко-торые этим свойством не обладают.

Каждый из т - 2 криволинейных сегментов В-сплайна задается четырьмяточками из т + 1 контрольных. В частности, сегмент £2, определяется конт-рольными точками Pi ъ, Р,_2, Л-1 и Pt. Таким образом, геометрический векторВ-сплайна GB для сегмента <2/ имеет следующий вид:

ri-3

ri-2т.

Pi

Первый сегмент <23 кривой задается контрольными точками Ро-Рз при зна-чениях параметра t в диапазоне от t3 = 0 до t4 = 1, положение сегмента QA опре-деляется точками Р\ -РА И значениями параметра в диапазоне от и = 1 до t5 = 2.Наконец, последний сегмент Qm задается посредством контрольных точек Рт-3,Рт-2, Рт-\, Рт в диапазоне от tm = т - 3 до tm+] = га - 2. В общем случае сегмент Qt

берет свое начало в районе контрольной точки Р^2, а заканчивается в окрестно-сти контрольной точки /V,. Можно показать, что стыковочные функции сегмен-тов В-сплайна всюду неотрицательны, а их сумма равна единице. Это значит,что геометрия сегментов определяется выпуклой оболочкой, которая задаетсячетырьмя контрольными точками.

195

3. Математические модели геометрических объектов

у (О

о x(t)

Рис. 3.18. Пример В-сплаина с раз-ными положениями одной кон-

трольной точки (Р 4 ):

• — узлы; • — контрольные точки; 1 —исходная кривая; 2 — кривая после

с д в и г а

Итак, каждый криволинейный фрагментзадается четырьмя контрольными точками.В свою очередь, каждая контрольная точка,исключая первую и последнюю в последова-тельности Ро, Р\, ..., Рт, оказывает влияниена четыре сегмента кривой. Если передви-нуть контрольную точку в определенном на-правлении, то в ту же сторону будут смеще-ны зависящие от нее сегменты кривой. Ос-тальные фрагменты не изменят своего поло-жения и формы.

На рис. 3.18 показан пример В-сплайна вдвух положениях. Верхняя кривая полученасмещением одной контрольной точки РА, чтоповлияло только на четыре подчиненныхсегмента кривой, остальные ее части не пре-терпели никаких изменении. Это свойствоограниченности изменений характерно длявсех типов В-сплайнов, а также и другим ви-

дам кривых, обсуждаемых далее.Обозначим через Г, вектор-строку:

[(t-tf, (t-tf, t-b), 1].

Тогда формулу В-сплайна для сегмента / можно записать в следующем виде:

Qi(t) = Ttx MBs x GBsj, * , . < * « ti+l. (3.13)

Уравнение всей кривой можно получить, применив уравнение (3.13) для3 < i «£ т.

Пропуская промежуточные вычисления,приведем выражение базисной матрицы Мв

В-сплайна:

-1

3

-3

1

3

-6

0

4

-3

3

3

1

1

0

0

0

Стыковочные функции Вв записываются

(по аналогии с кривыми Безье и Эрмита) в ви-

де TtxMBs. Важно, что стыковочные функ-

ции всех криволинейных сегментов В-сплайна

1 t

Р и с . 3.19. Стыковочные функции

В-сплайна

196

3.2. Параметрические кубические кривые

равны друг другу. Для каждого г'-го сегмента значение t - ?, лежит в пределах отО (при t = tj) до 1 (при t = f,+i). Если заменить t - ?, на t, а интервал [th ?,+,] на[О, 1], то получим

В в $ =Т Bs [ В з , B i , B i , B J

= -[-t3+3t2-3t + l, 3t3-6t2+4, -3t3+3t2+3t + l, t3] = (3.14)6

= - [ ( l - ? ) 3 , 3t3-6t2+4, -Зг 3 +Зг 2 +Зг + 1, ?3]; 0 < t < 1.6

На рис. 3.19 показаны все четыре стыковочные функции В-сплайна. Отметимособенности этих кривых: на концах единичного интервала три из четырех функ-ций отличны от нуля; все функции неотрицательны, а их сумма равна единице.При этом каждый сегмент кривой принадлежит некоторой выпуклой оболочке.

Развернем уравнение (3.13), заменив на втором шаге преобразований t-t-, на Г.

Bs B( =BBs3 x /^з +BBs_2 x Pt_2 +BBs_{ x />_, +BBso i

_ (1-Q3

n , 3?3-6f2+4n , -3f3+3f2+3?+ln t\ ( З Л 5 )

D O D O

Покажем, что сегменты Qt и Qi+] в точке своего сочленения принадлежатклассам С0, С1, С2. Рассмотрим координату х, которую с левой и правой сторонузла ?,+i можно записать в виде x,{t - t,) и xi+i(t - ?,). Все выкладки, которые далееприведены для координаты х, можно распространить на координаты у и z.

Для доказательства утверждения достаточно подтвердить правильность со-отношений

dXj(tM) = dxM{tM) ш

dt dt

d2xt(tM) =d2xM{tM)

dt2 dt2 '

Заменим аргумент t - t, на t и перепишем эти уравнения в следующем виде:

xi \t-tj=l =xi+\ \t-ti+]

= 0'

^L\ =^!±L\ =0;dt ' dt M

d2xi. _d2xM , _2 lf-/.=l - ~Y~ \t-ti+, — U-

dr ' dtz ' '

197

3. Математические модели геометрических объектов

Вычислив приведенные выражения, получим .™iffr'-

Xi l/-?,=l ~Xi+\ l-r,-+1=0

< > •

dt\t-t=\ •

_dxM

dt "-'•

d\M

dt 2 M=> dt 2 M+i=0"4- P

В-сплайны обладают высокой степенью гладкости. За это полезное во мно-гих приложениях свойство приходится платить некоторой потерей управляемо-сти данного сорта объектов. Формой кривой можно управлять изменяя положе-ния контрольных точек. Отметим несколько важных частных случаев. Еслиположить Pj_2 = Pi 2, то кривая пройдет ближе к данной контрольной точке. Сег-мент Qj кривой, в пределах которого локализовано данное воздействие, зависиттеперь только от трех контрольных точек, а точка Pt_2 = P,_i в уравнении (3.15)имеет двукратный вес и соответственно большее влияние на поведение данногофрагмента. Если некоторая контрольная точка используется 3 раза, напримерPi г = Л-i = Л> то уравнение (3.15) принимает вид

Qi (0=BBS_3 х /ь + ( V 2

+ V

а сегмент Qt превращается в прямую линию.На рис. 3.20 изображены три конфигурации сегментов сплайна и их кон-

трольных точек. Рис. 3.20, а демонстрирует ситуацию, когда существуют ог-раничения на число свободных контрольных точек. Выпуклые оболочки двухсмежных сегментов перекрываются; точка сочленения сегментов <2з и Q4

Ро Pi PA PO Pi

Рис. 3.20. Влияние контрольных точек на положение сегментов В-сплайна:

а — контрольные точки различные; б — две контрольные точки Р, и Р2 совпадают; в — три кон-трольные точки Р\, Р2 и Р3 совпадают; выпуклая оболочка сегмента Qy, выпук-

лая оболочка сегмента Q4 . ...,-.,..,

3.2. Параметрические кубические кривые

принадлежит области пересечения оболочек. На рис. 3.20, б положение кон-трольных точек Р] и Р2 совпадает. В результате выпуклые оболочки соседнихфрагментов кривой получили общую границу по линии Р2Ръ а точка сочле-нения сегментов принадлежит этой прямой. На рис. 3.20, в показан пример стремя совпадающими контрольными точками (Р, = Р2 = Р3)- Это самый стро-гий тип ограничений приводит к вырождению выпуклых оболочек и накла-дывает предельно жесткие ограничения на размещения точки сочленениясегментов. В этом случае точка сочленения сегментов совпадает с тройнойконтрольной точкой.

3.2.5. Неоднородные нерациональные В-сплайны

Как отмечалось в подразд. 3.2.4, у однородных нерациональных сплайноврасстояния между соседними точками сочленения равны между собой. Иногдаэто жесткое ограничение преодолевается введением неоднородных нерацио-нальных В-сплайнов. Эти сплайны могут иметь неравномерную последователь-ность узлов. У сегментов кривых этого вида стыковочная функция в общем слу-чае неодинаковая.

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

Чтобы рассмотреть неоднородные В-сплайны в общем случае, требуетсянемного изменить принятые ранее соглашения об обозначениях. Как и ранее,сплайн представляет собой непрерывную последовательность сегментов, кото-рые продуцируются кубическими полиномами. Положение кривой задается кон-трольными точками Р0-Рт. Узлы кривой образуют неубывающую последова-тельность to-tm+4, число узлов превосходит число контрольных точек ровно начетыре. Минимальное число контрольных точек равно четырем, поэтому самаякороткая последовательность узлов равна восьми.

По определению неоднородных нерациональных В-сплайнов последова-тельность узлов должна быть неубывающей. В частности, расстояния между со-седними узлами могут быть равны. В подобных ситуациях можно говорить ократности узлов и параметров. Пусть, например, последовательность значенийпараметра для узлов некоторой кривой имеет вид (0, 0, 0, 1, 1, 2, 3, 4, 4, 5, 5, 5, 5).Здесь значение 0 имеет кратность четыре, 1 — кратность два, значения 2 и 3 ха-рактеризуются единичной кратностью и т. д.

3. Математические модели геометрических объектов

Сегмент кривой Q, задается контрольными точками Р,_3, Pi-2, Pi \, Pi и стыко-

вочными функциями #,-_з,4(0> B(_24(t), Bt_lA{t), ^i,4(0 в виде взвешенной суммы

Кривая не определена за пределами интервала fo, ?m+i]- Если ?,• = /,+ь то сег-мент <2, вырождается в точку, что дает дополнительные возможности по обра-ботке неоднородных сплайнов.

В отличие от других типов сплайнов для неоднородных нерациональныхВ-сплайнов не существует единственного набора стыковочных функций. Онизависят от интервалов между узлами и определяются рекурсивно. Обозначимчерез Bjj(t) стыковочную функцию ./'-го порядка контрольной точки Р,-. Посколь-ку рассматриваются кубические сплайны, то рекурсивное определение будетограничено функциями вида Bi4(t). Рекурсивные соотношения, задающие стыко-вочные функции, имеют следующий вид:

, в противном случае;

Д 2 ( 0 = - ^ - я , - ,(0 + ?;+2_~г Д,-'Ж h ',42 h+l

I A M o ( ) , + 1 > 3 ( )fi+3 ~ '1 '1+4 ~ 'i+l

На рис. 3.21 показана схема вычисления стыковочных функций (3.16). Рису-нок демонстрирует, почему для вычисления четырех стыковочных функций тре-буется вектор длиной восемь. На интервале 0 < t < 1 функция BX\{t) равна едини-це, все остальные функции принимают нулевое значение. Очевидно, что Вг,г(О и#з,2(О представляют собой линейные функции и служат для задания линейной ин-терполяции между двумя контрольными точками. Функции B]i3(t), #2,з(0 и #з,з(Оявляются квадратичными и служат для определения квадратичной интерполяции.

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

Можно показать, что все стыковочные функции принимают неотрицатель-ные значения, а их сумма равна единице. Это значит, что все сегменты неодно-родного нерационального В-сплайна лежат внутри некоторой выпуклой оболоч-ки, опирающейся на четыре контрольные точки. -д ....;„ „;„,„_ .

200

5,2(0

•50,2(0=0

52,2(0=

53,2(0=

В4,2«)=0

,2 (0=0

,з (0=0-

1

0

1

0

\

1

/1

1 S

0

1 -

/

0

1 -

0

1

1

1

"50,4(0 =

5i,4(0=

•52,4(0=

•\

0

1 -

/0

1 -

0

1 -

0

V1

1

/Л.1

1

t7=o

Рис. 3.21. Схема вычисления стыковочных функций: распределение узлов кривой задается вектором (0, 0, 0, 0, 1, 1, 1, 1)

3. Математические модели геометрических объектов

Увеличение кратности узлов влечет за собой два главных следствия. Во-первых, каждое значение аргумента г, принадлежит выпуклой оболочке точекPi-з, Л-2 и Р, ]. Если величины ?, и ti+l равны, то они, с одной стороны, должныпринадлежать выпуклой оболочке Р,_3, Л-г и Л-i и, с другой стороны, оболочкеPi-2, Pi-\ и Р^ Это значит, что они будут лежать на прямой, соединяющей точкиР,_2 и Р,_,. Если tt - ti+\ = ti+2, то такой узел обязан совпадать с контрольной точ-кой />,_,. Условие /,• = ti+\ = ti+2 = ti+3 требует размещения узла сразу на двух кон-трольных точках /*,-_] и Pj. Это значит, что кривая в данном узле претерпеваетразрыв. Кроме того, кратные узлы снижают максимальный уровень гладкостикривой.

На рис. 3.22 показаны два примера кривых, поясняющих зависимость фор-мы от кратности узлов. Все узлы верхней кривой, изображенной на рис. 3.22, а,имеют кратность, равную единице. Последовательность узлов можно описатьвектором (0, 1, 2, 3, 4, 5). В местах сочленения сегментов кривая принадлежитклассам С и G2. Сегменты этой кривой задаются четырьмя контрольными точ-ками и зависят от четырех стыковочных функций. Каждый фрагмент принадле-

У

б

Рис. 3.22. Влияние кратных узлов на поведение кривых:

а — без кратных узлов; б — с одним двойным узлом; —, ••••, границы выпуклых оболочек

202

3.2. Параметрические кубические кривые

жит выпуклой оболочке. Смежные сегменты имеют по три общие контрольныеточки. Например, сегмент <23 зависит от точек Ро, Р], Р2, Рз, а следующий на нимсегмент Q4 задается точками Р\, Р2, Рз и Р4.

Кривая, представленная на рис. 3.22, б, имеет один двойной узел f4 = ts, по-этому сегмент Q4 равен нулю. Последовательность узлов можно записать в видевектора (0, 1, 1,2, 3, 4). В результате сегменты £>з и Q5 становятся смежными.Общей частью их выпуклых оболочек является прямая Р2Рз- Точка сочленениясегментов принадлежит этой прямой. В точке сочленения кривая обладает глад-костью по классам С1 и G2.

Еще два примера кривых приведены на рис. 3.23. Последовательность узлов,изображенная на рис. 3.23, а, задается вектором (0, 1, 1, 1, 2, 3), что означает на-личие узла кратности три. В результате сегменты Q4 и Q$ вырождаются в точку.Выпуклые оболочки сегментов Q3 и Q6 пересекаются в одной точке Р3. В соот-ветствии с этим условием кривая должна проходить через данную контрольнуюточку.

Рис. 3.23. Влияние узлов высокой кратности на поведение кривых:

а — с одним узлом кратности три; б — кривая с узлом кратности четыре;—, границы выпуклых оболочек

203

3. Математические модели геометрических объектов

U=h=t6=h=l

•Л

h=h=h=\

Рис. 3.24. Примеры вырожденных сплайнов:

а — форма сплайна задается конечными точками; б — открытый сплайн с узловымвектором (0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 5, 5); в — замкнутый сплайн, задаваемый

узловым вектором (0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 5, 5, 5)

Кривая, приведенная на рис. 3.23, б, имеет узел кратности четыре, а соответ-ствующий вектор узлов имеет вид (0, 1, 1, 1, 1,2). Сплайн состоит из двух сег-ментов 2з и Q7, которые не имеют общих контрольных точек, что приводит кнарушению непрерывности.

На рис. 3.24 показаны три кривые, полученные описанным математическимаппаратом. Сплайн, представленный на рис. 3.24, а, описывается вектором узлов(0, 0, 0, 0, 1, 1, 1, 1). Фактически положение этой кривой определяется конечны-ми точками, промежуточные точки не оказывают влияния на ее форму и поло-жение. Это вырожденная форма неоднородного нерационального В-сплайна,которая совпадает с кривой Безье. Два других В-сплайна (рис. 3.24, б, в) начи-наются и оканчиваются в узлах кратности три. Они описываются одинаковымиузловыми векторами (0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 5, 5), но различными кон-

204

3.2. Параметрические кубические кривые

трольными точками. Каждая кривая состоит из сегментов Q^-Qi- Сегменты QA,<2S и Qn опираются на кратные узлы и имеют нулевую длину.

3.2.6. Рациональная форма кривых и сплайнов

В общем случае любой сегмент рациональной кубической кривой можно за-писать в следующем виде:

W(t) W(t) W(t)

где X(t), Y(t), Z{t)m W(t) — кубические полиномиальные кривые, контроль-

ные точки которых заданы в однородных координатах.Кривую можно представить как четверку Q(t)=[X(t), Y(t), Z{t), W(t)], су-

ществующую в некотором однородном пространстве. Чтобы задать кривую втрехмерном пространстве, достаточно каждую координату этого вектора поде-лить на W(t). Очевидно, что любая нерациональная кривая может быть пред-ставлена в рациональном виде простым добавлением W(t) = 1 в качестве четвер-того элемента. В частности, в таком виде можно представить кривые Безье иЭрмита и многие другие типы кривых. Неоднородные В-сплайны, приведенныек рациональной форме, в литературе по машинной графике называются NURBS-кривые (сокращение от nonuniform rational B-spline).

Рациональные кривые обладают несколькими преимуществами, самым важ-ным из которых является то, что они инвариантны относительно некоторых пре-образований контрольных точек. К числу допустимых преобразований относят-ся: поворот, масштабирование, параллельный перенос и перспективное отобра-жение. Нерациональные кривые менее устойчивы в этом отношении, так как онисохраняют инвариантность только относительно поворота, масштабирования иперемещения.

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

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

205

3. Математические модели геометрических объектов

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

3.2.7. Разбиение кривых

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

Существуют два основных подхода для решения этой задачи:• увеличение степени полиномов, например с трех до четырех или выше.

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

• увеличение числа контрольных точек путем разбиения сегментов кри-вых. Пусть, например, имеется сегмент кривой Безье с четырьмя контроль-ными точками. Если разделить его на две части, то число контрольных точеквозрастет до семи, что улучшит управляемость кривой. Для неоднородныхВ-сплайнов аналогичный процесс называется подразбиением (refinement) изаключается в добавлении произвольного числа новых контрольных точек.Очень часто эту операцию приходится выполнять в процессе визуализациикривых и поверхностей.

Рассмотрим постановку задачи. Дана кривая Безье Q(t), положение которойопределяется точками Рь Р2, Рз и Р4- Требуется найти левую кривую, задавае-мую точками L\, Li, L3 и L4, которая совпадает с исходной кривой на полуинтер-вале О < t < 1/2. По тем же исходным данным необходимо определить правуюкривую, которая совпадает с заданной кривой на полуинтервале 1/2 < t < 1 сточками /?i, R2, /?з и R4.

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

Р\Р2 и Р2Рз в отношении . Далее необходимо найти положение линии ///?3,

которая делит отрезки Р2Рз и РзР* В ТОЙ же пропорции. После этого следует про-

206

3.2. Параметрические кубические кривые ••*••

вести линию Lj,R2, разбивающую отрезки L2Hи HRT, В заданном соотношении. В результатена кривой Q(t) будет получена точка L4 = R\,которая, в свою очередь, разобьет отрезок

tL3/?2 в отношении .

1-гВсе вычисления существенно упрощают-

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

Рис. 3.25. Схема разбиения кривойБезье при t - 1/2

Р1+Р2 Н = -

R2-

2

H+R,LA-RX —

г ' 2Обозначим DB и DB — левую и правую части кривой Безье в матричном

представлении. С помощью этих матриц можно записать выражение, задающее

левую GB и правую GB части геометрического вектора разделенной кривой

Безье. Они описываются следующими соотношениями:

G»—DRxGn——

8

4

2

1

0

4

4

3

0

0

2

3

0"

0

0

1

Pi'

Pi

р3

Л.

}I=DR

BXGE

0 2 4 2

0 0 4 4

0 0 0 8 Л.Каждая новая контрольная точка L, (/?,•) кривой Безье представляет собой

взвешенную сумму Р(, причем каждая координата принимает только неотрица-тельные значения и их сумма равна единице. Таким образом, части кривой Безьележат внутри выпуклой оболочки, опирающейся на контрольные точки кривой.Это значит, что новые контрольные точки не могут находиться далеко от кри-вой. В действительности они лежат ближе к ней, чем ее оригинальные кон-трольные точки. Это свойство сокращения осцилляции справедливо для любогосплайна, обладающего выпуклой оболочкой. Из очевидной симметрии геомет-

т р

рических построений следует симметрия матриц DB и DB.

207

3. Математические модели геометрических объектов

Разделение кривой Безье при / = 1/2 существенно упрощает саму процедуруи все сопутствующие вычисления. Игогда требуется решить эту задачу в общемвиде, т. е. разделить кривую в произвольной точке, положение которой задаетсяпользователем. Процедура разбиения в основных своих операциях совпадает сописанной за исключением пропорции деления сторон, которая в общем случае

tравна

Соответствующие матрицы

общем случае имеют вид

задающие разделение В-сплайна, в

=DB XGD = -

0

4

6

4

1

6

4

1

0

0

1

4

6

1

4

6

4

0"

0

0

1

0"

0

1

4_

~Pi-i

Pi-2

Pi-l

A _~Р,-з~

Pi-2

Pi-X

A -' Если внимательно посмотреть на эти матрицы, то очевидно, что четыре кон-

трольные точки GB и новые контрольные точки находятся в конфликте. Изме-

нения старых или новых точек приводят к нарушению связности кривой. Про-

блема решается использованием неоднородных В-сплайнов.Разделение неоднородного В-сплайна — непростая задача, которая не опи-

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

Пусть неоднородный В-сплайн задан последовательностью контрольныхточек Ро, Р\, ..., Р„. Будем считать, что известно значение параметра t - t', за-дающего положение нового узла. Требуется найти новую последовательностьконтрольных точек Qo, <2ь •••, Qn+\, задающую положение уточненной кривой.Без ограничения общности можно считать, что tt• < t < tj+\. Новые контрольныеточки кривой можно найти по следующим рекуррентным зависимостям:

(3.17)

где а, задается соотношениями

208

3.2. Параметрические кубические кривые

а£-=1, К / < J —3;

а,- = ~ '" , j-2<i^j; (3.18)

а,.=0, ; + 1<1<и.

Рассмотрим работу описанного способа на примере кривой, заданной по-следовательностью узлов (0, 0, 0, 0, 1, 1, 1, 1). Координаты х вектора контроль-ных точек записываются в виде (5, 8, 9, 6), положение новой точки задается па-раметром t - 0,5 (п = 3, j - 3). Непосредственные вычисления по формулам(3.18) позволяют найти значения коэффициентов а,; их удобно записать в видевектора (0,5; 0,5; 0,5). Применяя уравнения (3.17), найдем координаты х новыхконтрольных точек Qt. Они равны (5,0; 6,5; 8,5; 7,5; 6,0).

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

3.2.8. Преобразование представлений

Решение многих прикладных задач требует преобразования формы пред-ставления кривых. Иными словами, задана кривая, представленная геометриче-ским вектором G\ и базисной матрицей Мь Требуется найти геометрическийвектор G2 и базисную матрицу М2, не меняющие кривую, а значит, удовлетво-ряющие соотношению G\MX = G2M2. Решим это простое матричное уравнениеотносительно G2:

G2=M2

xxMxxGx=Ml2xG{.

Матрица МХ2 =M2

xxMx выполняет преобразование известного геометри-

ческого вектора G\ в неизвестный вектор G2. Преобразование В-сплайнов в кри-

вые Безье выполняется при помощи матрицы

Мв =М1ххМв = -

209

1

0

0

0

4

4

2

1

1

2

4

4

0

0

0

1

3. Математические модели геометрических объектов

а обратное преобразование

вл

задается матрицей

_,1, ~ BS

X В-

'6

0

0

0

-7

2

-1

2

2

-1

2

-7

0

0

0

6

Неоднородные В-сплайны не описываются матричными соотношениями вявной форме, но существует косвенный путь преобразования такого рода объек-тов. Напомним, что В-сплайн с последовательностью узлов (0, 0, 0, 0, 1, 1, 1, 1)представляет собой кривую Безье. Чтобы перевести неоднородный сплайн виную форму, достаточно предварительно превратить его в кривую Безье, доба-вив необходимое количество дополнительных узлов. Трансформация кривыхБезье в другие формы выполняется посредством известных матричных преобра-зований.

3.2.9. Рисование кривых

Существуют два основных способа рисования параметрических кривых:• пошаговая визуализация, когда значения координат x(t), y(i) и z(t) вычис-

ляются при последовательно возрастающих значениях параметра t;• процедура рекурсивного подразбиения, которая завершается при доста-

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

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

Рассмотрим более эффективный способ определения кубических полино-мов, основанный на вычислениях правых разностей. Правая разность функцииf(t) задается соотношением

, 5>0.

) = f(t)+Af(t), а затем в более эко-Перепишем это уравнение в виде

номной итеративной форме

(3.19)

где функция / вычисляется в точках, равноотстоящих друг от друга на одинако-вый интервал 8. Поэтому tn = пд и /„ =f(tn).

Для полинома третьей степени f(t)=at +bt~ +ct + d=TxC правая разность

запишется в следующем виде:

210

3.2. Параметрические кубические кривые

Af(t)=a(t + 5)3 +b(t + b)2+c(t + b) + d-{at3 +bt2 +ct + d) =

=3at28+t(3a82 + 2bd)+ad3 82 b

Из уравнения (3.20) следует, что правая разность функции ДО представляетсобой полином второй степени. Это не очень оптимистический вывод, посколь-ку данная формула является частью уравнения (3.19), которое требует еще иоперации сложения. Попробуем упростить вычисления. Из уравнения (3.19)можно получить

(3.21)

Используя выражения (3.20) и (3.21), после приведения подобных имеем

3 +2ЬЪ2,

т. е. уравнение первой степени относительно параметра t. Запишем уравнение(3.21) в индексной форме:

A2fn=Afn+l-Afn.

Разрешим его относительно Д/л и заменим п на п - 1:

2Л-,- (3-22)

Теперь, чтобы по уравнению (3.19) вычислить слагаемое Д/„, подсчитаем

Д2/л_, и добавим результат к Д / ^ . Поскольку Д2/„_] является линейной

функцией относительно t, предложенная схема намного менее трудоемка по

сравнению с непосредственным вычислением Д/л по уравнению (3.20).

Попробуем еще упростить процедуру вычислений, для этого найдем

Д 3 /(О = А(А2/(О)=Д2/(? + 6)-Д 2 /(О=6а6 3 . (3.23)

Эта правая разность представляет собой постоянную величину. Перепишемуравнение (3.23) в индексной форме и подставим в это выражение найденное

ранее значение для Д fn:

Еще раз перепишем это уравнение, заменив в нем п на п - 2,

Полученный результат можно использовать для быстрого вычисления Д/л

по формуле (3.22).

211

3. Математические модели геометрических объектов

Чтобы организовать вычисления на интервале от п = О до п8 = 1, найдемначальные условия по формулам (3.20)-(3.23) при t = 0. Все необходимые рас-четы выполняются прямым использованием указанных формул. Результат за-пишем в матричной форме:

(3.24)

Перепишем это выражение в более компактной форме, обозначив квадрат-ную матрицу через £(5), а правый вектор-столбец — через С:

D = E(8)xC.

Для решения поставленной задачи требуется найти три функции x(t), y(t),z(t); для этого запишем соответствующие начальные условия в следующемвиде:

А/о

А2/о

А 3 /о .

О

б3

653

653

О

б2

2б3

О

О

б

О

О

1

О

О

О

X

а

Ъ

с

d

. * * • ' •

Dx=E(5)xC

x;

Dy=E(5)xC

y;

D=E(5)xC7.

(3.25)

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

void DrawCurveFwdDif (int n,/* Число шагов, необходимых для рисования кривой */double х, double Дх, double Д2х, double ДЗх,/* Начальные значения для x(t), найденные при t = 0 по формуле(3.25) */double у, double Ду, double Д2у, double ДЗу,/* Начальные значения для y(t) , найденные при t = 0 по формуле(3.25) */double z, double Az, double Д2г. double ДЗг/* Начальные значения для z(t) , найденные при t = 0 по формуле

(3.25) *//* Для расчета Dx, Dy, Dz используется шаг 5 = 1/п */

int i;

MoveAbs3 (х, у, z) ;

212

3.2. Параметрические кубические кривые

/* Перейти к началу кривой */

for(r=0; i < n; i++) {х+=ДХ; Дх+=Л2х; Л2х+=ДЗХ;у+=Ау; ЛУ+=Л2У; Л2У+=ДЗУ;z + = Z\z; Az+=A2z; Д22+=ДЗг;LineAbs(x,у,z)/* Рисование короткого сегмента линии */

}} /* Конец процедуры DrawCurveFwdDif */

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

Вторым способом визуализации кубических кривых, заданных в параметри-ческой форме, является рекурсивное подразбиение. Это адаптивная процедура,которая прекращает обрабатывать сегмент по достижении им достаточной ли-неаризации. Технические детали алгоритмов и их реализация отличаются дляразличных типов кривых. Отличаются и критерии линеаризации, поэтому можнопривести только общую схему алгоритма визуализации:

void DrawCurveRecSub (curve, e)

{if (Straight (curve, e))/* Проверка принадлежности контрольных точек заданной окрестно-сти Е линии */DrawLine (curve);else {SubdivideCurve (curve, leftCurve, rightCurve);DrawCurveRecSub (leftCurve, e);DrawCurveRecSub (rightCurve, £);}/* Конец процедуры DrawCurveRecSub */

В этой программе условный оператор возвращает истинное значение, еслипроверяемая кривая обладает достаточной линейностью.

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

213

3. Математические модели геометрических объектов

большее из расстояний d2 и с/3 становитсяменьше, чем заданная окрестность 8, то криваяс достаточной точностью может быть замененапрямым отрезком, опирающимся на конечныеточки Р\ и РА. Для кривых Безье конечнымиточками служат первая и последняя контроль-ные точки Р\ и Р4-

Практика показывает, что преобразование„ ., Л1- г, ~ кривых различного типа в кривые Безье даетРис. 3.26. Проверка линейности г г г «

конвой Безье возможность применить эффективную проце-дуру визуализации, основанную на рекурсив-ном подразбиении. Эта схема позволяет избе-

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

3.2.10. Сравнение кубических кривых

Свойства параметрических кривых могут значительно отличаться друг отдруга. Восприимчивость к интерактивным изменениям, гладкость в точках сочле-нения, скорость визуализации, трудоемкость вычислений — это далеко неполныйперечень критериев, которые влияют на успешность применения типа кривых вприкладных областях и задачах. В большинстве случаев вопрос о выборе опти-мальной формы представления кривых не стоит. Ранее было показано, что многиематематические модели кривых преобразуются одна в другую без значительныхпотерь и искажений. Например, неоднородные В-сплайны могут быть использо-ваны для внутреннего представления кривых, тогда как пользователю удобнееработать с узлами и касательными, представленными в форме Безье или Эрмита.Многие популярные графические редакторы поддерживают пользовательскийинтерфейс кривых Эрмита, которые внутри редактора обрабатываются как кривыеБезье, описанные на языке PostScript. Развитые CAD-системы характеризуютсяеще большей гибкостью. Они оставляют на усмотрение пользователя выбор однойиз форм представления кривых, которыми могут быть кривые Безье, Эрмита, од-нородные и неоднородные В-сплайны. В большинстве случаев для обработкивнутри системы выбираются неоднородные В-сплайны, поскольку они обладаютнаибольшей общностью и самой высокой гибкостью. >•. -. »•.

214 '

3.2. Параметрические кубические кривые

Таблица 3.1

Свойства кривой

Выпуклая оболочка, за-данная контрольнымиточкамиИнтерполяция некото-рых контрольных точекИнтерполяция всех кон-трольных точекПростота подразделения

Типичная гладкость вузлах классаДостижимая гладкость вузлах классаЧисло управляющих па-раметров

Тип кривой

Эрмита

Непри-менимо

Да

Да

Прием-лемаяC°,G°

C\GX

4

Безье

Да

Да

Нет

Хоро-шая

C°,G°

C\G'

4

Однород-

ныеВ-сплайны

Да

Нет

Нет

Средняя

C\G2

C\G2

4

Неодно-

родныеВ-сплайны

Да

Нет

Нет

Высокая

C\G2

C2,G2

5

Р-сплайны

Да

Нет

Нет

Средняя

C°,G2

C\G2

6

В табл. 3.1 приведена сводка важнейших технических параметров типовкривых. Для сравнения даны свойства сравнительно редкого типа кривых —Р-сплайны. В таблице не упомянута такая важная характеристика, как простотаобращения. Подобное сравнение было бы необъективным, поскольку это свой-ство зависит от особенностей реализации в пакете или редакторе.

Достижимая гладкость в точках сочленения описывается классом, которыйможет иметь кривая после выполнения некоторых дополнительных условий,например коллинеарность контрольных точек или их совпадение. Принадлеж-ность классу С — более жесткое условие, чем принадлежность классу G".Выполнимость первого условия всегда влечет за собой истинность второго.

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

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

215

3. Математические модели геометрических объектов

выполняет пересчет весов контрольных точек и реализует подлинное смещение

узла на величину Ах'ф&х, Ау'&Ау, затем восстанавливает положение курсора.

Этот процесс повторяют циклически до получения искомой формы сплайна.

3.3. Параметрические бикубические поверхности

Параметрические бикубические поверхности во многих отношениях пред-ставляют собой обобщение параметрических кубических кривых. Напомним,что в самом общем виде параметрические кубические кривые описывались сле-дующим выражением:

Q(t)=TxMxG,

где G — геометрический вектор, представляющий собой постоянную величину.Чтобы сохранить общность изложения, изменим принятый способ обозна-

чения. Во-первых, заменим параметр / на s и перепишем основное уравнение

Q(s)=SxMxG.

Пусть значения геометрического вектора меняются по некоторой функции,зависящей от аргумента t. Учитывая это обобщение, запишем основное уравне-ние в следующем виде:

Q(s, t) = SxMxG(t)=SxMxG2(t)

G3(t)(3.26)

При фиксированных значениях параметра t = t\ выражение Q(s, t\) представ-ляет собой кривую, поскольку в этом случае геометрический вектор G(t\) явля-ется константой. Пусть параметр t принимает значения t\, /2, h, • ••> которые не-значительно отличаются по величине и лежат в интервале [0, 1]. В результатебудет порождено семейство близких по форме кривых Q(s, t). Множество этихкривых задает поверхность в трехмерном пространстве. Если координаты гео-метрического вектора G,(?) описываются кубическими полиномами, то говорят,что созданная поверхность относится к классу параметрических бикубическихповерхностей. В дальнейшем будем исходить из этого предположения и рас-сматривать только поверхности подобного вида.

Представим G,(?) в следующем виде:

где

216

3.3. Параметрические бикубические поверхности

Здесь использовано полужирное начертание для отличия от геометрическоговектора кривых, обозначаемого G. В этом выражении g,i представляет собойпервый элемент геометрического вектора кривой G,(?); g/2 — второй и т. д.

Перепишем это уравнение, используя тождество (АхВхС)Т =(С Т хВ т хЛ т ) :

Л\.хГ = [gn, gi2, g ;3, g i 4 ] x M T x f .

Распространим полученное выражение на все четыре координаты геометри-ческого вектора и подставим результат в уравнение (3.26): \

Q{s,t) = SxMx

§11 §12 §13 §14

§21 §22 §23 §24

§31 §32 §33 §34

L§41 §42 §43 §44.

хМТхТ\ (3.27)

Эту громоздкую зависимость можно представить в более компактной форме:

Q(s, t)=SxMxGxMTxTT; 0 < s ; * < 1 . (3.28)

Перепишем уравнение отдельно для каждой координаты:

. x(s, t) = SxMxGx хМтхГт;

y(s,t) = SxMxG.,xMJxTT; (3.29)

z(s,t) = SxMxGz xMTxTT.

Совокупность уравнений (3.29) представляет собой общую модель парамет-рических бикубических поверхностей. Далее рассмотрены самые интересныечастные случаи частные случаи поверхностей данного типа.

3.3.1. Поверхности Эрмита

Поверхности Эрмита полностью задаются геометрической матрицей GH

размера 4 x 4 . Способ генерации этой матрицы полностью совпадает с под-ходом, использованным при выводе уравнения (3.28). Немного уточним этотвывод, применив принятую схему к x(s, t). Воспользуемся уравнением (3.4),которое задает определение кривых Эрмита. Заменив в нем параметр t на s,получим

x(s)=SxMHxGHx.

217

3. Математические модели геометрических объектов

По аналогии с рассуждением, приве-денным в подразд. 3.2.1, запишем это вы-ражение с переменным геометрическимвектором:

x(s, t)=SxMHxGHx(t) =

= SxMHxРАО

(3.30)

Рис. 3.27. Способ представления бику-бической поверхности

Здесь функции PXx(t), P4x(t) задают коор-динаты х конечной и начальной точеккривой по параметру s.

Похожим образом описываются функции Ru (t), R4x (t), они определяют ка-сательные векторы в начальной и конечной точках кривой. Каждое допустимоезначение параметра t определяет положение двух концевых точек и каса-тельных векторов в этих точках.,о На рис. 3.27 показан способ представления бикубической поверхности. Кри-вая P\(t) получена при s = 0, а кривая P4(t) — при s = I. Прочие кубические кри-вые зависят от аргумента s и получены для последовательности значений t = 0,0;0,2; 0,4; 0,6; 0,8; 1,0. Поверхность, изображенная на рис. 3.27, по сути представ-ляет собой кубическую интерполяцию куска поверхности, ограниченного че-тырьмя линиями Px(t)=Q(O, t), P4(0=G0.0, Q(s,0), Q(s,l).

Особо выделяют частный случай бикубических поверхностей, когда всеэлементы границы <2(0, t), Q(\, t), Q(s, 0), Q(s, 1) являются прямыми линиями.Поверхности такого сорта называются линейчатыми. Если прямые линии при-надлежат одной плоскости, то задаваемый ими фрагмент представляет собойчетырехсторонний многоугольник.

Представим компоненты Px(t), PA{t), R\{t), R4(t) в принятой для кривых

Эрмита форме:

P]x(t)=TxMHx

R]x(t)=TxMHx

§п

§12

§13

.§14.

"§31 "

§32

§33

.§34 _

; P4x(t)=TxMHx

X

; R4x(t)=TxMHx

г

§21

§22

§23

~§4, '

§42

§43

_§44.

(3.31)

218

3.3. Параметрические бикубические поверхности

Зависимости (3.31) можно записать в более компактной форме:

[ад, ад, вд, R4(t)]x=TxMHxGT

Hx,'Л...(3.32)

где

§11 §12 §13 §14

§21 §22 §23 §24

§31 §32 §33 §34

.§41 §42 §43 §44.

. j, Выполнив транспонирование обеих частей уравнения (3.32), получим

•ад'адОД

§11 §12 §13 §14

§21 §22 §23 §24

§31 §32 §33 §34

L§41 §42 §43 §44 J

xMT

HxTT=GHxxMT

HxTT. (3.33)

м- Подставив выражение (3.33) в уравнение (3.30), имеем

НА x(s,t)=SxMHxGHxxMT

HxTT.

'* По аналогии можно записать аналитические выражения для двух других ко-ординат:

y{s,t)=SxMHxGHyxMT

HxTT;

HxGHz) = SxMHxGHzxMT

HxTT.H

Для поверхностей Эрмита три матрицы GHx, GHy, GHz размера 4x4 играют

такую же роль, что и матрица GH для кривых. Смысл элементов этих матрицстанет яснее, если обратиться к ранее приведенным уравнениям (3.30) и (3.31).Элемент gi l x представляет собой иное обозначение для х(0, 0), поскольку этостартовая точка для кривой P\x{t). Равным образом gi2x есть ни что иное, какх(0, 1), поскольку этот элемент представляет собой конечную точку кривой

P\x{t). Кроме того, g13x есть другое обозначение для —(0,0), поскольку являет-at

ся начальным касательным вектором для P\x(t). Наконец, есть | r f (0,0),dsdt

поскольку является стартовым касательным вектором для R\x(t).

Используя приведенные интерпретации, перепишем матрицу GHx в сле-дующем виде:

219

3. Математические модели геометрических объектов

х(0,0)

410)

Эх(0,0)

ds

aix(i, о)ds

х(0,1)

х(1,1)

аьс(о, 1)ds

дх(1,1)

Эх(0,0)

dt

Эх(1,0)

Э2х(0,0)

d2x(\, 0)

ЭзЭг

Эх(0,1)

dt

dx(\, 1)

Э/

Э2х(0,1)

dsdt

d2x{\, 1)

(3.34)

По виду и смыслу матрица (3.34) делится на характерные квадратные под-матрицы размером 2x2. Рассмотрим их содержание. В верхней левой части мат-рицы расположены координаты четырех угловых вершин фрагмента поверхно-сти. Верхний правый и левый нижний квадранты матрицы описывают коорди-наты х касательных векторов вдоль каждого параметрического направленияфрагмента поверхности. Нижняя правая часть матрицы объединяет вторые част-ные производные по аргументам s и t. Эти величины описывают скручивание вуглах фрагмента поверхности. Чем выше значение вторых производных, темсильнее проявляют себя деформации данного типа.

На рис. 3.28 показан пример фрагмента поверхности Эрмита; угловые точкиэтого фрагмента помечены элементами матрицы GHx. Каждый вектор на этомрисунке представляет собой кортеж длиной три элемента, которые заимствова-ны из уравнения (3.34).

dt6(0,1)

6(0,1)

^6(0,0) 6(1.0)

6(0,0)dsdt 6(1,1)

Рис. 3.28. Пример фрагмента поверхности Эрмита

220

3.3. Параметрические бикубические поверхности

(If.

Рис. 3.29. Пример поверхности, состоящей из двух пограничных фрагментов

<1 Форма эрмитовых бикубических фрагментов представляет собой важныйчастный случай объектов другого вида, так называемых поверхностей Кунса.Фрагменты поверхностей Кунса могут ограничиваться кривыми любого типа ипроизвольной крутизны. Подобно тому, как кривые Эрмита в узлах обеспечива-ют гладкость класса С1 и G1, поверхности Эрмита гарантируют принадлежностьэтим классам в окрестности сочленения различных кусков.

Рассмотрим эти свойства более подробно. Чтобы обеспечить гладкостькласса С0, граничные линии стыкуемых кусков должны быть идентичны. Этозначит, что контрольные точки обеих поверхностей полностью совпадают награничной кривой. Для выполнения условия С1 требуется полное совпадение награнице не только контрольных точек, но и касательных векторов, а также вто-рых смешанных производных.

Условие G1 является менее жестким. В этом случае должны совпадать толь-ко направления касательных векторов; их величины могут быть различными.Пусть, как показано на рис. 3.29, два фрагмента имеют общую границу. Причему первого фрагмента на этой границе аргумент s = 1, а у второго — s = 0. Тогдадля выполнения гладкости по классу G1 геометрические матрицы фрагментовдолжны иметь следующий вид:

§21 §22 §23 §24

_g4l §43 § 4 4 .

§21 §22 823 824

Здесь коэффициент k > 0, а прочерками обозначены позиции, которые могутпринимать любые значения.

221

3. Математические модели геометрических объектов

3.3.2. Поверхности Безье

Математическое описание бикубических поверхностей Безье можно полу-чить по единой с поверхностями Эрмита схеме. Если выполнить выкладки, ана-логичные предыдущему разделу, то получим

x(s,t)=SxMBxGBxxMT

BxTr;

y(s,t)=SxMBxGByxMT

BxTr; ' j (3.35)

i z(s,t)=SxMBxGBz xMT

BxT\

Геометрическая матрица поверхности Безье состоит из 16 контрольных то-чек. На рис. 3.30 показан фрагмент поверхности этого типа и положение ее кон-трольных точек.

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

Для принадлежности поверхностей классам С0 и G0 требуется, чтобы гра-ничные линии смежных кусков кривых Безье имели четыре совпадающие кон-трольные точки. Принадлежность классу G1 обеспечивается более сложным ус-ловием. Для этого требуется совпадение четырех контрольных точек обоихсмежных фрагментов. Таковыми для примера, приведенного на рис. 3.31, явля-ются точки Р1 4, Ргь, Ри, РАА- Кроме того, наборы точек, лежащие по обе стороныот граничных узлов, должны быть коллинеарными, т. е. лежать на одной пря-мой. Для рис. 3.31 это (Р1 3, Рш Pis), (Ргг, Ри, Pis), (Рзз, Ри, Pis) и (Р 4 3 , Ли, Рл5)-

и

.'1

Рис. 3.30. Фрагмент поверхности Безье и ее контрольные точки

222

3.3. Параметрические бикубические поверхности

Общая граница фрагмента

47

Рис. 3.31. Два фрагмента поверхности Безье, граничащие по Р 1 4 , /*24> 3̂4> Р44

•Л

3.3.3. Бисплайновые поверхности а

Бисплайновыми называются поверхности, которые описываются системой

уравнений следующего вида:

x(s, t)=SxMB хТ т;

x G s xMl xTT;l

z(s,t) = xGB

хГ т .

(3.36)

• 7

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

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

3.3.4. Нормали поверхностей Г £•

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

223

3. Математические модели геометрических объектов

визуализации поверхности, расчета затенения, проверки условий непересеченияпри проектировании механических узлов, вычисления траекторий перемещенияи во многих других проектных ситуациях.

Для вывода аналитического выражения нормали воспользуемся уравнением(3.28), из которого легко найти два касательных вектора к поверхности Q(s, t).

Элементарные вычисления дают выражения для касательного вектора по s:

—Q(s, t)=—(SxMxGxMTxTT)=—(S)xMxGxMTxTT =dt ds as

= [3s2, 2s, 1, O]xMxGxM T xr T .

Аналогично найдем касательный вектор по t:

—Q(s, t)=—(SxMxG xMTxTT)=SxMxG xMTx—(TT)=dt ds dt

= SxMxGxMTx[3t2, It, 1, Of.

Оба полученных касательных вектора расположены параллельно поверхно-сти Q(s, t) в любой точке (s, t), поэтому их векторное произведение являетсяперпендикуляром к Q(s, t). Напомним, что касательные векторы представляютсобой тройки, координаты которых есть значения для х, у и z для бикубическойповерхности. С учетом этого запишем выражение для нормали поверхности:

— Q(s,t)x—Q(s,t)=[yszt-ytzs, zsxt-ztxs, xsyt-xtys],ds dt

где xs — это сокращенная запись для координаты х касательного вектора по s;ys — сокращенная запись координаты у и т. д.

Если в некоторой точке поверхности оба касательных вектора равны нулю,то их векторное произведение тоже равно нулю. Это означает, что в данной точ-ке представление о нормали к поверхности не имеет смысла. Напомним, что ка-сательные векторы могут быть равны нулю в смежных точках, которые принад-лежат классу С1, но не обладать принадлежностью классу G1.

Аналитическое выражение для нормали — полином высокой степени (двепеременные и пятая степень), поэтому его вычисление представляет собой зада-чу большой трудоемкости. Во многих графических редакторах нормали подсчи-тываются приблизительно — по некоторым аппроксимирующим зависимостямневысокой степени.

3.3.5. Визуализация бикубических поверхностей

Для бикубических поверхностей, подобно кубическим параметрическимкривым, существует два основных способа визуализации: итеративное вычисле-

224

3.3. Параметрические бикубические поверхности

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

Рассмотрим способ визуализации, основанный на вычислении. Итерацион-ное вычисление дает хорошие результаты для бикубических поверхностей, ти-пичная форма которых показана на рис. 3.32. Этот фрагмент поверхности пред-ставляет собой два семейства кривых: одно из них состоит из кривых, зависящихот аргумента t, другое — от аргумента s.

Ниже дано описание процедуры визуализации фрагмента бикубической по-верхности как сетки кривых:

typedef double C o e f f s [ 4 ] [4] [3] ;v o i d D r a w S u r f a c e (Coeffs coefficients,I* Коэффициенты д л я Q ( $ , t ) */i n t n s ,/* Число кривых по константе s. Обычно оно равно 5-10 */int n

t,

/* Число кривых по константе t. Обычно оно равно 5-10 */int n)/* Число шагов для воспроизведения каждой кривой. Обычно оноравно 20-100 */

{double 5=1.0/п;/* Размер шага для рисования кривых */double 5

s=1.0/(n

8 - 1);

Рис. 3.32. Пример бикубической поверхности, допускающийпростую организацию процесса визуализации

225

3. Математические модели геометрических объектов

/*Размер шага для перехода к следующей кривой по константе t * /double 5t = 1.0/(n t - 1) ;/*Размер шага для перехода к следующей кривой по константе s*/int i,j; double v, t;/* Рисование ns.кривых по константе s* /for (i=0, s=0.0; i<n

a; i++, s+=5

s) {

/* Рисование кривой по константе s, t меняется от 0 до 1 *//* X, Y, и Z представляют собой функции, по которым выполняютсярасчеты */MoveAbs3 (X(s,0.0), Y(s,0.0), Z(s,0.0));for (j=l, t=5; j<n; j++, t+=5) {/* n — 1 шагов используется для каждой кривой */LineAbs3 (X(s, t), Y(s, t), Z{s, t));

} - -/* Рисование n

t кривых по константе t */

for (i=0, t=0.0; i<nt; i++, t+=5

t) {

/* Рисование кривой по константе, s изменяется от 0 до 1 */MoveAbs3 (X(0.0, t), Y(0.0, t), Z(0.0, г));for (j=l, S = 5; j<n; j++, S+=5) {/* n—1 шагов используется для каждой кривой */.LineAbs3 (X(s, t), Y(s, t), Z(s, t));

}

/* Конец процедуры DrawSurface */

Переборный алгоритм расчета поверхностей оказывается намного более трудо-емким, чем подобный алгоритм для кривых. Действительно, уравнения поверхностидолжны быть вычислены 2/82 раз: при 5 = 0,1 трудоемкость равна 200, при 8 = 0,01она возрастает до 20 000, что заставляет искать альтернативные способы вычисле-ния. Одним из возможных является метод визуализации, основанный на вычисле-нии правых разностей, который подробно рассмотрен в подразд. 3.2.9.

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

(0,1)

is, t) =

(1.0)

Рис. 3.33. Кусок поверхности разбит на четыре фрагмента //, Ir, rl, rr

226

3.3. Параметрические бикубические поверхности

ляет собой обобщение аналогичного алгоритма визуализации кривых. Напом-ним, что процедура DrawCurveRecSub была рассмотрена в подразд. 3.2.9, по-священном визуализации кривых. Основное отличие процедур визуализациикривых поверхностей состоит в том, что кусок бикубической поверхности раз-бивается на четырехугольники, которые повторными рекурсивными вызовамипроцедуры визуализации уменьшаются в размерах и своей формой все болееприближаются к плоскости. Один шаг этой процедуры показан на рис. 3.33.Здесь фрагмент бикубической поверхности разделен на четыре фрагмента и каж-дый из полученных фрагментов обладает более высокой «плоскостностью», чемисходная поверхность.

Критерием остановки служит достаточное приближение к плоскости фраг-ментов разбиения. Тест на планарность является обобщением аналогичной про-цедуры проверки кубических кривых. Строится вспомогательная плоскость,проходящая через три из четырех контрольные точки. Затем находятся расстоя-ния от этой плоскости до 13 остальных контрольных точек. Если максимальнаядлина оказывается меньше, чем некоторая наперед заданная константа е, то про-верка считается успешной.

В процессе рекурсивного подразбиения может возникать проблема, связан-ная с появлением разрывов между аппроксимирующими прямоугольниками. Нарис. 3.34 два смежных куска находятся на разных уровнях обработки. Правыйнижний фрагмент был разделен одинаково с верхней частью поверхности, по-этому между фигурами возникла «аппроксимирующая трещина». Этого эффектаможно избежать, задавая фиксированную глубину рекурсии или устанавливаядостаточно малое значение окрестности е. Оба решения влекут дополнительныевычислительные расходы на избыточные итерации процесса подразбиения. Бо-лее эффективное решение связано с изменением схемы разделения поверхности(рис. 3.35).

Прямой алгоритм делит поверхность на четырехугольники АВСЕ, EFGD иGDCH. Для уменьшения зазора схема деления изменяется на АВСЕ, EFGD' иGD'CH, т. е. вместо точки D используется точка D'.

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

Разрыв междуаппроксимирующими

поверхностями

Рис. 3.34. Возникновение разрыва аппроксимации

227

3. Математические модели геометрических объектов

С

Рис. 3.35. Схема сокращения возможных разрывов в процессерекурсивного подразбиения

щенными зонами. Проблема визуализации поверхностей с разрывами решается припомощи построения так называемой отсекающей кривой. Это вспомогательныйсплайн, заданный в координатах (s, t), а не в исходных координатах (х, у, z).

3.3.6. Поверхности второго порядка

Поверхности второго порядка описываются уравнением неявного вида

f(x, у, z)=ax2 +by2 +cz2 +2dxy+2eyz + 2fxz + 2gx+2hy+2jz + k=0. (3.37)

Это уравнение порождает целое семейство поверхностей второго порядка(квадрик). Например, положим a = b = c = -k= 1, а остальные коэффициентывозьмем равными нулю. Этот частный случай уравнения (3.37) определяет сфе-ру с центром в начале координат. Если все коэффициенты от а до/равны нулю,то получится плоскость.

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

• существование простого алгоритма вычисления нормалей к поверхностям;• возможность проверки принадлежности точки поверхности;• вычисление координаты z по известным значениям координат х и у;• простота расчета области пересечения двух поверхностей второго поряд-

ка и др.Запишем уравнение (3.37) в компактной матричной форме

PTxQxP=0,

228

3.4. Твердотельное моделирование

гдеа

d

f_g

d

b

eh

fe

с

j

g~

h

jk_

; P=

X

у

z1

Q=

Поверхность, представленная матрицей Q, легко деформируется и переме-щается. Если задана трансформационная матрица размера 4x4, то новое со-стояние поверхности Q] может быть представлено в следующем виде:

Ql=(M~l)TxQxM~].

Также легко найти выражение для нормали к поверхности. Пусть поверх-ность второго порядка задана неявным выражением f(x, у, z)=0, тогда выра-

\df df dfl _жение для нормали можно записать как —, —, -*- . Очевидно, что нормали к

|_ dx dy dz Jповерхностям второго порядка значительно проще вычислить, чем для бикуби-ческих поверхностей.

3.4. Твердотельное моделирование

3.4.1. Основные положения

В предыдущем разделе рассматривались математические модели кривых иповерхностей, расположенных в двухмерном и трехмерном пространствах. Су-ществует множество прикладных задач, которые с достаточной полнотой опи-сываются кривыми и поверхностями, но возможности рассмотренного аппаратане покрывают всех потребностей геометрического моделирования. Например, впроцессе автоматизированного формообразования детали требуется строгоразличать внутренние и внешние области ее замкнутой геометрической модели.В большинстве задач проектирования процессов обработки и сборки объект дол-жен быть представлен в виде замкнутой объемной конфигурации. Программиро-вание поведения роботов и робототехнических систем в среде с препятствиямитакже требует подобного описания сцены. Моделирование работы физическихмеханизмов не обходится без учета пространственного фактора. На твердотель-ных моделях базируются программы конечно-элементного анализа, технологи-ческие системы с числовым программным управлением, модули, предназначен-ные для расчета масс-инерционных характеристик детали и множество другихзадач, решаемых в системах CAD/CAM/CAE.

Описание объема трехмерных тел не является простым расширением мето-дов моделирования кривых и поверхностей. Эта проблема требует особых под-

229

3. Математические модели геометрических объектов

ходов и специально разработанных средств. Краткому введению в проблематикутвердотельного моделирования и посвящен этот раздел.

Следует строго различать форму геометрической модели и ее выразительныевозможности. Наличие видимого объема у геометрического объекта не означает егоспособность моделировать все или даже некоторые объемные характеристики. Рас-смотрим это противоречие на примере куба, показанного на рис. 3.36.

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

На рис. 3.36, б показана фигура, описание которой поглощает описание ле-вой фигуры. Все точки и линии левой фигуры входят в правую фигуру, которая,кроме того, содержит еще одну свободную грань BCJI, поэтому не является объ-емом. Очевидно, что для корректного описания объемной геометрии на исполь-зуемые математические средства следует наложить дополнительные ограниче-ния. Ниже приведен примерный список таких требований:

• математическая модель твердотельной геометрии должна отличатьсявысокой универсальностью, достаточной для описания различных физическихобъектов и проектных ситуаций. Очень важны такие качества модели, как не-противоречивость и отсутствие двусмысленностей. Этим критериям не отвечаетописание, приведенное на рис. 3.36;

• модель должна обладать свойством однозначности. Это значит, что каж-дая трехмерная форма получает единственное описание в терминах данноймодели. Если требование однозначности обеспечено, то задача проверки эквива-лентности формы двух объектов решается намного проще, чем для многознач-ных моделей;

/

D

А

/G

/

FХШ!

б

Рис. 3.36. Каркасная модель куба:

а — корректная; б — некорректная, вершины А(0, 0, 0); В(1,0,0); С(1,1,0); D(0,1,0); ДО, 0,1);F(l, 0, 1); G(l, 1, 1); Щ0, 1, 1); линии: АВ, ВС, CD, DA, EF, FG, GH, HE, AE, BF, CG, DH

230

3.4. Твердотельное моделирование

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

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

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

Специалистам в области вычислительной геометрии не известна модель, ко-торая отвечала бы всем перечисленным требованиям. Все способы описанияобъемной геометрии, применяемые в настоящее время, предоставляют разра-ботчикам и пользователям некоторый компромисс при выполнении отдельныхкритериев приведенного перечня.

Далее рассмотрены важнейшие способы, наиболее широко применяемые всовременных графических системах и пакетах.

Точки, линии, плоские грани представляют собой математические абстрак-ции, поскольку у этих образований, по крайней мере, один размер равен нулю.Физические тела занимают некоторый конечный объем трехмерного простран-ства и имеют размеры, отличные от нуля. Для описания геометрии реальных тели предметов используются математические объекты, называемые телами, илитвердыми телами.

Существует объекты, которые допускают приблизительное описание гео-метрии при помощи самой простой аппроксимации границы — фрагментамиплоскостей. Представление такого вида называется плоскогранным (FacetedRepresentation). Геометрические модели этого типа нашли широкое применениев архитектурном моделировании, программировании игр и компьютерной ани-мации.

Более продуктивный подход к описанию трехмерных тел дает так называе-мая конструктивная твердотельная геометрия (Constructive Solid Geometry —CSG), в которой средствами моделирования являются геометрические примити-вы и операции над ними. В качестве примитивов обычно выступают простыетела, имеющие точное геометрическое описание в координатной форме: сферы,прямоугольники, цилиндры, конусы, призмы и пр. Над примитивами и произ-водными телами можно выполнять некоторый набор разрешенных операций.В большинстве промышленных систем геометрического моделирования разре-

231

3. Математические модели геометрических объектов

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

Самый общий подход к моделированию состоит в представлении трехмер-ных тел в виде совокупности ограничивающих поверхностей, ребер и вершин.Каждая граничная оболочка представляет собой множество соединенных друг сдругом поверхностей произвольной формы и включает в себя полное описаниесвоих границ и связей с соседними фрагментами. Этот способ описания объек-тов называется граничным представлением, в англоязычной литературе и в ин-терактивных руководствах многих пакетов машинной графики он называетсяBoundary Representation, или В-rep. Представление тел с помощью границ позво-ляет моделировать трехмерные объекты самой сложной геометрии. Оно допус-кает множество формообразующих операций над телами, сохраняя при этомединый способ описания их внутреннего устройства.

3.4.2. Регулярные булевские операции

Пусть разработан эффективный способ описания геометрии объемных тел.Отвлечемся от технических деталей такого описания и будем опираться на гипо-тезу о его существовании. Из исходных простых геометрических форм можнопостроить более сложные производные объекты. Существует множество спосо-бов формообразования, основанных на комбинации геометрических операндов,но самой естественной техникой такого вида являются булевские операции.Операции сложения, вычитания и пересечения (рис. 3.37) являются обязатель-ными в любой развитой системе геометрического моделирования. Иногда в ихсостав включают некоторые дополнительные способы синтеза, которые не обла-дают общностью трех перечисленных.

Если обычные булевские операции применить к объемным телам, то в резуль-тате можно получить объект с иной размерностью: поверхность, линию или даже

а б в

Рис. 3.37. Булевские операции на примере двух кубов:

a — A U В; б — А П В; в — А -В

232

3.4. Твердотельное моделирование

/

/

АЩ

f

/

/ /

/

/

/

/ /

Рис. 3.38. Варианты операции булевского пересечения

точку. Справедливость этого тезиса подтверждает пример, приведенный на рис. 3.38,где показаны различные варианты пересечения двух кубических объемных тел.

Вместо обычных булевских операций будем использовать так называемыерегулярные операции, которые обозначим привычными символами, но с добав-лением верхнего индекса — звездочки (U*, П*, - * ) . Регулярные операции, буду-чи примененными к объемным операндам, всегда дают геометрическое тело,обладающее объемом, например на рис. 3.38 регулярное пересечение дает не-пустой результат только в первом варианте.

Чтобы глубже исследовать разницу между обычными и регулярными булев-скими операциями, рассмотрим объект, определенный как множество точек,которые разделены на внутренние и граничные. Граничными называются точки,имеющие нулевое расстояние до объекта и его дополнения. Множество гранич-ных точек не всегда принадлежит самому объекту. Замкнутые объекты включа-ют в себя границу, а открытые — нет. Объединение множества внутренних то-чек объекта и его границы обычно называется операцией замыкания. Регуляри-зацией множества называется замыкание множества внутренних точек. Множе-ство, которое эквивалентно само себе после выполнения операции регуляриза-ции, называется регулярным.

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

Рис. 3.39. Регуляризация объекта:

а — исходное состояние множества; б — множество после операции замыкания;в — внутренняя область множества; г — регуляризованное множество

233

3. Математические модели геометрических объектов

точку. Черная точка внутри объекта представляет собой границу, которая непринадлежит самой фигуре.

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

На рис. 3.39, в изображены все внутренние точки объекта, иными словами,он представлен как открытое множество точек. Чтобы получить внутренниеточки, следует отбросить все висячие и несвязные фрагменты.

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

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

Регулярные операции можно сформулировать в терминах обычных булев-ских операций:

A U* В = closure(interior(A U В);

А П* В = closure(interior(A П В);

А -* В = closure(interior(A - В).

Регулярные операции над регулярными операндами всегда дают регуляр-ные множества.

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

Рассмотрим более подробно разницу между двумя типами операций на при-мере объектов, изображенных на рис. 3.40.

На рис. 3.40, а показаны два исходных объекта, которые являются операн-дами для обычного (рис. 3.40, б) и регулярного (рис. 3.40, в) булевского пересе-

1а 6 в

Рис. 3.40. Булевское пересечение:

а — исходное состояние операндов; б — булевское пересечение;в — регулярное булевское пересечение

234

3.4. Твердотельное моделирование

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

Таким образом, пересечение границ входит в результат регулярной булевскойоперации тогда и только тогда, когда внутренние области обоих операндов лежатпо одну сторону от общего фрагмента границы. Это интуитивное определениедает четкий критерий в большинстве простых ситуаций, когда операнды принад-лежат одной плоскости. Для операндов общего положения требуется выработатьболее четкий операциональный критерий. Для этого следует ввести понятие нор-мали к поверхности. Если нормали пересекающихся объектов направлены в однусторону, то они лежат по одну сторону от общей границы. На рис. 3.40, в нормаличерного квадрата и объекта А совпадают, поэтому их общая граница входит в ре-зультат операции.

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

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

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

Таблица 3.2

Нерегулярныеоперации

А,- П Bi

А,-В

В,-А

Ah П В,-

Bh П А,-

Аь-В

Вь-А

#(А„ П Вь)

~(Ah П Вь)

Регулярные операции

A U* В

+

+

+

-

-

+

+

+

-

А П * В

+

-

-

+

+

-

-

+

-

А-* В

-

+

-

-

+

+

-

-

+

235

3. Математические модели геометрических объектов

А В

Ц I "75! Т ЩШВШк. I I ШшШш

е ж з и к

Рис. 3.41. Обычные булевские операции над элементами объектов:

а — операнды А и В; б — А,• П В,; в — А,• - В; г — В,• - А; <) — Аь П В,; е — В4 П А,-; ж — Аь-В;з — Вь-А;и — #(АьП Вь); к — ~(Ah П В,,)

В табл. 3.2 приведены правила сведения регулярных операций к обычным.На рис. 3.41 на примере простейших форм показаны схемы этих операций. Буква-ми А и В обозначены операнды, нижние индексы i и Ъ означают соответственновнутренние и граничные области, #(Ah П Bh) — часть общей границы объектов Аи В, относительно которой А, и В, лежат по одну сторону, наконец, ~{АЬ П Вь)означает часть общей границы, где А и В лежат по разные стороны. Каждая ре-гулярная булевская операция сводится к набору обычных операций, которые втабл. 3.2 отмечены знаком «+».

Для всех регулярных операций каждый фрагмент результирующей границы при-надлежит либо одному, или обоим операндам. Для операций А и * В и Л П*В норма-ли к граням результирующего объекта наследуют свое положение от одного или обо-их операндов. Для операции А -* В действует иное правило. Нормали граней резуль-тирующего тела, которое получено вычитанием В из А, имеют противоположноенаправление нормалям соответствующих граней В. Это следует из тождестваА -* В = А о* В, где В — дополнение В. Тело В может быть получено допол-нением внутренней части тела В с последующим обращением нормалей границы.

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

3.4.3. Параметрическое моделирование геометрии

Во многих отраслях техники сложный объект или система рассматривается каксочетание некоторого набора стандартных элементов. Очевидные преимущества

236

3.4. Твердотельное моделирование

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

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

Примером сложного параметризованного примитива является зубчатое ко-лесо, которое описывается набором из четырех геометрических и конструктив-ных параметров (рис. 3.42).

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

а б

Рис. 3. 42. Параметризованное зубчатое колесо:

а — диаметр — 40, толщина — 10, отверстие — 10, число зубьев — 10;б — диаметр — 60, толщина — 20, отверстие — 15, число зубьев — 16

237

3. Математические модели геометрических объектов

3.4.4. Заметание

Заметанием (sweeping) называется способ формообразования при помощи дви-жения объекта по некоторой траектории или согласно некоторому заданному закону.Это очень продуктивный метод, позволяющий получать трехмерные тела, которые струдом воспроизводятся с помощью иных способов геометрического синтеза. Про-стейший пример этого метода генерации форм дает движение замкнутой двухмер-ной кривой вдоль прямолинейной траектории. Во многих пакетах машинной гра-фики данный метод формообразования называют экструдированием (extrude). Экс-трудирование позволяет получить множество трехмерных форм, описывающихмашиностроительные детали, элементы архитектурных конструкций, предметы ин-терьера и т. п.

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

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

Таким образом, если выбрать образующую, направляющую и закон движения,то множество точек пространства, которое заметет первый объект при смещении повторому, полностью определяет новое, в общем случае трехмерное тело. На рис. 3.43

Рис. 3.43. Примеры кривых и трехмерных форм,порожденных их движением в пространстве

238

3.4. Твердотельное моделирование

показаны примеры кривых и трехмерных тел, которые они порождают своимдвижением вдоль различных траекторий.

Чтобы получить трехмерную форму методом заметания, необязательно сме-щать двухмерное сечение, в некоторых случаях намного удобнее в качествеобразующей использовать некоторый трехмерный объект. Этот метод формооб-разования используется при программировании металлообрабатывающих сис-тем с числовым программным управлением и в системах управления роботами иробототехническими комплексами.

Следует отметить, что рассмотренный метод формообразования можетиметь различные наименования в системах геометрического моделирования илитературе по КГ. Например, в популярной системе трехмерной графики 3Ds Maxзаметание называется Loft, в описаниях пакета на русском языке его именуютлофтингом. Заметание вращением (rotational sweeping) называется Lathe. Суще-ствуют и другие терминологические варианты, получившие распространение вкругах пользователей определенных пакетов трехмерной графики или системавтоматизированного проектирования.

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

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

Формообразование можно существенно расширить, если допустить исполь-зование нескольких образующих, связанных с одной траекторией. На рис. 3.45

Рис. 3.44. Объединение двух трехмерных объектов, созданных экс-трудированием треугольников, не может быть получено заметанием

239

3. Математические модели геометрических объектов

%* Рис. 3.45. Заметание с тремя образующими

показан пример трехмерного тела, полученного движением трех образующихвдоль одной кривой.

В некоторых пакетах машинной графики этот способ формообразованиясчитается самостоятельным и называется скиннингом (skinning).

3.4.5. Граничное представление

Граничным представлением (Boundary Representation, B-rep) называетсяописание пространственных тел в терминах границ и их элементов. Это один изсамых простых, выразительных и хорошо изученных способов определениятрехмерной геометрии.

В описании границы тела участвуют объекты с интуитивно понятным гео-метрическим содержанием: вершины, ребра, грани и оболочки. Рассмотрим под-робнее топологические свойства граничных составляющих.

Оболочки тела должны обладать свойством однородности — это значит, чтовсе они должны быть описаны по единым правилам. Так, согласно этому прин-ципу, не разрешается смешивать в одном описании явные и неявные моделиграничных оболочек. Оболочки могут состоять из нескольких граней. Каждаягрань представляет собой фрагмент некоторой поверхности с данными о связяхс соседними гранями и ориентации относительно внутреннего объема тела.

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

240

3.4. Твердотельное моделирование

располагаются внутри внешней. Оболочки любого типа не должны иметь пере-сечений друг с другом и самопересечений.

Во многих операциях автоматизированного конструирования и технологи-ческой подготовки производства важно различать внутренние и внешние точкидеталей и узлов. Поэтому граничные оболочки считаются ориентированными,одна сторона их обращена внутрь тела, другая — наружу. Чтобы сделать ориен-тацию определенной каждой точке границы приписывается нормаль, котораянаправлена от оболочки в наружном направлении. Это соглашение представля-ется совершенно ясным для внешних оболочек, некоторые противоречия с гео-метрической интуицией могут возникать с нормалями внутренних фрагментовграницы, которые имеют нормали, направленные внутрь ограничиваемой частипространства. Можно считать, что внутренние оболочки тела ведут себя как вы-вернутые наизнанку внешние.

Таким образом, для точного математического описания трехмерного телатребуется задать внешнюю оболочку и в зависимости от связности объекта однуили несколько внутренних оболочек.

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

На рис. 3.46 изображены образцы тел. Две призмы, показанные на рис 3.46, б,соединены по одному ребру. Если взять любую точку на этом ребре и проанали-зировать ее окрестность, то можно заметить ее коренное топологическое отли-чие от двухмерного диска. Примеры объектов, не относящихся к классу много-образий: соединение трехмерного тела с отдельным ребром; два многообразия,имеющие только одну общую вершину; трехмерное тело с внутренними пере-борками.

а б

Рис. 3.46. Форма многообразного тела (а) и не многообразного тела (б)

241

3. Математические модели геометрических объектов

Полиэдры и формула Эйлера

В КГ полиэдром называется твердое тело, границу которого образует мно-жество многоугольников, расположенных таким образом, что любая пара из нихлибо не пересекается, либо пересечение этих фигур является ребром каждогомногоугольника. Простым полиэдром называется тело, топологически эквива-лентное обычной сфере. Если не использовать точные определения из гомото-пической топологии, то можно считать, что такая эквивалентность означает по-тенциальную возможность одну фигуру перевести в другую посредством непре-рывной деформации. Очевидно, что несмотря на некоторое родовое и видовоесходство, сфера и тор не являются топологически подобными фигурами, по-скольку внутреннее отверстие тора принципиально отличает его от сферы.

Граничное представление любых простых полиэдров должно удовлетворятьформуле Эйлера, которая связывает число вершин, ребер и граней:

V-E (3.38)

где V — число вершин; Е — число ребер; F — число граней.На рис. 3.47 показаны примеры простых полиэдров и приведены значения

множества вершин, ребер и граней. Очевидно, что для всех этих примеров вернаформула Эйлера. Следует отметить, что формула Эйлера справедлива и для объ-ектов, границу которых образуют неплоские грани и криволинейные ребра. Дляпростых полиэдров формула Эйлера является необходимым, но не достаточнымусловием. Если для некоторого трехмерного тела выполняется это соотношение,то отсюда не следует, что оно представляет собой простой полиэдр. Можно при-вести примеры объектов, которые не являются даже многообразиями, но удов-летворяют соотношению Эйлера.

Двухмерные многообразия, имеющие грани с отверстиями, описываютсяобобщенной формулой Эйлера:

Рис. 3.47. Примеры простых полиэдров:

8, £=12, F=6;6— V=5, £=8 , F = 5;e — V=6, E= 12, F-

3.4. Твердотельное моделирование

iii'HS'-.tf&UlW

/

уУу

у

у у

У

у

у

У/

УуУ

У

Рис. 3.48. Пример многообразия с отверстиями, удовлетворяющегообобщенной формуле Эйлера:

V=24;E=36;F = 15;Я=3; С= 1; G= 1

V-E + F-H = 2(C-G),(3.39)

где Я — общее число отверстий на гранях; G — число отверстий, проходящихчерез объект (род многообразия); С — число связных компонентов, образующихмногообразие.

На рис. 3.48 приведен пример фигуры с отверстиями, которая полностьюудовлетворяет обобщенной формуле Эйлера.

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

Структура данных граничного представления

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

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

243

Рис. 3.49. Простой полиэдр,заданный описанием границ.Списки в правой части ри-сунка означают грани фи-

гуры:

V — вершины; Е — ребра;F—грани; F, = (VbV2, V5);F2 = (V2, V3, V5); F3 = (V3, V4,

VS);F4 = (V,,V4, V3);F5 = (V,, V2, V3, V4)

5. Математические модели геометрических объектов

жительное значение при совпадении направленийи отрицательное — в случае их различия.

Граничные ребра каждой грани образуют новыйтопологический объект, называемый циклом.В структуре данных В-rep цикл — замкнутое обра-зование, имеющее ориентацию. Если направлениеребра совпадает с циклом, то ему приписывается по-ложительный флаг, в противном случае — отрица-тельный. Таким образом, циклом называется отсор-тированное по порядку следования множество реберс флагами.

Если грань имеет отверстия, то ее граница будетописываться несколькими циклами: одним внешними несколькими (в общем случае) внутренними.Понятно, что внутренние циклы должны целикомлежать внутри внешнего. Будем считать, что внеш-ний цикл ориентирован против часовой стрелки,если смотреть на грань с внешней стороны, и, на-оборот, внутренние циклы ориентированы по ча-совой стрелки при сохранении той же позиции на-блюдателя. Согласно этой договоренности, грань

всегда остается с левой стороны, если двигаться по циклам с сохранением ихориентации.

Ребро, которое является границей двух граней, входит в два цикла: в одномцикле направление ребра совпадает с направлением цикла, а в другом — проти-воположно направлению цикла.

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

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

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

Несмотря на простоту, структуры данных подобного вида практически неприменяются в современных системах автоматизированного проектирования игеометрического моделирования. Основными причинами этого являются:

3.4. Твердотельное моделирование

а б

Рис. 3.50. Описание нескольких границ одним списком:

а — многосвязная грань; б — грань с мостом

• данная структура ориентирована на хранение плоских многогранников.Она не рассчитана на описание объектов с криволинейными гранями и реб-рами;

• табличная структура в описанном виде не подходит для представлениямногосвязных граней. Трехмерные тела со сквозными отверстиями имеют грани,границы которых состоят из нескольких циклов. Существует простой техниче-ский прием, который позволяет распространить возможности этой структурыданных и на случай многосвязных границ. Для этого достаточно добавить одноребро, соединяющее внутреннюю и внешнюю границы, как показано на рис. 3.50.Соединительное ребро принято называть мостом, или перемычкой;

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

Таблица 3.3

Подтаблицаграней

^ 1

F2

F3

F4

F5

Подтаблица ребер

ЕьЕ5,Е6

Ег, Е6, E-i

E-j, E-i, E$

Е4, E$, Е5

Е\, Е2, E3, £4

Подтаблица вершин

Ребро

Et

Е2

Ез

Е4

Е5

Ев

Е7

Ен

Вершина

v b v 2

Уъ Уз

Уз,У4

v4>v,vuv5

Уг, Уъ

Уз,Уъ

У4, Уъ

Вершина

V,

Уг

Уз

v4

Уъ—

Координаты

М,У\, Z\

Хъ Уъ Zl

Хз, Уз, 23

Х4, У A, Z4

Хъ, Уъ, Zъ

Существуют две простые структуры данных, лишенные указанных недостатковтабличного описания — структура полуребер (half-edge data structure) и структуракрыльевых ребер (winged-edge data structure).

245

3. Математические модели геометрических объектов

Структура полуребер

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

Более того, для каждой грани создается указатель на первое ребро списка, ав описании ребра создаются указатели на предыдущее и последующие ребра.Пример такой организации данных в виде двухсвязного списка ребер грани F\показан на рис. 3.51.

Двухсвязный список позволяет использовать простой способ восстановле-ния всей границы по любому предъявленному ребру. Для этого достаточнопройти весь граничный цикл, двигаясь по указателям. Если принять эту формухранения для всех граней в виде двухсвязного списка, то появятся проблемы,связанные с целостностью представления всей оболочки. Пусть грань F2 пред-ставлена списком со входом в Е2 (рис. 3.52). Очевидно, что упорядоченность ре-бер этого списка противоречит системе указателей списка, задающего грань F,.Общее для граней F\ и F2 ребро Еь (см. рис. 3.49) получает различную ориента-цию в списках обеих граней. Для разрешения этого противоречия можно разде-лить каждое ребро пополам и использовать половинки в описаниях тех граней, ккоторым они относятся. Частям одного ребра приписывается противоположнаяориентация, а описание граней представляет собой двухсвязный список полуре-бер. Элементы списочного описания грани связываются ссылками таким обра-зом, что направление обхода каждого из них согласуется с направлением обходаграни (против часовой стрелки, если смотреть снаружи тела).

Е5\

Е6

Ех-

1—

Еп

F2

E2

\

E6

Eyh

Рис. 3.51. Двухсвязный список реберграни F\

Рис. 3.52. Двухсвязный список реберграни F2

246

3.4. Твердотельное моделирование

h9

hu

1\ fTl

Рис. 3.53. Полуребра простого полиэдра Рис. 3.54. Двухсвязные списки полуреберграней F] и F2

Пример разбиения ребер на полуребра показан на рис. 3.53. Здесь представ-лены только две грани простого полиэдра, полное изображение которого данорис. 3.49. На рис. 3.54 изображены две списочные структуры, которые задаютграницы граней Fx и F2.

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

На рис. 3.55 приведен пример трехсвязной грани с разметкой полуребер, ана рис. 3.56 изображена списочная структура этого объекта. Из рис. 3.53 и 3.54следует, что при этом способе организации данных грань ссылается на списокполуребер косвенно, через двухсвязный список циклов. Входом этого спискаслужит обычно внешний цикл грани.

Последовательность перечисления полуре-бер в списках зависит от принятой ориентациициклов. Считается, что ребра внешнего циклаориентированы против часовой стрелки, а ребравсех внутренних — по часовой, если смотретьна грань с внешней стороны тела (см. рис. 3.55).Это соглашение об ориентации сохраняет внут-реннюю часть грани по одну сторону от грани-цы. Внутренние точки грани всегда лежат полевую сторону при обходе циклов в выбранном Рис. 3.55. Пример многосвязнойнаправлении. грани

247

3. Математические модели геометрических объектов

tл.

А3

А4

-

{h6

\

*п

hn

hi

H

—1

Рис. 3.56. Списочная структураграни с отверстием

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

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

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

Рассмотрим способ определения мно-жества ребер, исходящих из вершины V\, напримере простого многогранника, показан-ного на рис. 3.57.

Если вершина V, является начальной вершиной (это справедливо для приве-денного примера), то выбирается полуребро prev /гь предшествующее Aj. Егородительское ребро представляет собой один из искомых объектов, соединен-ных с V\. После этой операции вместо ребра h\ рассматривается сопряженноеему полуребро (обозначим его new h\), и первый шаг алгоритма повторяется за-ново. Если V\ является конечной вершиной для /гь то выбирается полуребро,следующее за /гь а его родитель включается в число смежных ребер. Далее вме-сто h\ рассматривается полуребро, сопряженное со следующим за /гь и перваяоперация повторяется с полуребром new h\. Процедура повторяется до тех пор,пока не будет достигнуто полуребро, сопряженное со стартовым h\.

Структура крыльевых ребер

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

Рис. 3.57. Генерация данныхо смежности ребер и вершин

248

3.4. Твердотельное моделирование

Рис. 3.58. Фрагмент много-угольника и ссылки струк-туры крыльевых ребер

структуре полуребер данных требует значительныхвычислительных ресурсов. Известно несколько болееэффективных подходов к описанию оболочек. Самымраспространенным из них является подход Бомгарта(Baumgart), основанный на применении так называе-мых крыльевых ребер (winged edges). Сердцевинойэтой структуры данных служит описание ребер, а неграней, как это принято в структуре полуребер. Каждоеребро представляется системой ссылок на связанные сданным ребром объекты многоугольника. В эту систе-му входят ссылки на две граничные вершины, на двеграни, пересечение которых образует данное ребро, ичетыре ребра, исходящих из граничных вершин.

Фрагмент многоугольника на рис. 3.58 иллюст-рирует структуру данных крыльевых ребер. На ри-сунке в виде стрелок показаны все восемь ссылокребра Е\.

Чтобы обеспечить более эффективное решение наиболее востребованных то-пологических задач, структура данных пополняется дополнительными ссылками:

• каждая вершина получает обратную ссылку на одно из ребер, исходящихиз нее;

• каждая грань снабжается ссылкой на одно из граничных ребер.При любом направлении обхода соседних граней (например, по часовой

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

Пусть граничная вершина Vi ребра Е\ (см. рис. 3.58) есть п, а вершина V2 — р.Тогда, согласно введенной классификации, для ребра Е\ грань F\ есть р-грань, агрань F2 — n-грань. Используя заданную классификацию, можно ввести четкоеразличение четырех смежных ребер (Е2, £з, Е4, Е5), на которые ссылается основ-ное ребро (Е\). Два ребра, инцидентные вершине п, назовем n-ребрами. В нашемслучае (см. рис. 3.58) это ребра Е2, Е3. При обходе граней по часовой стрелке ониявляются последующими для и-грани и предыдущими для р-грани. Ребра, свя-занные с вершиной р, будем называть р-ребрами. В нашем случае это Е4, Е$. Посравнению с и-вершинами они демонстрируют прямо противоположные свойст-ва. При фиксированном направлении обхода они являются последующими дляр-грани и предыдущими для «-грани. Эти четыре ребра называют крыльями(wings), от них и пошло название всей структуры данных.

Описанная структура данных предназначена для хранения данных об оболоч-ках, состоящих из односвязных граней. Существует несколько модификаций этой

249

3. Математические модели геометрических объектов

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

Пример такого представления иллюстрируютрис. 3.59 и 3.60. На рис. 3.59 показана грань с отвер-стиями, а на рис. 3.60 представлена списочная струк-тура, которая задает топологию этой грани.

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

Рис. 3.59. Грань с не-сколькими отверстиями

Булевские операции в системе В-гер

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

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

Существует условие, которое немного огра-ничивает разнообразие синтезируемых форм, ногарантирует их высокую «технологичность». Этодополнительное условие называется регуляриза-цией, его формулировка и основные свойства Рис. 3.60. Списочная структура,подробно рассмотрены в начале главы. Способ задающая грань с отверстиями

250

3.4. Твердотельное моделирование

описания трехмерных тел также существенно ограничивает применение булев-ских операций. Существуют несовместимые пары булевских операций и видовописания геометрии.

В табл. 3.4 дан полный список регулярных операций, применимых к телам сграничным описанием, и сведение регулярных операций к обычным (полныйвариант этой таблицы приведен в начале главы).

Таблица 3.4

Булевские операции

Аь П В,

Вь П Л,-

А„-ВВь-А

#(АЬ П Вь)

~{Аь П Вь)

Регулярные булевские операции

A U* В

-

-

+

+

+

-

А Г)* В

+

+

-

-

+

-

А-* В

-

+

+

-

-

+

Примечание. Большими латинскими буквами обозначены трехмерные тела-операнды. Нижние индексы i и b означают соответственно внутренние и граничные об-ласти: #(Ah Г) Вь) — часть общей границы объектов А и В, относительно которой А, и В,лежат по одну сторону; ~(АЬ П Вь) — часть общей границы, где А и В лежат по разныестороны; «+» — набор обычных операций, к которому сводится каждая регулярная бу-левская операция.

Результатом регулярного объединения двух тел A U* В является новое тело,

содержащее точки, принадлежащие внутреннему объему первого или второгооперанда. Результатом регулярного пересечения А О* В служит тело, содержа-щие точки, принадлежащие внутреннему объему первого и второго операндов.Тело, образованное вычитанием А -* В, состоит из внутренних точек первогооперанда, которые не входят во внутренний объем второго операнда.

Известно, что операцию вычитания можно свести к операции пересечения;для этого требуется обратить второй операнд (вывернуть его наизнанку) и найтимножество точек, принадлежащее объему первого и второго операндов. Опера-цию обращения обозначают обычно через Т. В обращенном теле внутренниеграни становятся наружными, наружные — внутренними, кроме того, изменяя-ется направление всех граничных циклов на противоположное. В результатевнутренним объемом становится та часть пространства, которая первоначальнорасполагалась за граничной оболочкой тела. Сведение операций можно записатьв виде короткого математического выражения Г = Л - В = АП В.

Булевские операции над двухмерными и трехмерными объектами имеютмножество общих черт. Это относится к их математической и программной реа-лизации в пакетах КГ.

251

3. Математические модели геометрических объектов

Техника булевского объединения

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

Операцию можно разбить на три этапа. Первый этап состоит в получениилиний пересечения граничных оболочек двух тел. По этим линиям строят новыеребра, которые будем называть ребрами пересечения. На втором этапе ищутточки пересечения новых ребер со старыми ребрами, присутствовавшими в опи-сании границ операндов до операции. Эти ребра разрежем на части по всем но-вым вершинам. Третий этап заключается в перестройке граничных циклов пере-секающихся граней. Рассмотрим содержание этапов более подробно.

Первый этап операции булевского объединения начинается с поиска линий пе-ресечения каждой грани первого тела с каждой гранью второго тела, если таковые(линии) имеются. Технически этот шаг реализуется при помощи хорошо известногоалгоритма поиска линии пересечения двух поверхностей, который рассмотрен вгл. 4, посвященной алгоритмическому обеспечению КГ.

Пусть построены искомые линии пересечения. На их базе создадим ребрапересечения. Всем новым ребрам припишем направление, которое совпадает сориентацией векторного произведения нормали грани первого тела с нормальюграни второго тела. Будем считать положительной ориентацию нормали, на-правленной наружу тела (рис. 3.61). Ребра пересечения должны целиком лежатьвнутри граничных циклов исходных тел. Они могут соединяться со старой гра-ницей только своими концевыми вершинами. Это условие, примененное к при-меру, показанному на рис. 3.61, требует разделения ребер старой границы на двечасти в точках А, В и С.

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

Рис. 3.61. Нормали граней и направления ребер пересечения

252

3.4. Твердотельное моделирование

выполняется посредством рассечения кривых, которые являются носителямиребер. Из одной кривой получим две кривые, которые при соединении образуютисходную кривую. Одна из этих кривых останется геометрическим носителемразрезаемого ребра, а на базе второй построим новое ребро, которое наследуетсвойства исходного ребра. Граничные ребра строятся на основе кривой пересе-чения двух поверхностей. Рассечению подлежат два экземпляра этой двухмер-ной кривой, лежащие на разных поверхностях.

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

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

Третий этап является заключительным в операции построения булевскогообъединения. Его цель состоит в разрезании граней и перестройке граничныхциклов в соответствии с новой структурой граничных ребер.

На рис. 3.62 показаны грани двух пересекающихся тел, представленных нарис. 3.61. Тонкими линиями со стрелками изображены направления граничныхциклов исходных граней, толстыми линиями со стрелками — ребра разрезания.Требуется перестроить граничные циклы таким образом, чтобы учесть новуюситуацию, созданную разрезанием. На рис. 3.63 показаны части граней, которыевойдут в результирующее объединение. Как и ранее, тонкие линии со стрелками

Рис. 3.62. Грани тел до разрезания

253

3. Математические модели геометрических объектов

Рис. 3.63. Грани тел после разрезания

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

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

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

Выбранное ребро включаем в состав граничного цикла. Если оно относится кстарым, то сохраняем за ним положительное значение флага. Если оно является но-вым ребром (ребром пересечения), то присваиваем ему отрицательный флаг. В про-цессе включения ребер в состав цикла новые ребра имеют больший приоритет посравнению со старыми. Иными словами, если кандидатами на включение оказалисьдва совпадающих ребра — старое и новое, то предпочтение отдается ребру пересе-чения. Процесс построения цикла продолжается до его замыкания.

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

Множество новых граничных циклов разделим на группы, каждая из кото-рых состоит из одного внешнего цикла и всех входящих в него внутренних цик-

т

3.4. Твердотельное моделирование

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

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

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

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

3.4.6. Модели пространственного разбиения

Пространственное разбиение (spatial-partitioning) — представление трехмер-ных объектов в виде совокупности непересекающихся элементарных пространст-венных форм — примитивов. Примитивы выполняют функции геометрическихстроительных элементов и могут различаться типом, параметризацией, размера-ми, пространственной ориентацией и другими свойствами формы, положения иописания. Степень декомпозиции трехмерного объекта и выбор примитивов опре-деляются сложностью формы и целями моделирования.

Декомпозиционная модель

Одним из наиболее общих видов описания, основанных на пространственномразбиении, является так называемая декомпозиционная модель (cell decomposi-tion) трехмерной геометрии. В каждой системе моделирования декомпозицион-ного типа задается множество параметризованных геометрических примитивови набор допустимых операций. Множество операций обычно ограничиваетсяразличными вариантами упрощенного булевского объединения объектов. Уп-рощение может состоять в обработке непересекающихся операндов или операн-дов, имеющих общую вершину, ребро или грань. В декомпозиционных системахмоделирования трехмерных объектов подобные операции называются склеива-нием. Генерация формы трехмерного тела реализуется по принципу снизу вверх,

255

3. Математические модели геометрических объектов

Рис. 3.64. Геометрические примитивы

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

Представление трехмерного тела в виде композиции геометрических при-митивов является вполне однозначным, однако обратный переход от формы кнабору элементов не обладает этим свойством. Простой пример, приведенныйна. рис. 3.64 и 3.65, подтверждает этот тезис. Трехмерное тело, показанное нарис. 3.65, можно получить различными вариантами склейки параметризованныхгеометрических примитивов: призмы и параллелепипеда.

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

Воксельное описание

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

Рис. 3.65. Составные объекты, полученные склеиванием примитивов

256

3.4. Твердотельное моделирование

•Рис. 3.66. Воксельное представление трехмерного тела

по аналогии с двухмерной растровой графикой, где функции графических ато-мов выполняют пикселы, называются вокселами (voxels, volume elements).

Для описания трехмерной формы в этой модели следует принять решение оналичии или отсутствии элементов на позициях регулярной сетки. Это дает точ-ное и единственное представление формы пространственного тела.

На рис. 3.66 показан пример описания трехмерного тела в терминах про-странственных пикселов — пластинчатого тела с выбранным углом и отверстием.

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

Достоинства и недостатки воксельного описания совпадают со свойствамиплоских растровых моделей.

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

257

3. Математические модели геометрических объектов

/ (

/

5а б

Рис. 3.67. Растровое пространство в процессе разбиения:

а — второй шаг; б — последний шаг

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

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

Восьмеричные деревья

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

Квадратичные деревья описывают процедуру последовательного делениядвухмерного массива точек на квадранты. Рассмотрим правила построения этихобъектов на примере плоской детали, показанной на рис. 3.67. Пространствоплоского растра будем последовательно делить на квадранты. Квадрант, закра-шенный полностью, обозначим буквой F (full), закрашенный частично — Р (par-tial), а свободный от закраски — Е (empty). Первое разбиение состоит из четы-рех больших квадрантов, граница которых проходит по самой середине массиваточек. Все элементы первого шага разбиения являются частично окрашенными иполучают пометку Р.

Порядок деления, сохраняющийся на всех операциях декомпозиции растро-вого поля, показан на рис. 3.68. Именно в этом порядке записываются вершиныквадратичного дерева.

258

3.4. Твердотельное моделирование

3

1

4

2Рис. 3.68. Поря-док перечисле-

ния квадрантов

Результаты второго шага разбиения представлены нарис. 3.67, а. Рисунок показывает, что на этом этапе появляют-ся полностью закрашенные квадранты. Деление таких объек-тов не дает новой информации, поскольку элементы закра-шенных квадрантов всегда являются закрашенными, а эле-менты пустых — пустыми. Процедуру разбиения растровогополя на квадранты принято представлять в виде квадратично-го дерева. Его вершиной является исходное поле, а висячимивершинами служат закрашенные или свободные от закраскиквадранты, записанные в последовательности, изображенной на рис. 3.68.

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

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

Рис. 3.69. Фрагмент квадратичного дерева

259

/ 3 / 4

7

5

7

5

8

6

6

Рис. 3.70. Нумерация октантов

3. Математические модели геометрических объектов

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

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

координатных осей через L — налево (left), R — направо (right), U— вверх (up),D — вниз (down), F — вперед (front), В — назад (back). Теперь октанты можно обо-значить в соответствии с занимаемой позицией: LUF, LUB, LDF, LDB, RUF, RUB,RDF и RDB. Для экономии изобразительных средств зададим направлениям поряд-ковую нумерацию, начинающуюся с единицы. Соответствие номеров и октантовпоказано на рис. 3.70; октанты с номером 1 здесь не показаны.

Между периметром плоского тела и числом узлов четвертичного дерева су-ществует очевидная зависимость. Можно показать, что за исключением несколь-ких предельных случаев эта зависимость описывается прямо пропорционально.В самом деле, область внутри границы и за ее пределами не требует уточнения.В четвертичном дереве соответствующие вершины являются висячими и не нуж-даются в уточнении. Описания требуют только частично заполненные квадранты,лежащие на границе. Аналогичная зависимость существует между площадью по-верхности объемного тела и числом вершин восьмеричного дерева.

Булевские операции и преобразования растров

Исследователями в области КГ были выполнены изыскания в области раз-работки эффективных алгоритмов для расчета и хранения четвертичных и вось-меричных деревьев. Оказалось, что многие задачи вычислительной геометриидопускают простые и экономичные решения в терминах пространственных иплоских растров. Так, невысокой трудоемкостью расчета обладают булевскиеоперации объединения, вычитания и пересечения.

Рассмотрим способ нахождения булевского объединения двух растровыхпредставлений. Пусть двухмерные тела А и В заданы в виде квадратичных де-ревьев. Обозначим С их булевскую сумму. Чтобы получить квадратичное дерево

260

3.4. Твердотельное моделирование

тела С, будем просматривать деревья операндов параллельно от корня к листь-ям. По заполнению одноименных узлов операндов легко найти состояние соот-ветствующего узла результата.

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

На рис. 3.71 показаны два простых двухмерных растровых объекта со свои-ми квадратичными деревьями, а на рис. 3.72 приведены результаты булевскогообъединения и вычитания этих операндов и древесные модели результирующихобъектов.

Многие задачи геометрических преобразований объектов, заданных в видеквадратичных и восьмеричных деревьев, имеют простые алгоритмические ре-шения. Так, для реализации поворота объекта на 90° требуется применить про-цедуру рекурсивной обработки ко всем потомкам вершин каждого уровня. Прос-то решается и задача зеркального отражения и масштабирования тела с любымцелым коэффициентом преобразования. Сложнее выполняется расчет переме-щения и сглаживания объектов.

А В

Рис. 3.71. Двухмерные растровые объекты (а) и их квадратичные деревья (б)

261

3. Математические модели геометрических объектов

n\j п А-В

Iffci

а б

Рис. 3.72. Представление булевских операций в виде квадратичных деревьев:

а — булевское сложение; б — булевское вычитание

Поиск соседей

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

Элемент квадратичного дерева в общем случае может иметь восемь соседей,расположенных в разных направлениях на плоском поле растра. Следуя англий-ской традиции, обозначим четыре основных направления первыми буквами сто-рон света: N — север (North), S — юг (South), Е — восток (East), W — запад(West). Диагональные направления получат естественные обозначения: NW, NE,SW и SE. Элементы восьмеричных деревьев могут иметь до 26 возможных сосе-дей по числу направлений в пространственном растре: 6 — в направлении гра-ней, 12 — в направлении ребер и 8 — в направлении вершин.~ Во всех случаях решением задачи является один из потомков родительскойвершины, общей для данной вершины и ее соседа. Процедура поиска вершины,соседствующей с выбранной в данном направлении, основана на исследованиидерева. Сначала ищется ближайший общий предок текущей вершины и ее сосе-

262

3.4. Твердотельное моделирование

4И6Й НУ.

Рис. 3.73. Поиск соседей по квадратичному дереву

да, затем поддерево просматривается в направлении сверху вниз для определе-ния искомого соседа.

Рассмотрим самый простой случай, когда в восьмеричном дереве поиск огра-ничен направлениями нормалей к граням куба, которые будем обозначать L (Left), R(Right), U (Up), D (Down), F (Front) и В (Back). Обозначим выбранное направле-ние поиска d. Будем подниматься по дереву вверх, начиная от выбранной вер-шины. Общий предок представляет собой первую вершину, которая не можетбыть достигнута из своего потомка в направлении d. Пусть для примера поискведется в направлении левого соседа L. Тогда первый общий предок представля-ет собой первую вершину, которая не может быть достигнута из потомков, ле-жащих в направлениях LUF, LUB, LDF или LDB. Это утверждение справедливо,поскольку вершина, достижимая из своих потомков в указанных направлениях,не может иметь левого соседа.

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

Рассмотрим этот метод на примере квад-ратичного дерева (рис. 3.73), задающегодвухмерный объект, показанный на рис. 3.74.Цифрами 1-4 помечены основные направле-ния двухмерного поля (см. рис. 3.68). Пусть в

этой ситуации требуется найти северного со- Рис. 3.74. Двухмерный растровыйседа вершины А. объект

263

3. Математические модели геометрических объектов

Восходящая фаза поиска начинается с вершины А (см. рис. 3.73). Эта вер-шина является AW-предком (северо-западным) для своего непосредственногородителя. Весь путь до искомой родительской вершины показан на рис. 3.73толстой линией. Его образуют два предка, лежащих в направлении NW, и один внаправлении SW. В нашем случае корневая вершина дерева служит искомымпредком, поскольку она достигнута в направлении SW. В этом направлении дажечастично не используется направление N, выбранное для поиска соседа.

Далее для поиска решения следует проложить маршрут в нисходящем на-правлении. Он начинается в корневой вершине и представляет собой зеркальноеотражение восходящего маршрута (показанного на рис. 3.73 толстой линией)относительно меридиана NS.

Решением задачи поиска северного соседа вершины А служит вершина Вквадратичного дерева.

3.4.7. Конструктивная твердотельная геометрия

Конструктивной твердотельной геометрией (Constructive Solid Geometry —CSG) называется способ описания трехмерных объектов, основанный на некото-ром наборе базовых геометрических примитивов и операциях над ними. Про-граммные реализации этого подхода используют различные множества опера-ций и операндов, но чаще всего в набор базовых форм входят простые геомет-рические тела, имеющие точное математическое описание, а разрешеннымипреобразованиями служат регулярные булевские операции.

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

объекту. В общем случае булевские операциине являются коммутативными, поэтому верши-ны каждого уровня CSG-дерева считаются упо-рядоченными.

На рис. 3.75 приведен пример простого трех-мерного объекта, который представляет собойплоскую деталь с одним сквозным отверстием.

Дерево, показанное на рис. 3.76, описываетгеометрию детали в терминах базовых форм ибулевских операций над ними.

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

Рис. 3.75. Пример трехмерногообъекта

264

3.4. Твердотельное моделирование

QZZD

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

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

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

Конструктивная твердотельная геометрия — это не точное математическоеописание с глубоко разработанным аппаратом. Она представляет собой пара-дигму, которая допускает значительные вариации базовых примитивов, произ-водящих операций и их описаний. Базовые соглашения этой системы столь ши-роки, что позволяют считать частными случаями рассмотренные ранее декомпо-зиционную и воксельную модели. В этих моделях для генерации трехмерныхформ используется только одна операция — булевское сложение объектов,имеющих нулевое пересечение внутренних областей. В общем случае конструк-тивная геометрия тел не позволяет получить строго единственное описание гео-метрии объекта. Это подтверждает простой пример, показанный на рис. 3.77.Здесь одна результирующая форма может быть представлена разными CSG-деревьями.

Еще одним источником неопределенности в конструктивной геометрии телтакже является использование геометрических примитивов, которые допускаютпараметрическую настройку. Эту ситуацию демонстрирует рис. 3.78 — измене-

Рис. 3.76. Представление простран-ственного тела в виде CSG-дерева

265

3. Математические модели геометрических объектов

JSC

у—/

А )

С

В

С

в

А=В-С А=В+СРис. 3.77. Пример неоднозначного описания объекта в системе CSG

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

Назовем и другие недостатки конструктивной геометрии тел:~ • дерево CSG предназначено для записи применения булевских операций в

их хронологической последовательности. По этой причине к CSG-объектам немогут быть применены иные средства локального или глобального формообра-зования, например снятие фаски или экструдирования;

• конструктивное представление геометрии не включает эксплицитной инфор-мации о граничных поверхностях, ребрах и связях между этими элементами описа-ния. Для генерации таких сведений требуется выполнить большой объем сложныхвычислений по CSG-дереву. Поэтому данный способ описания не очень хорошоподходит для интерактивного представления трехмерных объектов и манипуляцийс ними. Составление чертежа по готовой модели объекта, моделирование переме-щений режущего инструмента, имитация поведения робота — примеры задач, ко-торые в парадигме конструктивной геометрии тел решаются со значительнымитрудностями.

Нельзя не упомянуть и о достоинствах конструктивной геометрии тел:• предоставляет пользователю простой способ проектирования объектов

сложной геометрии, основанный на операциях сложения, вычитания, заменыгеометрических примитивов. Информация о структуре проекта хранится в ком-пактной и наглядной форме CSG-дерева;

• разрешает выполнять преобразования дерева, что является еще одниммощным ресурсом формообразования;

с

Рис. 3.78. Пример неоднозначности CSG-описания, вызванной параметрической настройкой

266

3.4. Твердотельное моделирование

• объемное тело, описываемое CSG-деревом, всегда является корректным, т. е.его внутренний объем однозначно отделен от внешнего. За исключением несколь-ких предельных случаев операции с примитивами в CSG синтезируют трехмерноемногообразие;

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

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

S

3.4.8. Сравнение представлений '

Обсудим основные достоинства и недостатки рассмотренных в данной главесистем описания трехмерной геометрии.

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

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

Однозначность. Большая часть рассмотренных систем моделирования не об-ладает свойством однозначности. Иными словами, они не дают строго единствен-ного описания геометрии объекта. Это утверждение относится ко всем моделям заисключением пространственного разбиения и параметрического моделирования,

267

3. Математические модели геометрических объектов

которые могут синтезировать уникальное описание при соблюдении некоторыхдополнительных условий.

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

Вопросы для самоконтроля

1. Назовите способы представления полигональных сеток.2. Что понимают под согласованностью полигональных сеток?3. Что такое нормаль к плоскости и как ее координаты связаны с уравнением плоскости?4. Выведите зависимости коэффициентов, задающих уравнение несущей плоскости

многоугольника, от его проекций.5. Назовите три основных подхода к описанию пространственных кривых, перечисли-

те достоинства и недостатки этих способов описания.6. Перечислите основные принципы кусочно-нелинейной аппроксимации пространст-

венных кривых.7. Какие преимущества дает использование кубических полиномов для задания аргу-

ментов фрагмента пространственной кривой?8. Дайте определения геометрической непрерывности класса G0 и G1.9. Дайте определения непрерывности классов С0, С1 и С2.

10. В чем заключается физический смысл касательного вектора пространствен-dt

ной кривой?11. Дайте определение геометрического вектора и стыковочной функции.12. Дайте определение кривых Эрмита. Назовите их достоинства и недостатки.13. Дайте определение кривых Безье. Перечислите их достоинства и недостатки.14. Дайте определение базиса Бернштейна и назовите его основные особенности.15. Дайте определение кубического В-сплайна. В чем состоит отличие узлов сплайна от

его контрольных точек?16. Назовите главное отличие однородных сплайнов от неоднородных.17. Какие сплайны называются рациональными? В чем состоит основное преимущество

этого типа параметрических кубических кривых?18. Назовите основные способы визуализации пространственных кривых.19. Дайте определение поверхностей Эрмита.20. Назовите основные подходы к решению задачи визуализации параметрических би-

кубических поверхностей.21. Какое описание твердого тела называется каркасной моделью?22. Перечислите преимущества, которые дает применение регулярных булевских операций.23. Назовите основные принципы, лежащие в основе параметрического подхода к моде-

лированию геометрии пространственных тел.

268

Вопросы для самоконтроля

24. Назовите основные положения и преимущества граничного моделирования трех-мерных тел.

25. Запишите формулу Эйлера для полиэдров.26. Перечислите структуры данных, предназначенных для описания тел в системе В-гер.27. Назовите основные реализации декомпозиционного подхода к твердотельному мо-

делированию.28. В каком порядке рассматриваются квадранты плоского растра при разбиении вер-

шин квадратичного дерева?29. Как представляется форма трехмерного объекта в твердотельной конструктивной

геометрии?30. Оцените достоинства и недостатки различных способов описания трехмерных объ-

ектов.

4. МЕТОДЫ, АЛГОРИТМЫ И ФОРМАТЫ ФАЙЛОВКОМПЬЮТЕРНОЙ ГРАФИКИ

Рассматриваются алгоритмические основы КГ и форматы файлов обменаграфической информацией между различными программными системами КГ. Опи-сываются методы и алгоритмы двухмерной (2D) графики и геометрии, методы иалгоритмы трехмерной (3D) графики и геометрии, а также алгоритмы анимациитрехмерных моделей, форматы векторных и растровых файлов в программныхсистемах КГ.

4.1. Методы и алгоритмы двухмерной компьютерной графики

В зарубежной литературе по КГ традиционно принято классифицироватьметоды и алгоритмы КГ на три основные группы:

• компьютерное зрение (ввод графических изображений и синтез графиче-ской информации) — Computer Vision;

• обработка изображений (обработка графической информации) — ImageProcessing;

• компьютерная графика (вывод графических изображений) — ComputerGraphics.

Выпускаются и соответствующие журналы, например «Computer Vision,Graphics and Image Processing». В настоящее время в КГ есть такой важный раз-дел, как геометрическое моделирование, который отнесли к КГ, поэтому в даннойкниге использован другой подход к классификации методов и алгоритмов КГ.

Любой компьютерный алгоритм предполагает наличие входных, выходныхданных и методов обработки входных данных для получения нужных выходныхданных. В области КГ разработано огромное количество алгоритмов. Для двух-мерной компьютерной графики и геометрии данные подразделяются на двакласса: векторные и растровые. Напомним, что векторные данные представляютсобой множество опорных (ключевых) точек для математического описаниякривых линий, а также информацию об их атрибутах (цвет, толщина и другиепараметры) и признаках заполнения замкнутых областей, ограниченных кривы-ми линиями; растровые данные представляют собой набор численных значений,определяющих яркость и цвет отдельных пикселов в заданной двухмерной об-ласти. В связи с этим алгоритмы двухмерной (2D) графики можно классифици-ровать по четырем основным группам: ,, :

270

4.1. Методы и алгоритмы двухмерной компьютерной графики

• с растровыми входными и выходными данными (цифровая обработка изо-бражений);

• с растровыми входными данными и векторными выходными данными(векторизация, распознавание образов);

• с векторными входными данными и растровыми выходными данными(растеризация);

• с векторными входными и выходными данными (геометрическое модели-рование, двухмерные геометрические преобразования, решение метрическихзадач на плоскости, параметрическая и вариационная геометрия).

В литературе принято описывать алгоритмы с использованием блок-схем,псевдоязыков или самих языков программирования (обычно на основе алгорит-мических языков Paskal, Modula, С или C++). В связи с тем, что количество кон-кретных алгоритмов двухмерной графики очень велико, далее будут рассмотре-ны только основные, фундаментальные идеи и алгоритмические основы тех илииных классов алгоритмов, а более подробно, но без привлечения блок-схем иязыков программирования будут рассмотрены только те алгоритмы, которыеде-факто стали классическими.

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

4.1.1. Входные и выходные данные растровые

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

• повысить качество изображения или модифицировать исходное изображе-ние для того, чтобы выделить некоторые аспекты информации, содержащиеся визображении, как подготовительный этап в задачах распознавания образов, рас-смотренных в подразд. 4.1..2;

• классифицировать, сравнить или измерить элементы в изображении;• скомбинировать части изображений или реорганизовать элементы изо-

бражения;• получить видимое изображение цифровых данных, усиленных опреде-

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

ftl

4. Методы, алгоритмы и форматы файлов компьютерной графики

Можно выделить три основных класса алгоритмов обработки растровыхданных:

• точечные алгоритмы, когда изменяют значения пикселов, основываясь наисходных значениях самих пикселов и возможную их позицию в изображении;

• пространственные алгоритмы, когда изменяют значения пикселов, осно-вываясь на исходных значениях самих пикселов и пикселов вокруг них;

• алгоритмы геометрических преобразований, когда изменяется расположе-ние или местонахождение пикселов в изображении, основываясь на некоторыхгеометрических преобразованиях.

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

Далее достаточно подробно описаны только базовые алгоритмы, но сначаларассмотрим алгоритмические понятия, которые лежат в основе этих алгоритмов.

Пусть A = {aij] — растровое изображение, представляющее собой прямо-

угольную матрицу размером тхп, i-l,..., т, j = 1,..., п; а.ц — элемент изображе-

ния (пиксел).

Если ПЦ е {0,1} и принимает только два значения, то изображение называет-

ся бинарным и состоит только из черных (black) В и белых (white) W пикселов.

Если ПЦ е {0,1,..., N -1} и принимает N значений, то изображение называет-

ся полутоновым и каждый пиксел может принимать N оттенков серого (града-

ций яркости).

Если д. е х(2)

v(3)

где х̂ : е {0,1,..., N-1}, то изображение называется

цветным, каждый пиксел может иметь любое из N{k) возможных значений цвета,

определяемое соответствующими ему координатами (;с(1\ х ( 2 ),х ( 3 )) в цветовом

пространстве.

v d)x

Если а;1

(2)

ЛМWXiJ

, где {0,1,..., N-1], то изображение называется

многоканальным. Такое изображение состоит из совокупности М полутоновых

изображений х\= \ Каждому пикселу соответствует М-компонентный вектор со

272

а5

а2

" 1

" 8

Рис. 4.1. 8-связ-ные соседи пик-

села пц

4.1. Методы и алгоритмы двухмерной компьютерной графики

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

Пусть В и W — два множества соответственно черных(объект) и белых (фон) пикселов, составляющих бинарноеизображение. Каждый пиксел изображения имеет восемь со-седних пикселов, которые нумеруются в соответствии со сле-дующей схемой (рис. 4.1): S^ay) — множество всех соседей ау(кроме собственно ау), называемое 8-связными соседями ау.Соседи с нечетными номерами называются прямыми соседями ау, или 4-связны-ми соседями, обозначаемые как 54(йу); соседи с четными номерами — это непря-мые соседи ау, которые обозначаются SD(a,j) (диагональные соседи). В общемслучае под понятием соседства понимается S%(ay). Множество 5х(а,>) называется8-окрестностью а,р а множество 54(ау) — 4-окрестностью ау. Многие алгоритмына пиксельной плоскости основаны на отношениях соседства.

Пиксел из В, имеющий всех соседей из В, называется внутренним пикселом.Совокупность всех внутренних пикселов В называется ядром, или внутренно-стью В. Все пикселы В, не являющиеся внутренними, называются контурнымипикселами (рис. 4.2).

Одним из важных определений на бинарном изображении является расстоя-

ние. Расстояние между двумя пикселами а, • и а, ^ — длина наикратчайшего

пути, соединяющего эти пикселы на соответствующем графе. Расстояние можетбыть определено путем выбора подходящего отношения соседства и подходяще-го определения длины пути.

Евклидово расстояние определяется формулой

-Л) 2 -

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

а д е

Рис. 4.2. Исходный объект (а), его ядро (6) и контуры (в)

273

4. Методы, алгоритмы и форматы файлов компьютерной графики

2.8

2.2

2.0

2.2

2.8

2.2

1.0

1 >

2.2

2.0

'Со

аи

-LU

2.0

2.2

'К4

1.Q

-Г'4

2.2

2.8

2.2

2.0

2.2

2.8

4

4

3

3

4

3

3

2

3

2

/К"ij

Ч' '

2

3

2

>

2

3

4

3

2

3

4

2

2

2

2

2

2

Г1

i-

2

2

•"Г"

а-7

-1-

2

2

1;

2

2

2

2

2

2

Рис. 4.3. Типы расстояний относительно пиксела:

а — евклидово; б — городское; в — шахматное

Wn \l\ —I - J2\, если

- и I, если

где w — весовые коэффициенты, wQn м>\ > 0.В зависимости от значений w0 и w\ могут быть получены различные типы рас-

стояний. Например, если (и>0, w{) = (1, 1), то полученное расстояние называетсягородским расстоянием (city block), если (w0, w\) = (1, 0), то полученное расстоя-ние называется шахматным расстоянием (chessboard).

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

Два пиксела (В или W) называются связными, если они являются соседями(расстояние между ними равно единице) в выбранной метрике.

Связная компонента изображения — связное множество пикселов в соот-ветствии с выбранным типом метрики. В зависимости от выбранного типа мет-рики существуют 8-связные линии (рис. 4.4, а), 4-связные линии (рис. 4.4, б) илинии со смешанным типом связности (рис. 4.4, в).

Метрика зависит от расстояния, поэтому по аналогии с типами расстоянийвыделяют городскую, шахматную и другие метрики. Для сохранения связностиобъекта и фона используют различные типы связности. Обычно 8-связность

применяют для пиксела В, а 4-связность — для W,или наоборот.

Многие алгоритмы цифровой обработки изо-бражений основаны на математической морфоло-гии, суть которой заключается в том, что исходноеизображение рассматривается как множество, и кнему применяются теоретико-множественные опе-рации. Слово «морфология» (от греч. morphe —форма) означает форму, структуру. Математиче-ская морфология предназначена для исследования

а о в

Рис. 4.4. Вид линии в зависи-мости от вида связности:

а — 8-связная; б — 4-связная; в —со смешанным типом связности

274

4.1. Методы и алгоритмы двухмерной компьютерной графики

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

Пусть имеется двоичное изображение, представленное в виде упорядочен-ного набора (упорядоченного множества) пикселов, причем черным пикселамсоответствует цифра 1, а белым — цифра 0. Под областью изображения пони-мается некоторое подмножество цифр 1 на фоне цифр 0. Каждая операциядвоичной морфологии является некоторым преобразованием этого множества.В качестве исходных данных принимаются исходное двоичное изображение Аи некоторый структурирующий элемент S. Результатом операции также явля-ется результирующее двоичное изображение.

Структурирующий элемент — некоторое двоичное изображение, имеющееопределенную геометрическую форму. Чаще всего используются симметричныеструктурирующие элементы, примеры которых показаны на рис. 4.5. В каждомэлементе выделяется особая точка, называемая начальной. Она может быть рас-положена в любом месте элемента, хотя в симметричных элементах это обычноцентральный пиксел.

Сначала результирующая пиксельная плоскость заполняется цифрами 0, об-разуя полностью белое изображение. Затем осуществляется сканирование ис-ходной пиксельной плоскости пиксел за пикселом с помощью структурирующе-го элемента. Для зондирования каждого пиксела на изображение накладываетсяструктурирующий элемент так, чтобы совместились зондируемая и начальнаяточки. Далее проверяется некоторое условие на соответствие пикселов структу-рирующего элемента и точек изображения под ним. Если условие выполняется,то на результирующем изображении в соответствующем месте ставится цифра 1(в некоторых случаях будет добавляться не один единичный пиксел, а все еди-ничные пикселы из структурирующего элемента).

По рассмотренной схеме выполняются базовые операции математическойморфологии — расширение (dilation) и сужение (erosion). Однако более полез-ными оказались производные операции — некоторая комбинация базовых опе-раций, выполняемая последовательно. Основными из них являются открытие(opening) и закрытие (closing).

Операция расширения двоичного изображения А на структурирующий элемент S

записывается в виде A@S и определяется как A® S = {c\3ae A, se S:c = a + b}.

На рис. 4.6, а приведен пример расширения исходного изображения.

1

1

1

1

11

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Рис. 4.5. Примеры структурирующих элементов

275

4. Методы, алгоритмы и форматы файлов компьютерной графики

Рис. 4.6. Операции расширения (а) и сужения (б):

А — исходное двоичное изображение; S — структурирующий элемент

Операция сужения двоичного изображения А на структурирующий элемент Sзаписывается в виде A(—)S и определяется как A(-)S = {с | Vc © s e A, se S]. На

рис. 4.6, б приведен пример сужения исходного изображения.Первая основная производная операция — операция закрытия двоичного

изображения А на структурирующий элемент S записывается в виде(А ® S) -S. На рис. 4.7, а приведены примеры операции закрытия исходногоизображения. Операция закрытия заполняет небольшие внутренние области,принадлежащие изображению, и убирает углубления по краям области.

Вторая основная производная операция — операция открытия двоичногоизображения А на структурирующий элемент S определяется какAoS = (A-S)®S. На рис. 4.7, б приведены примеры открытия исходного изо-бражения. Операция открытия удаляет небольшие внутренние области, не при-надлежащие изображению, небольшие кусочки изображения, выходящие за гра-ницу области изображения, а также расширяет пустые области в изображении.

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

Исходноеизображение

Пример 1

Результирующееизображение

Пример 1

Исходноеизображение

Пример 1

Результирующееизображение

Пример 1

Пример 2 Пример 2 Пример 2 Пример 2

а б

Рис. 4.7. Операции закрытия (а) и открытия (б) изображения

276

4.1. Методы и алгоритмы двухмерной компьютерной графики

f{X) Контур объектапосле бинаризации

пI II

/

/

а

III

\

II

\

X

i

^ \ Перепад/ яркости

fw

fb

/ w

fbГраницаобъекта

Рис. 4.8. Изменение яркости пиксе-лов для бинарного (а) и полутоно-вого (б) изображений:

I, II, III — области изменения значенийяркости

кажения, структурирующий элемент долженбыть близок к кругу. В этом случае в изобра-жении останутся все его симметрии.

Полутоновые изображения характеризу-ются большим в отличие от бинарного коли-чеством градаций яркости. Как и для бинар-ного изображения, основным понятием дляполутонового изображения является понятиеобъекта и фона, однако в силу природы изо-бражения их определение более сложно посравнению с бинарными. Обозначим f(X) —функцию значения яркости произвольнойстроки полутонового изображения вдоль оси X.На рис. 4.8 показаны графики такой функциидля бинарного и полутонового изображений.

Объект, как правило, отличается значе-нием яркости от фона. Область I — областьфона, область III — область объекта. В силутого, что изображение полутоновое, граница IIмежду объектом и фоном является размытой. Граница на полутоновом изобра-жении — область, ограничивающая объект, при этом I и III — области постоян-ных значений, а II — область изменения значения яркости — соответствует пе-репаду яркости, т. е. области, в которой производная dfldX отлична от нуля.Наиболее распространенной задачей в обработке полутоновых изображенийявляется выделение границ — областей П. Результат представляется в виде би-нарного изображения, в котором областям I и III соответствует белый цвет, аобласти II — черный. Линии черного цвета на бинарных изображениях, соответ-ствующие границам объекта на полутоновых изображениях, называются кон-турными линиями.

Контурным представлением объекта полутонового изображения называетсяего описание с помощью контурной линии, ограничивающей объект. Контурнаялиния рассматривается как 8-связная линия на бинарном изображении, которойсоответствует черный цвет, фону — белый. Понятия соседства и связности от-носятся к контурным (черным) пикселам. Среди контурных линий особо выде-ляют контурную линию шириной в один пиксел, которая наиболее часто приме-няется в алгоритмах обработки изображений.

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

277

4. Методы, алгоритмы и форматы файлов компьютерной графики

pf(f) Полезным средством для анализа и редак-тирования растровых изображений являетсягистограмма яркости изображения. Гисто-грамма яркости изображения — столбчатыйграфик зависимости плотности распределения Pfвероятностей значений яркости от значения /

0 1 2 3 4 5 6 7 8 яркости пикселов изображения Р/if). На рис. 4.9Рис. 4.9. Гистограмма яркости показана типичная гистограмма яркости изо-

изображения бражения для условного изображения, содер-жащего 16 пикселов, с восемью возможнымизначениями градации яркости пикселов. Эта

гистограмма показывает, что в данном изображении преобладают черные итемные пикселы, а пикселы со значениями яркости 1, 2, 3 отсутствуют.

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

Точечные алгоритмы. Точечные алгоритмы — базовые операции обработ-ки изображения. Они очень простые и их наиболее часто используют в алгорит-мах обработки изображения. Они полезны как сами по себе, так и в сочетании сдругими классами алгоритмов. Точечные алгоритмы — алгоритмы, которыеизменяют значение яркости одного пиксела в изображении и основаны толькона этом значении и иногда на положении пиксела. Никакие другие значения невключаются в преобразование. Индивидуальные значения яркости пиксела изо-бражения заменяются новыми значениями, которые алгоритмически связаны сисходным значением яркости пиксела. Как результат алгоритмических отноше-ний между исходным и новым значением элемента изображения точечные алго-ритмы могут в общем случае выполняться в обратном порядке. Алгоритмыточечных процессов сканируют изображение пиксел за пикселом, осуществляяпреобразование пикселов изображения. Если преобразование зависит только отисходного значения яркости пикселов, то этот процесс лучше реализовать с по-мощью таблиц преобразований. Если преобразование в точечных алгоритмахтакже учитывает и расположение пикселов, то для преобразования используетсякакая-либо формула или формула в сочетании с таблицей преобразований.В общем случае точечные алгоритмы не изменяют пространственные соотно-шения в пределах изображения. Поэтому точечные алгоритмы не могут моди-фицировать детали, содержащиеся в изображении. Применение точечных ал-горитмов к изображениям имеет смысл только для бинарных и полутоновыхизображений.

4.1. Методы и алгоритмы двухмерной компьютерной графики

Самые простые алгоритмы этого класса — алгоритмы получения негатив-ных изображений или алгоритмы инверсии яркости пикселов. Негативное изо-бражение создается путем вычитания исходного значения яркости каждого пик-села изображения f(X, Y) из максимально возможного значения яркости fw (зна-чение яркости белых пикселов):

g(X,Y)=fw-f(X,Y),

где g(X, Y) — результирующее значение яркости пиксела X, Y.В данном случае эффективно использовать таблицы преобразований. На-

пример, диапазон значений яркости 8-битного полутонового изображения со-ставляет от 0 до 255. Соответствующая формула преобразования имеет видf(X, Y) - 255 -f(X, Y), а таблица преобразования представлена в табл. 4.1.

ИндексЗначение

0255

1254

2253

Таблица 4.1

2550

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

Другая важная группа алгоритмов этого класса — алгоритмы бинаризацииполутоновых изображений, т. е. превращение их в черно-белое (двухградацион-ное) изображение. Такое преобразование осуществляется для того, чтобы сокра-тить информационную избыточность изображения, оставив в нем только ту ин-формацию, которая нужна для решения конкретной задачи (например, для выде-ления очертания объектов), и исключив несущественные особенности (фон). Этиалгоритмы основаны на пороговой обработке полутонового изображения, кото-рая заключается в разделении всех пикселов изображения на два класса по при-знаку яркости: пикселы объекта и фона. При этом выполняется поэлементноепреобразование вида

g(X,Y) =fw, если f(X,Y)>f0;fb, если f(X,Y)<f0,

fw

где /о — некоторое пороговое значение яркости g

(рис. 4.10).Основной проблемой здесь является выбор поро-

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

Пусть исходное полутоновое изображение со-держит интересующие нас объекты одной яркости на

hо /о

Рис. 4.10. Пороговое значе-ние яркости изображения

279

Рис. 4.11. Выбор порога пре-образования:

а — для четких изображений;б — для зашумленных изобра-

жений

4. Методы, алгоритмы и форматы файлов компьютерной графики

фоне другой яркости (типичные примеры: машино-писный текст, чертежи, медицинские снимки и т. д.).Тогда плотность распределения вероятностей ярко-сти должна выглядеть как два узких пика, как пока-зано на рис. 4.11, а. В этом случае задача установле-ния порога тривиальна: в качестве /0 можно взятьлюбое значение между пиками. Однако обычно изо-бражение зашумлено, кроме того, как для объектов,так и для фона характерен некоторый разброс ярко-стей. В результате функция плотности распределе-ния вероятностей яркости размывается (рис. 4.11, б).Часто бимодальность распределения тем не менеесохраняется. В такой ситуации можно выбрать порог/о, соответствующий положению минимума междумаксимумами (модами). Значения элементов изо-бражения ниже определенного значения порога пре-вращаются в черные, в то время как значения эле-ментов изображения, большие или равные значениюпорога, превращаются в белые. Пороговые алгорит-

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

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

Изображения с низким контрастом состоят из тонов ограниченного диапа-зона (оттенки серого) и обычно либо слишком ярки, либо слишком темны. Нагистограммах это условие регистрируется, когда все образцы изображения груп-пируются друг с другом и занимают только малую часть возможных значенийяркости изображения. Если эта группировка значений элементов изображениянаправлена в левую сторону гистограммы (по направлению к низким значениямяркости), изображение будет черным. Если эта группировка направлена к боль-шим значениям яркости изображения, изображение будет ярким. Гистограммыизображений с хорошим контрастом регистрируют относительно однородноераспределение значений яркости элементов изображения без больших пиков иливпадин. Как и изображения с хорошим контрастом, изображения с высоким кон-трастом содержат широкий диапазон серых оттенков. Однако изображения свысоким контрастом имеют большие площади, на которых преобладает темныйцвет, и большие площади, имеющие светлую окраску. Основным методом уве-личения контраста изображения является использование гистограммы илифункции плотности распределения яркости пикселов изображения.

280

4.1. Методы и алгоритмы двухмерной компьютерной графики

В малоконтрастных изображениях реальныйдиапазон яркости оказывается намного меньше до-пустимого (градационной шкалы яркости). Значе-ние яркости исходного изображения обозначимf(X), а значение яркости результирующего изобра-жения — g(X). Допустимый диапазон яркости за-ключен между значениями fb и fw. Задача повыше-ния контраста заключается в растягивании диапа-зона яркости исходного изображения (рис. 4.12, а) навсю шкалу (рис. 4.12, б).

Эту задачу можно решить при помощи точеч-ного преобразования яркости по формуле

•Ъ,

h

g(X)

fw

fb

Рис. 4.12. Повышение кон-траста изображения растяже-

нием диапазона яркостей:

а — диапазон яркости исходно-го изображения; б — диапазоняркости изображения с увели-

чением контрастности

g(X) = af(X)

где а и Ъ — постоянные.Алгоритмы увеличения контраста используют

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

Пространственные алгоритмы. Пространственные алгоритмы используютгруппы пикселов изображения для извлечения информации об изображении.Этим пространственные процессы отличаются от точечных, которые основанына информации только для одного пиксела при реализации точечного алгоритма.Группа пикселов изображения, используемых в пространственных алгоритмах,называется областью примыкания. Область примыкания — двухмерная матрицазначений яркости пикселов изображения, которая обычно имеет нечетное числострок и столбцов. Преобразуемые пикселы (старое значение которых заменяетсяна новое как результат работы алгоритма) обычно расположены в центре облас-ти примыкания.

Большинство пространственных алгоритмов используют пространственныефильтры. В качестве примера рассмотрим задачу повышения резкости изобра-жения с помощью пространственного фильтра. При вводе в компьютер изобра-жения подвергаются действию нескольких искажающих факторов. Обычно этиискажения заключаются в ослаблении верхних пространственных частот спект-

281

fb

Рис. 4.13. Повышение резкости спомощью высокочастотной фильт-

рации:

1 — функция яркости исходного изо-бражения; 2 — функция яркостисглаженного изображения; 3 — функ-ция яркости разностного изображе-ния; 4 — функция яркости результи-рующего более резкого изображения

4. Методы, алгоритмы и форматы файлов компьютерной графики

ра изображения. Визуально они воспринима-ются как ухудшение резкости изображения,при которой становятся плохо видимыми мел-кие детали. Следовательно, повышение резко-сти должно заключаться в подъеме уровнявысоких частот спектра изображения, т. е. в еговысокочастотной фильтрации. В результатеэтой фильтрации происходит подчеркиваниеграниц объектов, улучшается различимостьмелких деталей (ранее размытых). Повышениерезкости заключается в усилении высокочас-тотных составляющих пространственногоспектра изображения. Простой метод повы-шения резкости основан на пространственнойлинейной обработке пикселов изображенияскользящим окном небольшого размера. Этоокно перемещается по изображению, и прикаждом его положении формируется значениеяркости выходного поля яркости (обычно это

значение соответствует центру окна). В данном случае алгоритм повышениярезкости реализуется как двухмерный фильтр с конечной импульсной характе-ристикой. Размеры и форма окна определяют область ненулевых значений им-пульсной характеристики фильтра. Рассмотрим, как для одномерного случаякачественно строится фильтр, подчеркивающий границы. Пусть/(X) — функцияяркости вдоль строки исходного нерезкого изображения. На рис. 4.13 кривая 1представляет собой функцию яркости исходного изображения в области расфо-кусированной границы объекта.

Процедуру обработки можно разбить на несколько шагов. Сначала осущест-вляется низкочастотная фильтрация, т. е. дополнительное сглаживание сигнала(обозначим сглаженный сигнал —f\{X), рис. 4.13, кривая 2). Далее из исходноговычитается сглаженный сигнал, в результате чего формируется разностный сиг-нал — высокочастотное изображение (рис. 4.13, кривая 3):f2(X) =f(X) -/i(X). За-тем этот разностный сигнал суммируется (с некоторым коэффициентом) с ис-ходным. Полученный результат g(X) — изображение с повышенной резкостью(рис. 4.13, кривая 4). В спектре этого изображения низкочастотные компонентыне изменились (т. е. общий уровень яркости остался прежним), а высокочастот-ные усилились (т. е. подчеркнуты локальные особенности — границы, мелкиедетали). Рассмотрим эту процедуру для двухмерного случая. Низкочастотнаяфильтрация (сглаживание) осуществляется усреднением значения яркости вцентре окна:

-^i. Y-K2),D

282

4.1. Методы и алгоритмы двухмерной компьютерной графики

где D — некоторая конечная область в пространстве аргументов X, Y, опреде-ляющая окно ((К], К2) е D).

Очевидно, что записанное выражение задает двухмерную свертку дискрет-ного сигнала с импульсной характеристикой h{Kx, К2) сглаживающего фильтра.

Сначала выбираются значения h(Kx, К2) так, чтобы получить сглаживание (ус-реднение) значений яркости пикселов. К процедуре сглаживания предъявляетсятребование — она не должна изменять среднее значение (постоянную состав-ляющую, среднюю яркость) изображения, т. е. необходимо выполнение сле-дующего условия:

*' (Kt,K2)eD "4

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

Далее вычисляются высокочастотное изображение и изображение с повы-шенной резкостью, в результате можно получить выражение в виде свертки:

и g(X,Y)= X E A ( * i ' * 2 ) / i ( * - * i . r - * 2 ) .

где h(Kx,K2) — импульсная характеристика фильтра, осуществляющего повы-

шение резкости.На практике из соображений простоты берут обычно центрированное квад-

ратное окно малого размера (3x3 или 5x5). При этом h(Kx,K2) удобно зада-вать в форме так называемой маски свертки фильтра. Например, типичная маскаразмером 3x3 для повышения резкости изображений имеет вид

/ 0 -1 0 Л

-1 5 -1

v j0 - 1 0

Обозначим Р, значение яркости некоторого пиксела в окне преобразования

Рп Р,Г7 8 У

a Kj — значение соответствующего коэффициента в маске свертки

f v К,1о ч^ 3 К4 К5

К? К-, Ко

283

4. Методы, алгоритмы и форматы файлов компьютерной графики

В результате работы алгоритма вычисляется новое значение яркости цен-трального пиксела в окне, т. е. Р4:

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

Большой размер маски повышает гибкость процесса свертки. К сожалению,некоторые детали простого расчета весовой суммы свертки усложняют его реа-лизацию. Первая и основная трудность связана с кромками изображения. По ме-ре того как мы перемещаем маску свертки (и соответственно рассматриваемыйпиксел изображения) по изображению пиксел за пикселом, возникают сложно-сти, поскольку на границе изображения рассматриваемый пиксел не имеет сосе-дей со всех сторон. Другими словами, маска свертки выходит краем за границыизображения. Такое искажение происходит на верхней, правой, левой и нижнейграницах изображения. Для устранения этого явления используют два метода:

• данные на краях изображения не учитываются;• на краях изображения можно копировать пикселы маски для того, чтобы

синтезировать дополнительные данные границы.Рассмотрим другие примеры применения алгоритмов свертки. Низкочастот-

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

(\/9

1/9

1/9

1/9

1/9

1/9

1/9

1/9

fl/10

1/10

1/10

1/10

1/5

1/10

1/10

1/10

fl/16

1/8

1/16

1/8

1/4

1/8

1/8

1/16

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

284

4.1. Методы и алгоритмы двухмерной компьютерной графики

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

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

-1 -1 -1

-1 9 -1

-1 -1 -1

1 - 2 1

-2 5 -21 -2 1

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

Отдельно следует рассмотреть медианные фильтры. С помощью этих фильт-ров выполняется усредненное фильтрование. Усредненное фильтрование — про-странственный алгоритм, который не попадает под категорию свертки. Усред-ненное фильтрование использует значение пикселов, содержащихся в областипримыкания, для определения нового значения рассматриваемого пиксела. Од-нако новое значение яркости пиксела не вычисляется алгоритмически из значе-ний яркости пикселов в области примыкания. Вместо этого пикселы в областипримыкания сортируются в возрастающем порядке и отбирается среднее значе-

285

4. Методы, алгоритмы и форматы файлов компьютерной графики

ние яркости как новое значение рассматриваемого пиксела. Например, надо из-менить значение яркости центрального пиксела в следующем окне преобразования:

^27

42

27

22

255

25

29^

29

29

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

22, 25, 27, 29, 29, 29, 42, 255.

В результате среднее значение яркости 29 заменяет 255 в выходномизображении. Если 255 было значением пиксела шума, создавшего белое пятнона исходном изображении, то оно будет отфильтровано.

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

Алгоритмы геометрических преобразований. Алгоритмы геометрическихпреобразований растровых данных изображений изменяют пространственноеместоположение и/или структуру пикселов в изображении, основываясь на не-которых геометрических преобразованиях. Геометрические преобразования не-обязательно изменяют значения яркости элементов изображения, но они всегдаизменяют положение пикселов изображения. Другими словами, значения ярко-сти для данных пикселов изображения перемещаются в новую позицию. В этомсостоит основное отличие алгоритмов геометрических преобразований от то-чечных и пространственных алгоритмов. Каждый из этих классов алгоритмовобработки изображения всегда изменял значение яркости пикселов изображе-ния, в данных алгоритмах яркость изменять необязательно, хотя во многих алго-ритмах яркость пикселов изменяется. Геометрические преобразования растро-вых данных широко применяются:

• как предварительный шаг в подготовке изображения для последующейточечной, пространственной обработки;

• для обеспечения работы алгоритмов распознавания, например после ска-нирования страниц текста с некоторым поворотом строк текста относительногоризонтали; ,

• для обеспечения работы алгоритмов наложения текстуры; "• для обеспечения различных эффектов в изображениях. пГеометрические преобразования растровых данных изображения включают

перемещение, масштабирование, сдвиг и поворот изображения.Перемещение, масштабирование и сдвиг изображения. Перемещение

изображения имеет смысл, только если это изображение является подызоб-

286

4.1. Методы и алгоритмы двухмерной компьютерной графики

Изображение-источник

Рис. 4.14. Простое пере-мещение изображения

ражением некоторого большего изображения. Предпо- Изображение-цельложим, что мы хотим переместить массив из п строк ик столбцов пикселов (изображение-источник) с коор-динатами левого верхнего углового пиксела {а, Ь) вновое положение с координатами левого верхнего уг-лового пиксела (с, d) (изображение-цель). Это преоб-разование очень простое; мы копируем пикселы изисходного положения до положения цели и (если хо-тим) заменяем все исходные пикселы, которые не яв-ляются пикселами цели, цветом фона. При условии,что надо предотвратить изменение пикселов изобра-жения источника, когда изображение цели накладыва-ется на него, и при условии, что четыре числа а, Ъ, с иd — это целые числа, проблем не возникает (рис. 4.14).Однако если координаты начального и конечного положения не являются целы-ми числами, то необходимо выполнить дискретизацию координат. Аналогичнаяпроблема имеет место и для всех других видов преобразований. Для решенияэтой проблемы были разработаны алгоритмы на основе кода Росштейна(Roths tein).

В качестве примера рассмотрим изменение размеров изображения только погоризонтали. Предположим, что пиксельная плоскость разделена на квадраты(один квадрат на один пиксел), и средняя яркость в квадрате имеет значение,назначенное для яркости соответствующего пиксела. Будем растягивать изобра-жение, состоящее из серых квадратов, яркость которых определена значениямисоответствующих пикселов. Обозначим коэффициент масштабирования (сдвига)plq, где р a q — простые целые числа. Тогда для растяжения пиксельной плоско-сти, состоящей из массива квадратов, с этим коэффициентом надо брать qстолбцов квадратов изображения источника и разместить их так, чтобы охватитьр столбцов квадратов изображения цели. Выполнение дискретизации по центрамквадратов полученной области даст в результате изображение цели.

Для эффективной реализации этого алгоритмана первом этапе генерируется код Росштейна длячисла plq. Этот код представляет собой двоичнуюпоследовательность, описывающую линию, наклонкоторой равен qlp (любой сканирующий преобразо-ватель линии может быть использован для генера-ции подобного кода). На рис. 4.15 показана линия снаклоном 3/5 и с 15 (pxq) метками для фиксациипересечений этой линии с горизонтальными линия-ми сканирования.

Когда линия сканирования проходит слева на-право, она пересекает горизонтальные линии сетки.Если столбец содержит такое пересечение сетки, он

1 1 0 1 0

Код Росштейна

Рис. 4.15. Получение кодаРосштейна для линии с на-

клоном qlp = 3/5:

• — метка для определенияцифр кода

287

4.1. Методы и алгоритмы двухмерной компьютерной графики

диционных алгоритмов поворота в плоскости. Рассмотрим поворот исходногоизображения вокруг начала координат на угол а против часовой стрелки. Тради-ционные преобразования координат для поворота точек на непрерывной плоско-сти запишутся следующим образом:

Р' = АР,

где Р' =У

координаты точки в повернутой системе координат; Р =

cos a sin а !

- s inaкоординаты в исходной системе координат; А = \ I — матрица по-

" cosajворота.

Операция поворота пикселов должна выглядеть следующим образом: на ос-новании значений яркости пикселов исходного изображения необходимо полу-чить значения яркости пикселов с такой же координатной сеткой для повернуто-го изображения. При решении задачи будем основываться на методе реализацииповорота непрерывного изображения. В отличие от поворота на непрерывнойплоскости необходим переход к дискретным координатам:

Р' =У \

целые числа. Однако для произвольного угла а функции sin и cos неЛ

х

где х, и за-

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

Рассмотрим действие такого алгоритма. На рис. 4.17приведен пример поворота столбца пикселов на некоторыйугол и результат дискретизации положения повернутыхпикселов. На основании значений яркости в узлах исходнойкоординатной сетки необходимо получить значения ярко-сти в узлах результирующей координатной сетки. Следова-тельно, число пикселов дискретизированного изображенияне должно изменяться при повороте: одному пикселу ис-ходного изображения должен соответствовать один пикселрезультирующего. Однако в данном случае такое условиене выполняется. На рис. 4.17 видно, что существуют узлы,которым соответствует более одного пиксела исходногоизображения (сдвоенные точки) и узлы, которым не соот-ветствует ни одного пиксела исходного изображения (необ-работанные точки). Пусть а — шаг исходной (следователь-но, и результирующей) сетки. Тогда зона пиксела будетиметь вид квадрата со стороной а. Значение наибольшегоотрезка, который можно вписать в квадрат, равно его диа-

Необработаннаяточка

_ ! /

"71

V/V

//

Л

пУ/

Сдвоенная точка

Рис. 4.17. Округле-ние координат пик-селов при повороте:

• — центр пикселаисходного изображе-ния; • — центр пик-села повернутого изо-

бражения

289

4. Методы, алгоритмы и форматы файлов компьютерной графики

гонали, т. е. asl. А поскольку сторона исходной координатной сетки такжеравна а, то возможен случай, когда один из отрезков, образованных коорди-натной сеткой, целиком попадает в зону какого-либо пиксела. Это будет соот-ветствовать появлению «сдвоенной» точки. Таким образом, поворот дискрети-зированного изображения при помощи алгоритма с округлением неизбежноприводит к появлению необработанных точек на изображении, что вносит ис-кажения в исходное изображение.

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

является следствием неравенства а < аы2. Для устранения этого эффекта можноиспользовать различные шаги исходной и результирующей сеток путем введе-ния промежуточной системы координат. Для любой точки промежуточной сис-темы координат вычисляются соответствующие точки результирующей и ис-ходной системы координат. В соответствии с чем производится присваиваниезначения яркости точкам результирующей системы координат. Таким образом,для построения взаимосвязи между исходной и повернутой системой координат,вводится промежуточная система координат с шагом координатной сетки в2 раза меньшим. Это можно рассматривать как продвижение по исходному изо-бражению с нецелым шагом, меньшим, чем шаг координатной сетки. Получаемыйрезультат не требует никакой корректировки и выполняется за один проход. Од-нако это связано с увеличением вычислительных затрат, поскольку поворот про-изводится для сетки с меньшим шагом, число узлов в которой в 2 раза больше,чем в исходной.

Более экономичными являются многопроходные алгоритмы геометрическихпреобразований растровых данных изображений. Предположим, что имеетсяисходное изображение, показанное на рис. 4.18, а. Выполним преобразованиесдвига только для вертикальных рядов пикселов (рис. 4.18, б) и затем повториманалогичный сдвиг только для горизонтальных рядов (рис. 4.18, в).

т.а б в

Рис. 4.18. Поворот изображения за два прохода:

• исходное изображение; б — сдвиг по вертикали; в — сдвиг по горизонтали

290

4.1. Методы и алгоритмы двухмерной компьютерной графики

Если преобразования вертикального и горизонтального сдвига выполнены пра-вильно, то в результате можно повернуть изображение, как показано на рис. 4.18, в.Двухпроходный метод быстрее, чем прямое применение формул поворота в од-нопроходных алгоритмах, так как этот метод оперирует только одним рядомвертикальных или горизонтальных пикселов в одном проходе, и вычисления впределах каждого ряда могут быть выполнены инкрементно. Следует отметить,что во многих случаях для устранения нежелательных эффектов дискретизациинеобходима фильтрация изображения, которая также может быть выполненаотдельно для горизонтальных и вертикальных рядов пикселов.

Выполнение двух проходов (или многих проходов) преобразования можетбыть разделено на две подзадачи:

• определение преобразований для индивидуальных проходов по верти-кальным и горизонтальным рядам пикселов;

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

Идеи многопроходных алгоритмов можно использовать и в других алгорит-мах обработки растровых данных изображений.

4.1.2. Входные данные растровые, выходные данные векторные

Иногда преобразования растровых данных в векторные называют вектори-зацией. Алгоритмы данного класса нашли применение в системах обработкиизображений и распознавания образов. Одновременно с теоретическими разра-ботками алгоритмов векторизации уделялось большое внимание разработкепроблемно-ориентированных практических систем. Наибольшие успехи былидостигнуты при создании систем распознавания печатного текста, которыеобеспечивают почти 100%-ное правильное автоматическое распознавание прикачественном сканировании текста, например программная система FineReader.Ввиду чрезвычайной сложности задач выделения двухмерных объектов и связеймежду ними на основе растровых бинарных или полутоновых изображенийэтих объектов, все системы имеют строгую предметную направленность. Кромесистем распознавания текста следует выделить системы:

• распознавания чертежных документов в САПР;• технического зрения;• распознавания географических карт;• распознавания топологии интегральных схем;• распознавания аэро- и космических снимков;• обработки медицинских снимков;• идентификации фотографий лица человека;• системы идентификации отпечатков пальцев.Области применения алгоритмов данного класса постоянно увеличиваются

в связи с расширением использования растровых, сканирующих устройств вво-

291

4. Методы, алгоритмы и форматы файлов компьютерной графики

а б

Рис. 4.19. Векторизация:

а — вручную; б — полуавтоматический

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

• исходное растровое изображение всегда предварительно обрабатываетсядля удаления случайных помех и элементов изображения, не представляющихинтерес для конкретной задачи. Методы и алгоритмы для такой обработки раст-ровых изображений были рассмотрены в подразд. 4.1.1;

• предусмотрено три основных режима работы с изображением:- ручной, при котором опорные точки векторного изображения и вектор-ные контуры изображения наносятся и рисуются поверх пиксельного изо-бражения вручную с помощью какого-либо графического редактора, какпоказано на рис. 4.19, а;- полуавтоматический, при котором можно вручную контролировать про-цесс распознавания, а также контролировать выделение областей для рас-познавания изображения; на рис. 4.19, б показан результат полуавтоматиче-ского выделения областей в программе Photoshop по команде пользователя;- полностью автоматический.В алгоритмах векторизации реализуются четыре основных принципа распо-

знавания изображений:• последовательное распознавание от простых элементов изображения к

сложным, от анализа бинарного представления к анализу полутонового;• последовательный переход от локального анализа элементов изображения

к глобальному анализу;• максимальное использование пространственно-логических отношений

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

вания технических чертежей в САПР, представленных в виде бинарных растро-вых изображений. Чертежом называют документ, содержащий изображениепредмета и другие данные, необходимые для его изготовления и контроля. Чер-теж обычно содержит проекции предмета, которые в зависимости от их содер-жания делятся на виды, разрезы, сечения и сведения, необходимые для его изго-товления (рис. 4.20). .•-, ,. - .^,

292

1. Наружные кромки притупить фасками 2x45°.2. Все 16 отверстий диаметром 5 сверлить на глубину 20.

Рис. 4.20. Пример растрового изображения чертежа

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

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

Цель распознавания изображений чертежей заключается в автоматическомформировании описания чертежа в примитивах, использующихся в системахСАПР и которыми оперирует пользователь. Основными элементами чертежа счи-таются контурные (обычно утолщенные) линии, линии симметрии (штрихпунк-тирные линии), невидимые линии контура (обычно штриховые линии), сечения(заштрихованные области), размеры различных типов (линейные, радиальные ит. п.), обозначения допусков и подобные им элементы, которые характеризуютсясвоей формой. Эти элементы в дальнейшем могут использоваться как основа дляпонимания чертежа, т. е. для его описания в терминах двухмерных объектов, ха-рактерных для конкретной области применения, содержащихся в специальныхбиблиотеках САПР (например, болты, валы, штифты и т. п.), а также для восста-новления трехмерных моделей деталей. Следует отметить, что формируемыйуровень описания чертежа в терминах простейших графических примитивов не-достаточен для современных САПР, и объем дальнейших доработок по доведе-нию описания до нужного уровня остается весьма существенным. Автоматиче-ское преобразование чертежно-графических изображений в формат САПР можноразделить на три основных этапа, не считая сканирования документа и получениярастрового изображения:

• векторизация изображения для получения векторного представления втерминах простейших графических примитивов;

• распознавание векторной модели с целью получения описания чертежа втерминах универсальных элементов чертежа (примитивов чертежа);

• интерпретация описания для представления специализированных двух-мерных объектов, имеющихся в библиотеках САПР, с параметрами и отноше-ниями, как правило, в формате DXF, который будет рассмотрен в подразд. 4.3.2.

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

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

294

4.1. Методы и алгоритмы двухмерной компьютерной графики

1 2 3 М•я*-

Рис. 4.21. Примитивы чертежа

обобщения данных до уровня, необходимого для представления чертежа в сис-темах САПР.

Рассмотрим в качестве примера три уровня представления графической ин-формации: исходное растровое изображение, промежуточное контурное пред-ставление и промежуточное скелетное представление. Единственным элементомисходного растрового представления является пиксел, который может прини-мать два значения: либо 1 (элемент объекта), либо 0 (элемент фона). Примеробъекта исходного бинарного изображения приведен на рис. 4.22, а.

Растровое изображение характеризуется максимальной детализацией посравнению с другими уровнями представления. Первым уровнем преобразова-ния исходного растрового представления в векторное является контурноепредставление. Контурная форма представления (С-форма) содержит коорди-наты внешних и внутренних границ (контуров) связных компонентов изобра-жения, а также параметры самих связных компонентов (площадь, периметр,габариты и т. п.). Контурная форма бинарного объекта изображения приведенана рис. 4.22, б. Эта форма достаточно просто и однозначно может быть полу-чена из растрового изображения. Такое представление весьма далеко от тре-буемого выходного представления и недостаточно структурировано, однакоего удобно использовать для извлечения некоторых элементов чертежа (таких,как изолированные символы, потенциальные стрелки размерных линий, запол-ненные области и т. п.).

Скелетная форма представления (5-форма) используется как основа для рас-познавания элементов изображения. Она формируется в результате векториза-ции утоньшенного изображения, которое представляет собой множество растро-вых линий единичной ширины и содержит предпосылки для структуризациисвязных компонентов изображения. Скелетная форма бинарного объекта изо-бражения приведена на рис. 4.22, в. 5-форма содержит два основных типа дан-ных, используемых для дальнейшего распознавания: отрезки или сегменты (час-ти связных компонентов утоньшенного изображения, ограниченные концевыми

Рис. 4.22. Пример исходного бинарного (а), контурного (б)и скелетного (в) представлений

295

4. Методы, алгоритмы и форматы файлов компьютерной графики

и узловыми точками) и узлы, описывающие связи между отрезками. На физиче-ском уровне 5-форма представляется в виде трех файлов: файла паспортов, фай-ла метрики и файла связей. В файле паспортов хранится описание каждого сег-мента в виде ограниченного множества характеристик (длина; средняя ширина;угол наклона; координаты описываемого прямоугольника; тип сегмента: прямая,ломаная, дуга; кривизна для дуг окружностей; ссылки на файлы метрики и свя-зей и др.). В файле метрики хранится метрическое описание сегментов в видекоординат точек. В файле связей содержится информация о связях сегментов,стыкующихся в узловых точках. Все файлы взаимосвязаны между собой посредст-вом ссылок. Хотя данное представление более близко к требуемому выходномупредставлению, оно еще остается чрезмерно детализированным (например, вскелетной форме один отрезок прямой может быть представлен в виде множест-ва отрезков) и требует большого объема интерактивной работы для практиче-ского использования в САПР. Для достижения практически полезных результа-тов надо распознавать более сложные примитивы и объекты.

Собственно процесс векторизации растровых данных (после предваритель-ной обработки) включает в себя следующие этапы:

• сегментация бинарных растровых данных или выделение областей;• выделение контуров;• выделение средних линий объектов;• векторизация скелетных изображений;• полигональная аппроксимация.Сегментация бинарных растровых данных. Предполагается, что на доку-

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

Рассмотрим три метода сегментации изображения документа на компонен-ты: расширения, выделения профилей и преобразование Хоха (Hough).

Метод расширения включает просмотр черно-белых изображений. Алго-ритм заменяет белые элементы изображения на черные между двумя любымичерными элементами, если расстояние между ними меньше, чем некоторый по-рог. Другие белые элементы изображения остаются неизменными. Алгоритмприменяется сначала к строкам, а затем к столбцам. Два результирующих би-нарных изображения объединяются путем применения логического И к каждомупикселу. Пороги в направлениях X и Y необязательно одинаковы. Сегментацияприводит к расширению каждого блока, который будет состоять из одного типаданных (текст или графика).

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

296

4.1. Методы и алгоритмы двухмерной компьютерной графики

Применение метода основывается на очертаниях фрагментов изображений.ХУ-дерево получается в результате использования горизонтального или вертикаль-ного разделения на альтернативных уровнях дерева. Корень — это весь анализи-руемый документ и он может рассматриваться как единственное горизонтальноеили вертикальное выделение. Выделенные вершины и уровни формируются в про-цессе альтернативного выделения. Число горизонтальных и вертикальных выделе-ний на каждом уровне различно, поэтому итоговое дерево является бинарным.

Преобразование Хоха — метод обнаружения параметрически изображаемыхформ, например прямых линий на зашумленных бинарных изображениях. Сег-ментация на основе преобразования Хоха основана на ряде предположений одокументе. Документ обычно содержит несколько прямых линий. Таблицы со-держат сплошные прямые линии, чертежи также преимущественно имеют пря-мые линии. Столбцы текста, как правило, разделены прямыми участками белогопространства. Текст обычно состоит из нескольких параллельных текстовыхстрок. Преобразование Хоха позволяет находить на бинарном изображении пло-ские кривые, заданные параметрически, например прямые, окружности, эллипсыи т. д. Обозначим 0 — точки фона, 1 — точки интереса. Задача преобразованияХоха состоит в выделении кривых, образованных точками интереса.

Рассмотрим семейство кривых на плоскости, заданное параметрическимуравнением:

F(aua2, ...,an,X, У) = О,

где F — некоторая функция; яь а2,..., ап — параметры семейства кривых; X, У—координаты на плоскости. Параметры семейства кривых образуют фазовое про-странство, каждая точка которого (для определенных значений параметров аъ

а2, ..., ап) соответствует некоторой кривой.Идея преобразования Хоха состоит в поиске кривых (точек параметрическо-

го пространства), которые проходят через достаточное число точек интереса.Ввиду дискретности машинного представления и входных данных требуетсяперевести непрерывное параметрическое пространство в дискретное. Для этоговводим сетку на параметрическое пространство. Каждой ячейке сетки ставим всоответствие счетчик. Значение счетчика каждой ячейки устанавливаем равнымчислу точек интереса, через которые проходит хотя бы одна кривая, параметрыкоторой принадлежат данной ячейке. Анализ счетчиковячеек позволяет найти на изображении кривые, на которыхлежит наибольшее число точек интереса.

Например, прямую на плоскости (рис. 4.23) можно задатьследующим образом:

X cos Т + Y sin T - R,о х

где R — длина перпендикуляра, опущенного на прямую из р и с # 4.23. Парамет-начала координат; Т — угол между перпендикуляром к рическая прямая

297

4. Методы, алгоритмы и форматы файлов компьютерной графики

прямой и осью ОХ. Угол Т изменяется в пределах от 0 до 2я, a R ограничен раз-мерами входного изображения.

Таким образом, функция, задающая семейство прямых, имеет вид

F(R, T,X,Y) = xcosT + y sin T-R.

В общем случае алгоритм поиска прямой на изображении при помощи пре-образования Хоха имеет следующий вид:

1) обнулить счетчики всех ячеек;2) для каждой точки интереса на изображении проверить каждую прямую,

проходящую через данную точку, и увеличить соответствующий счетчик;3) выбрать ячейки со значением счетчика, превышающим заданный порог.Гистограммы расстояний вдоль линий и их перпендикуляров могут быть

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

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

Для каждой области можно подсчитать набор простейших числовых харак-теристик: площадь, периметр, компактность, статические моменты и т. п.

Площадь соответствует числу пикселов в области.Периметр соответствует числу пикселов, принадлежащих границе области.

При определении периметра рассматриваются два случая:• пиксел лежит на границе области, если он сам принадлежит области и хо-

тя бы один из его соседей области не принадлежит (внутренняя граница);• пиксел лежит на границе области, если он сам не принадлежит области и

хотя бы один из его соседей области принадлежит (внешняя граница).Компактность — отношение квадрата периметра Р к площади А; С = Р/А.

Например, для наиболее компактной фигуры — круга — С = 2п.Статические моменты выделенных областей определяют центр тяжести об-

ласти. Например, дискретный центральный момент Му области определяетсяследующим образом:

Ми= X (х-хсПу-ус)';

298

4.1. Методы и алгоритмы двухмерной компьютерной графики

- Х V - !

П jteReg П >eReg

где п — общее число пикселов в области; Reg — выделенная область; х, у — ко-ординаты пикселов в пиксельной матрице.

На основе этих характеристик можно классифицировать получаемые области.Графическая информация на чертежах включает три основных класса объ-

ектов: линии, области и дискретные объекты. Поскольку эти классы объектовобычно обрабатываются и распознаются различными методами, то необходимона начальной стадии провести их сегментацию на различные классы. Даннаязадача может быть эффективно решена с использованием морфологических опе-раций эрозии и расширения. Действительно, выполняя эрозию структурирую-щим элементом, имеющим форму круга радиуса, равного половине максималь-ной ширины линий плюс один, удаляют все линии на изображении. Сохранятсялишь эрозированные области и, возможно, шум. Если решается некоторая кон-кретная задача распознавания (например, выделение стрелок на чертежах), то,исследуя форму выделенных объектов, можно отделить области заданной кон-фигурации от шума. Выполнив затем операцию расширения и вычитания из ис-ходного изображения, получают изображение, содержащее только области. Привыделении областей предполагается, что известна максимальная ширина линии.Ее также можно определить либо в автоматическом, либо в интерактивном ре-жиме.

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

Этапы алгоритма разделения объектов на классы по их контурному пред-ставлению:

1) оконтуривание всех объектов изображения и их преобразование в вектор-ную форму;

2) разделение всех объектов на два класса: линейные объекты и все остальные;3) выделение средних линий из линейных объектов;4) полигональная аппроксимация объектов и запись информации в базу

данных.Для разделения объектов на различные классы используется средняя тол-

щина связного компонента, рассчитываемого на основе предположения о том,что связный компонент состоит из множества трапеций, по следующей формуле:

W =4

где S и Р — площадь и периметр связного компонента соответственно.

299

4. Методы, алгоритмы и форматы файлов компьютерной графики

а бРис. 4.24. Выделение контура отслеживающим (а) и сканирующим (б) алгоритмом

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

Выделение контуров. Алгоритмы выделения контуров можно условно раз-бить на две группы: отслеживающие и сканирующие.

Отслеживающие алгоритмы основаны на том, что на изображении отыски-вается объект (первый встретившийся пиксел объекта) и контур объекта от-слеживается и векторизуется. Достоинством данных алгоритмов является про-стота, к недостаткам можно отнести их последовательную реализацию и неко-торую сложность при поиске и обработке внутренних контуров. Пример от-слеживающего алгоритма — алгоритм «бегающий муравей» — приведен нарис. 4.24, а.

На первом этапе алгоритма осуществляется сканирование изображения донахождения первого пиксела объекта (первой черной точки). Затем «муравей»начинает двигаться вокруг этой точки по 8-связной окрестности против часовойстрелки. Первой анализируемой точкой 8-связной окрестности является точка, скоторой он попал в центр окрестности. Движение по 8-связной окрестностиосуществляется до тех пор, пока не будет найден новый пиксел объекта. Этаточка принимается за центр окрестности и все опять повторяется. Таким обра-зом осуществляется движение по контуру до тех пор, пока контур не замкнется,т. е. очередная точка не совпадет с первой точкой контура, с которой началосьотслеживание. Затем осуществляется поиск другого объекта и отслеживание по-вторяется.

Сканирующие алгоритмы основаны на просмотре (сканировании) всего изо-бражения и выделения контурных точек без отслеживания контура конкретныхобъектов. На рис. 4.24, б показан пример выделения контура сканирующим ал-горитмом.

Выделение средних линий объектов изображения. Задача выделения сред-них линий (скелетов) изображений является одной из основных задач предвари-тельной обработки изображения. Средние линии позволяют описывать геомет-рические особенности объектов и удобны для последующей обработки. Термин

300

4.1. Методы и алгоритмы двухмерной компьютерной графики

«утонынение» — общий термин для обозначения процесса преобразования ли-ний или других объектов изображения, имеющих ширину в несколько пикселов,в линии единичной ширины. Другими наиболее употребляемыми терминами дляобозначения этой операции являются термины «скелетизация», «преобразованиесредних осей», «преобразование осей симметрии» и др.

К операции утоньшения предъявляются, как правило, три основных требо-вания:

• связность объектов изображения и фона должна быть сохранена;• концы средней линии должны располагаться как можно ближе к их истин-

ному положению;• центральные линии объектов должны быть выделены достаточно точно.Как правило, все существующие алгоритмы удовлетворяют этим требованиям.

Алгоритмы утоньшения можно условно разбить на несколько групп на основеидеи или метода, заложенных в них. Самая большая группа алгоритмов основа-на на идее итеративного удаления внешних слоев или контурных точек объектовдо тех пор, пока на изображении останутся только точки скелета. Итеративныеалгоритмы используют маску (как правило, размером 3 х 3), которая перемеща-ется по всему изображению и в каждый момент времени она сопоставляется ссоответствующим участком изображения, чтобы определить новое значениецентрального пиксела. Таким образом, в результате просмотра всего изображе-ния удаляется один (или несколько) из внешних слоев объекта. Количество про-смотров изображения и как следствие время работы итеративных алгоритмовзависят от максимальной ширины объектов изображения.

Алгоритмы данной группы можно разделить на два класса: параллельные ипоследовательные. В параллельных алгоритмах окно располагается одновре-менно во всех пикселах изображения и при его обработке не используются но-вые (полученные на данной итерации) значения пикселов. При работе последо-вательных алгоритмов пикселы обрабатываются последовательно.

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

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

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

301

4. Методы, алгоритмы и форматы файлов компьютерной графики

а б в г д еж

Рис. 4.26. Типы ситуаций сканирования:

а — начало; б — конец; в — продолжение; г, д — слияние; е — разветвление;ж — изолированная точка

образом. Все черные (единичные) пикселы утоньшенного растра в зависимостиот расположения окружающих их пикселов в определенной окрестности клас-сифицируются как конечная точка, элемент линии и узловая точка. Из такогоразмеченного растра выбираются пикселы, помеченные как конечные и узловые.Их координаты запоминаются в соответствующем файле. Далее, начиная с этихточек, отслеживаются объекты изображения и запоминаются в файле объектов.При этом создается векторное описание исходного изображения. Если при пер-воначальном сканировании исходного растра проставить для каждого пикселачисло итераций утоньшения, то в векторное линейное описание можно ввестидополнительный атрибут — ширину линии. Объединение всех связанных пик-селов утоньшенного растра в линейные структуры осуществляется за один про-смотр исходного файла. В результате идентифицируются все линии изображе-ния и места их пересечений, ветвлений и слияний, а на изображении выделяютсяособые точки (конечные или узловые) и отрезки связных компонентов (сегмен-ты), ограниченные особыми точками.

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

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

Полигональная аппроксимация является средством компактного и эф-фективного представления линий для анализа формы и классификации обра-зов. Она позволяет сократить количество входных данных и сгладить незна-чительные искажения линии. Аппроксимация должна обладать некоторымисвойствами:

• хорошо сохранять информацию, т. е. все существенные особенности фор-мы не должны устраняться;*-- • не занимать значительных объемов памяти;

302

4. Методы, алгоритмы и форматы файлов компьютерной графики

Рассмотрим два возможных случая вычисления функции F.Случай 1. Если функция Р на предыдущем шаге была отрицательна, т. е.

значение Y не изменялось, то получим равенство

F(XP + 2,YP+ 1/2) = -2W(YP + 1/2 - Ya) + 2H(XP + 2-Xa).

Чтобы определить, насколько последнее равенство больше, чем F(XM, YM),вычтем из него равенство (4.1):

F(XP + 2,YP+ 1/2) = F(XM, YM) + 2H.

Случай 2. Если функция F на предыдущем шаге была положительна, т. е.значение У было увеличено на 1, то

F(XP + 2,YP + 3/2) = -2W(YP + 3/2- Ya) + 2H(XP + 2-Xa) = F(XM, YM)-2(W-H).

В каждом из случаев к исходному значению функции добавляется некотораяконстанта: 2Н, если мы не увеличивали Y, и -2(W~H) — если увеличивали.

Осталось определиться, с чего начинать процесс растеризации. Известно,что при X = Ха Y = Ya. Поэтому первый «экземпляр» средней точки М = (Ха + 1,Ya + 1/2) и тогда

F(X, Y) = -2W(Ya + 1/2 - Ya) + 2Н(Ха +l-Xa) = 2H-W.

Если бы мы предварительно не умножили функцию на 2, то результат былбы Н - 0,5W, что сделало бы невозможным использование целочисленных зна-чений всех переменных.

Таким образом, перед началом процесса примем, что F - 2Н - W, X = Ха,Y = Ya. Затем на каждом шаге делаем следующее:

1) присвоим пикселу (X, Y) нужное значение цвета;2) увеличим X на 1; если F < 0, то добавим к F значение 2Н; в противном

случае увеличим Уна 1 и добавим к F значение -2(W- H).При программировании этого алгоритма следует отдельно рассматривать

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

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

Из рис. 4.31, а следует, что если пиксел внутри многоугольника, то суммар-ный угол будет равен АРВ + ВРС + CPD + DPE + ЕРА = 360°, а из рис. 4.31, бследует, что если пиксел вне многоугольника, то этот угол будет равен

308

4.1. Методы и алгоритмы двухмерной компьютерной графики

D

А Е А Еа б

Рис. 4.31. Определение принадлежности пиксела:

а — внутри многоугольника; б — вне многоугольника

DPE + ЕРС + СРА + АРВ - BPD = О, поскольку угол BPD отсчитывается в про-тивоположном направлении по отношению к другим углам и равен их сумме.

Вычисление принадлежности в этом алгоритме надо выполнять для всехпикселов экрана, поэтому данный способ неэффективен.

Алгоритм построчного заполнения многоугольника. Более эффективныалгоритмы построчного заполнения. Предположим, что область, подлежащаязаполнению, представляет собой многоугольник, заданный совокупностью пик-селов Pt - (Xj, Y{), которые определяют вершины многоугольника. На рис. 4.32приведен пример для многоугольника, заданного пятью вершинами.

Для заполнения области внутри многоугольника просматривают пикселыпо строке, закрашивая нужные участки последовательных пикселов внутри мно-гоугольника. При этом для каждой строки развертки пикселов находят пересе-чения этой строки с ребрами многоугольника Et и сортируют пересечения повозрастанию X. Затем серии пикселов между всеми парами пересечений закра-шивают.

На рис. 4.32 строка развертки при Y = 3 пересекает четыре ребра — Е5, £4,Еъ, Е2. Четыре абсциссы точек пересечения округляются до ближайшего целогои сортируются, в результате получается последовательность координат по X за-крашиваемых пикселов — 1, 2, 7, 9. Затем закра-шиваются следующие серии пикселов: первая отстолбца 1 до столбца 2 и вторая от столбца 7 достолбца 9. При группировании отсортированныхпересечений ребер в пары используется тест — на-ходится внутри или снаружи. В процессе движениявдоль строки развертки пикселов мы при каждомпересечении попадаем или внутрь многоугольника,или наружу от него, причем это состояние все вре-мя меняется. Пребывание внутри многоугольниканазывают четностью. При этом можно говорить обизменении четности при каждом пересечении. Еслимы попадаем внутрь многоугольника, то эта нечет-

1 -

О 1 2 3 4 5 6 7 8 Л :

Рис. 4.32. Заполнение областивнутри многоугольника

309

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

Обычно необходимо закрашивать нескольких многоугольников, причем не-которые из них (например, два) располагаются рядом и в силу этого имеют об-щее ребро. Это называется примыканием многоугольников, при этом в рассмот-ренном алгоритме возможно присвоение пикселам общего ребра сначала цветаодного многоугольника, а затем другого, следовательно, алгоритм должен ре-шить, какому многоугольнику отнести пикселы примыкающего ребра. Обще-принятое правило заключается в том, чтобы многоугольник владел своими ле-выми (для боковых) и своими нижними (для горизонтальных) ребрами. Тогда вслучае примыкающих многоугольников ребро будет принадлежать только пра-вому или верхнему многоугольнику. На рис 4.33 приведен пример заполнениярассмотренной выше области внутри многоугольника с учетом данного правила.Пикселы сверху и справа этого многоугольника не закрашиваются.

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

Практические алгоритмы основаны также на том, что соседние пикселы встроке скорее всего одинаковые и меняются только там, где строка пересекаетсяс ребром многоугольника. Это называется когерентностью растровых строк. Приэтом достаточно определить координаты X пересечений строк сканирования сребрами многоугольника. Пары отсортированных точек пересечения зададутинтервалы закрашивания пикселов. Кроме того, если какие-либо ребра пересе-кались г-й строкой, то они скорее всего будут пересекаться также и строкой /+1.Это называется когерентностью ребер. При переходе к новой строке легко вы-числить новую координату X точки пересечения ребра, используя координату Xстарой точки пересечения и тангенс угла наклона ребра:

Х 1 X Xi

тхтх — тангенс угла наклона ребра, тх = dYldX, так какdy= 1, то l/mx = dX.

Смена числа интервалов закрашивания пикселов про-исходит только тогда, когда в строке сканированияпоявляется вершина.

Рис. 4.33. Заполнение Учет когерентности строк и ребер позволяет построитьобласти с учетом при- различные высокоэффективные алгоритмы построчного

мыкания: сканирования для заполнения многоугольников. Для увели-. ценТр отображав- чения эффективности любого алгоритма следует найти ту

мого пиксела его часть, которая отнимает больше всего времени. В дан-

310

4.1. Методы и алгоритмы двухмерной компьютерной графики

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

Общая схема алгоритма, динамически формирующего список активных ре-бер и заполняющего многоугольник снизу вверх, имеет следующий вид:

1) подготовить служебные целочисленные массивы Y координат вершин иномеров вершин;

2) совместно отсортировать координаты Y по возрастанию и массив номероввершин для того, чтобы можно было определить исходный номер вершины;

3) определить пределы заполнения по оси Y — Y_min и F_max. Стартуя с те-кущим значением У_тек = F_min, исполнять пп. 4-9 до завершения закрашива-ния области;

4) определить число вершин, расположенных на строке У_тек — текущейстроке сканирования;

5) если вершины есть, то для каждой из вершин дополнить список активныхребер, используя информацию о соседних вершинах;

6) для каждого ребра в список активных ребер заносятся:- максимальное значение координаты Y ребра,- приращение координаты X при увеличении Y на 1,- начальное значение координаты X.

7) если обнаруживаются горизонтальные ребра, то они просто закрашива-ются и информация о них в список активных ребер не заносится;

8) если после этого обнаруживается, что список активных ребер пуст, то за-крашивание заканчивается;

9) по списку активных ребер определяется У_след — координата Y ближай-шей вершины (вплоть до У_след можно не заботиться о модификации спискаактивных ребер, а только менять координаты X пересечений строки сканирова-ния с активными ребрами).

В цикле от У_тек до 7_след для каждой координаты Y:• выбрать из списка активных ребер и отсортировать координаты X пересе-

чений активных ребер со строкой сканирования;• определить интервалы и выполнить закрашивание пикселов;• перевычислить координаты пересечений для следующей строки сканиро-

вания;• проверить, не достигли ли максимальной координаты Y. Если достигли, то

заполнение области закончено, иначе выполнить п. 4;

311

4.1. Методы и алгоритмы двухмерной компьютерной графики

Рис. 4.34. Закрашивание 4-связной области:

а — порядок перебора соседних пикселов; б — порядок закраски; • — на-чальный пиксел; х— центр отображаемого пиксела

села. Более экономичным является построчный алгоритм заливки, который ис-пользует пространственную когерентность:

• пикселы в строке меняются только на границах;• при перемещении к следующей строке размер закрашиваемой строки ско-

рее всего или не изменяется, или меняется на один пиксел.Таким образом, на каждый закрашиваемый фрагмент строки в стеке хранят-

ся координаты только одного начального пиксела, что приводит к существенно-му уменьшению размера стека.

Последовательность работы алгоритма для гранично определенной областиследующая:

1) координата затравки помещается в стек, затем до исчерпания стека вы-полняются пп. 2-4;

2) координата очередной затравки извлекается из стека и выполняется мак-симально возможное закрашивание вправо и влево по строке с затравкой, т. е.пока не попадется граничный пиксел. Пусть это Хлев и Хправ соответственно;

3) анализируется строка ниже закрашиваемой в пределах от Хлев до Хправ и вней находятся крайние правые пикселы всех незакрашенных фрагментов. Ихкоординаты заносятся в стек;

4) то же самое проделывается для строки выше закрашиваемой.Сглаживание ступенчатости. Появление ступенчатости, или лестничного

эффекта (например, при растеризации линий с наклоном, не равным 90° и 0 нарис. 4.28), связано с дискретной природой пикселов. На рис. 4.35 показан при-мер растеризации черного прямоугольника при условии, что каждый пикселимеет только два значения яркости — черный и белый. Подобные примеры

Рис. 4.35. Ступенчатость прямоугольника

313

4. Методы, алгоритмы и форматы файлов компьютерной графики

.—', -

'"

.*

0

0

3

12

0

0

0

7

7

0

0

0

10

4

0

0

3

13

2

0

0

7

10

0

0

0

8

7

0

0

0

12

3

0

0

0

8

0

0

0

а . б

Рис. 4.40. Сглаживание ступенчатости с использованием части пло-щади пикселов, покрываемой объектом:

а — исходная линия; б — градации яркости растеризованной линии

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

В простейших алгоритмах сглаживания ступенчатости яркость пикселоввычисляется на основе покрытия объектом пикселов, т. е. вычисляется частьплощади пиксела, которая покрывается объектом. В этом случае линия, котораяв идеале имеет нулевую толщину, представляется как линия шириной в одинпиксел. Предположим, что каждый пиксел имеет 16 градаций яркости (0 — чер-ный цвет, 15 — белый цвет). На рис. 4.40 показано использование части площа-ди пиксела, покрываемой линией толщиной один пиксел.

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

В более сложных алгоритмах сглаживания ступенчатости используется фильтра-ция полученных по простым алгоритмам данных, т. е. значение яркости каждогопиксела вычисляется как средневзвешенное значение соответствующего набора со-седних пикселов (обычно из восьми ближайших соседей). На каждый ненулевойпиксел поочередно накладывается квадратная маска свертки некоторого фильтра,которую называют оконной функцией. Затем вес каждой клетки умножается на со-ответствующее значение пиксела, девять произведений складываются и образуютзначение яркости обрабатываемого пиксела. На рис. 4.41 приведены примеры масок,используемых в практических алгоритмах. Во всех масках вес центрального пиксе-ла превышает вес соседей, а веса линейно возрастают по мере движения от краевмаски к ее центру. Иногда используют большие маски размером 5 х 5 и даже 7x7.

1/16

1/16

1/16

1/16

1/2

1/16

1/16

1/16

1/16

0

1/8

0

1/8

1/2

1/8

0

1/8

0

1/16

1/8

1/16

1/8

1/4

1/8

1/16

1/8

1/16

Рис. 4.41. Примеры масок свертки для сглаживания ступенчатости

316

4.1. Методы и алгоритмы двухмерной компьютерной графики

чески, а также более эффективные проверки тривиальных отклонений, которыесправедливы для любых областей отсечения. Рассмотрим основы алгоритма Ки-руса—Бека. Напомним, что алгоритм Кохена—Сазерленда для линий, которые немогут быть тривиально приняты или отклонены, вычисляет точки пересеченияотрезка линии с ребром отсечения, подставляя известное значение координат хили у для вертикального или горизонтального ребра отсечения соответственно.Параметрический алгоритм отсечения отрезка определяет значение параметра t впараметрическом представлении отрезка линии для точки, в которой бесконечнаялиния этого отрезка пересекает бесконечную линию, на которой находится реброотсечения. Поскольку все ребра отсечения в общем случае пересекаются такойлинией, надо рассчитать четыре значения t. При этом для определения тех из че-тырех значений /, которые соответствуют фактическим пересечениям, использу-ется ряд простых сравнений. Только после этого определяются значения (х, у) дляодного или двух фактических пересечений. В целом этот подход более экономич-ный, чем алгоритм вычисления пересечения Кохена—Сазерленда, поскольку онне содержит цикла для отсечений несколькими ребрами прямоугольника отсече-ния. Кроме того, вычисления относительно одного параметра более простые, чемрешение уравнений относительно координат (х, у). Лианг и Барски улучшили ал-горитм Кируса—Бека, исследуя каждое значение t для того, чтобы отклонить не-который отрезок линии, прежде чем все четыре значения t будут вычислены.

Алгоритм Кируса—Бека основан на параметрической формулировке пере-сечения между двумя линиями. На рис. 4.50 изображено единственное ребро Е,прямоугольника отсечения и нормаль Nt этого ребра, направленную вне областиотсечения (т. е. направленную наружу относительно прямоугольника отсече-ния), а также отрезок линии PQP\, который должен быть отсечен этим ребром.Ребро и отрезок линии необходимо представить бесконечной прямой линией,чтобы найти точку пересечения. Параметрически такая линия описывается сле-дующим уравнением:

ЩР(1)-РЕо)<О

Ребропрямоугольника

отсечения

Рис. 4.50. Параметрические оценки для трех точек — внутри,вне и на границе ребра отсечения

333

4. Методы, алгоритмы и форматы файлов компьютерной графики

P0 + (Pl-P0)t,

где t = О в точке Ро и t - 1 в точке Р\.Выберем произвольную точку РЕ на ребре Et и рассмотрим три вектора

P(t) - РЕ от РЕ до трех определяемых точек P(t,) на отрезке линии от Ро до Pi

точка пересечения, которая будет определена; точки линии во внутренней полу-плоскости ребра и точки линии во внешней полуплоскости ребра. Анализируязначение скалярного произведения, можно различить, в какой области находитсяточка. Это значение отрицательно для точки во внутренней полуплоскости, рав-но нулю для точки на линии, содержащей ребро, и положительно для точки, ко-торая находится во внешней полуплоскости. Определение внутренних и внеш-них полуплоскостей ребра соответствует просмотру областей отсечения реберпротив часовой стрелки. Таким образом можно найти значение t для точки пере-сечения вектора PQP\ С ребром:

Ni(P(t)-PEi) = 0.

Заменим P(t):

затем сгруппируем члены уравнения

Введем вектор D = (Р1 - Ро) и определим V.

ЩР0-РЕ.]

-NtD(4.2)

Знаменатель выражения (4.2) должен быть отличным от нуля, поэтому алго-ритм проверяет:

• Nt ФО (Т. е. нормаль не должна быть равна нулю; это могло быть только

ошибкой);• D Ф О (т. е. Рх Ф Ро);

• NtD4t0 (т. е. ребро Et и отрезок Р$Р\ не параллельны).

Уравнение для вычисления t можно использовать для нахождения пересе-чения между отрезком f^Pi и каждым ребром прямоугольника отсечения. Дляэтого определяют нормаль и произвольную точку РЕ , например конечную точ-ку ребра для каждого ребра отсечения. Далее используют эти значения для всехотрезков линий. Определив четыре значения t для некоторого отрезка линии, наследующем шаге находим, какое (или любое) из значений соответствует внут-ренним пересечениям отрезка линии с ребрами прямоугольника отсечения. Сна-чала любое значение t вне интервала [0, 1] может быть отвергнуто, так как оно

334

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

4.2. Методы и алгоритмы трехмерной графики и геометрии

Алгоритмы создания трехмерных моделей рассмотрены в гл. 3. В литерату-ре по КГ основное внимание уделяется задачам реалистического отображениятрехмерных моделей, поэтому рассмотрим алгоритмические основы трехмернойграфики в такой последовательности:

• алгоритмы визуализации трехмерных моделей;• алгоритмы закрашивания видимых поверхностей;• детальное отображение поверхностей;• алгоритмы анимации трехмерных моделей.

4.2.1. Алгоритмы визуализации трехмерных моделей

После создания трехмерных геометрических моделей необходимо получитьреалистическое отображение этих моделей, т. е. визуализировать их для провер-ки правильности полученных моделей. При этом необходимо определить, какразместить эти модели на сцене и выбрать место обзора с которого будет про-сматриваться эта сцена, т. е. должна быть выбрана определенная точка наблю-дения. Также надо выбрать модель освещения — типы и количество источниковсвета. При этом необходимо помнить, что основным назначением КГ являетсясоздание двухмерного изображения трехмерных объектов (оно должно бытьдвухмерным, так как выводится графически на плоский экран), но, принимаярешения насчет объектов, которые будут нарисованы на экране, необходимомыслить в трехмерных координатах. Будем предполагать, что все необходимыепространственные преобразования для визуализации сцены (поворот, парал-лельный перенос, масштабирование, зеркальное отражение, ортогональное илиперспективное проецирование) выполнены. Поскольку визуализация сцены про-изводится в прямоугольное окно, объекты (или части объектов), лежащие запределами этого окна, должны отсекаться. В трехмерной КГ отсечение выпол-няется с помощью отбрасывания объектов, находящихся по одну сторону плос-кости отсечения. Алгоритмы трехмерного отсечения (Сазерленда—Ходжмена,Вейлера—Айзертона и др.) во многом схожи с рассмотренными выше алгорит-мами двухмерного отсечения.

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

346

4.2. Методы и алгоритмы трехмерной графики и геометрии

Рис. 4.59. Каркасная модель без удаления невидимых линий (а)и с удалением невидимых линий (б)

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

На рис. 4.59, а приведена каркасная модель без удаления невидимых линий.Этот рисунок можно интерпретировать по-разному. Для этого достаточно пере-фокусировать глаза. Удаление тех линий или поверхностей, которые невидимы ссоответствующей точки зрения, позволяет избавиться от неоднозначности. Ре-зультаты удаления невидимых линий показаны на рис. 4.59, б.

Все алгоритмы удаления невидимых линий (поверхностей) включают в себясортировку. Порядок, в котором производится сортировка координат объектов,не влияет на эффективность этих алгоритмов. Главная сортировка ведется погеометрическому расстоянию от тела, поверхности, ребра или точки до точкинаблюдения. Основная идея, положенная в основу сортировки по расстоянию,заключается в том, что чем дальше расположен объект от точки наблюдения,тем больше вероятность, что он будет полностью или частично заслонен однимиз объектов, более близких к точке наблюдения. После определения расстоянийили приоритетов по глубине остается провести сортировку по горизонтали и повертикали, чтобы выяснить, будет ли рассматриваемый объект действительнозаслонен объектом, расположенным ближе к точке наблюдения. Эффективностьлюбого алгоритма удаления невидимых линий или поверхностей в большой ме-ре зависит от эффективности алгоритма сортировки.

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

347

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

Для любого алгоритма, работающего в пространстве моделей и сравниваю-щего каждый объект сцены со всеми остальными объектами этой сцены, объемвычислений растет пропорционально квадрату числа объектов. Аналогично длялюбого алгоритма, работающего в пространстве изображения и сравнивающегокаждый объект сцены с позициями всех пикселов в системе координат экрана,объем вычислений растет как произведение числа объектов (тел, плоскостей илиребер) в сцене на число пикселов.

Рассмотрим алгоритмы, иллюстрирующие основополагающие идеи теорииалгоритмов удаления невидимых линий и поверхностей.

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

f(x,y,z) = 0.

Этот алгоритм обычно работает в пространстве изображения. Главная идеяданного метода заключается в сведении трехмерной задачи к двухмерной путемпересечения исходной поверхности последовательностью параллельных секу-щих плоскостей, имеющих постоянные значения координаты z.

На рис. 4.60, а приведен пример, где указанные параллельные плоскости оп-ределяются постоянными значениями z- Функция f(x, у, z) = 0 сводится к после-довательности кривых, лежащих в каждой из этих параллельных плоскостей, т. е.у = f(x, zj, где Zi - const на каждой из заданных параллельных плоскостей. По-верхность теперь складывается из последовательности кривых, лежащих в каждойиз этих плоскостей (см. рис. 4.60, а). Здесь предполагается, что полученные кривыеявляются однозначными функциями независимых переменных. Если спроецироватьполученные кривые на плоскость z = 0, как показано на рис. 4.60, б, то становится

const

О

Рис. 4.60. Кривые отображаемой поверхности в секущих плоскостях

с постоянной координатой г,:

а — в пространстве; б — в проекции на плоскость ух

348

4.2. Методы и алгоритмы трехмерной графики и геометрии

ясна идея алгоритма удаления невидимых участков отображаемой поверхности.Алгоритм сначала упорядочивает плоскости z = const по возрастанию расстоя-ния до них от точки наблюдения. Затем для каждой плоскости, начиная с бли-жайшей к точке наблюдения, строится кривая, лежащая на ней, т. е. для каждогозначения координаты х в пространстве изображения определяется соответст-вующее значение у.

Процесс удаления невидимой линии заключается в следующем. Если на теку-щей плоскости при некотором заданном значении х соответствующее значение у накривой больше значения у для всех предыдущих кривых при этом значении х, тотекущая кривая видима в этой точке; иначе она невидима.

Невидимые участки на рис. 4.60, б показаны пунктиром. Для хранения мак-симальных значений у при каждом значении х используется массив, длина кото-рого равна числу различимых точек (разрешению) по оси х в пространстве изо-бражения. Значения, хранящиеся в этом массиве, представляют собой текущиезначения «горизонта». Поэтому по мере рисования каждой очередной кривойэтот «горизонт» как бы «всплывает». Фактически данный алгоритм удаленияневидимых линий работает каждый раз с одной линией.

Рассматриваемый алгоритм работает очень хорошо до тех пор, пока какая-нибудь очередная кривая не окажется ниже самой первой из кривых, как показа-но на рис. 4.61, а. Эти кривые видимы и представляют собой нижнюю сторонуисходной поверхности, однако алгоритм будет считать их невидимыми. Нижняясторона поверхности становится видимой, если модифицировать этот алгоритм,включив в него «нижний горизонт», который опускается вниз по ходу работыалгоритма. Это реализуется при помощи другого массива, длина которого равначислу различимых точек по оси х в пространстве изображения. Этот массив со-держит наименьшие значения у для каждого значения х. Процесс удаления не-видимой линии имеет такой вид. Если на текущей плоскости при некотором за-данном значении х соответствующее значение у на кривой больше максимумаили меньше минимума по у для всех предыдущих кривых и при этом значении х,

а б

Рис. 4.61. Обработка нижней стороны поверхности:

- исходная поверхность; б — нижняя сторона исходной поверхности

349

4. Методы, алгоритмы и форматы файлов компьютерной графики

то текущая кривая видима. В противном случае она невидима. Полученный ре-зультат показан на рис. 4.61, б.

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

Алгоритм Робертса. Алгоритм Робертса — наиболее известный алгоритм,работающий в пространстве объекта. Алгоритм Робертса прежде всего удаляетиз каждого тела те ребра или грани, которые экранируются самим телом (нели-цевые грани).

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

В матричной форме этот результат имеет вид

[xyzl][P]T=0,

где [Р] т =[А В С D] — плоскость. Поэтому любое выпуклое твердое тело мож-но выразить матрицей тела V, состоящей из коэффициентов уравнений плоско-стей, т. е.

V =

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

ром 5 = [х у z 1]. Если точка S лежит на плоскости Р, то скалярное произведение

[S] • [Р] = 0. Если же эта точка не лежит на плоскости, то знак этого скалярногопроизведения показывает, по какую сторону от плоскости расположена точка.В алгоритме Робертса предполагается, что точки, лежащие внутри тела, даютположительное скалярное произведение.

350

Ав,с,D,

А2

В2

С2

D2

- К••• вп

- сп

... Dn

4.2. Методы и алгоритмы трехмерной графики и геометрии

Тот факт, что плоскости имеют бесконечную протяженность и что скаляр-ное произведение точки на матрицу тела отрицательно, если точка лежит внеэтого тела, позволяет предложить способ определения граней, которые экрани-руются самим этим телом с помощью матрицы тела. Отрицательное скалярноепроизведение дает только такая плоскость (столбец) в матрице тела, относи-тельно которой точка лежит снаружи. Если точка наблюдения находится в бес-конечности на положительной полуоси z и взгляд направлен в сторону отрица-тельной полуоси z, то в однородных координатах вектор такого направления ра-вен Е = [0 0 -1 0], который служит, кроме того, образом точки, лежащей в

бесконечности на отрицательной полуоси z. Фактически Е представляет собойлюбую точку, лежащую на плоскости z = -°°, т. е. любую точку типа(х, у, - <х>). Поэтому если скалярное произведение Е на столбец, соответствую-щий какой-нибудь плоскости в матрице тела, отрицательно, то Е лежит по отри-цательную сторону этой плоскости. Следовательно, эти плоскости невидимы излюбой точки наблюдения, лежащей в плоскости z = °°, а пробная точка наz = —°° экранируется самим телом. Такие плоскости называются нелицевыми, асоответствующие им грани — задними. Следовательно, условие S • Р < 0 явля-ется условием того, что плоскости — нелицевые, а их грани — задние.

Алгоритм Робертса — простейший алгоритм удаления невидимых гранейдля тел, представляющих собой одиночные выпуклые многогранники. Он такжеиспользуется для удаления нелицевых, или задних, граней из сцены перед при-менением более сложных алгоритмов удаления невидимых линий. Его часто на-зывают отбрасыванием задних плоскостей. Для выпуклых многогранников чис-ло граней при этом сокращается примерно вдвое. Этот алгоритм эквивалентенвычислению нормали к поверхности для каждого отдельного многоугольника.Отрицательность нормали к поверхности показывает, что нормаль направлена всторону от наблюдателя и, следовательно, данный многоугольник не виден. По-сле удаления нелицевых граней, экранированных самими телами, все видимыеребра каждого тела сравниваются с ребрами оставшихся тел для определениятого, какая его часть или части, если таковые есть, экранируются этими телами.Поэтому вычислительная трудоемкость алгоритма Робертса пропорциональнаквадрату числа объектов. Известны реализации этого алгоритма, использующиепредварительную приоритетную сортировку вдоль оси z и простые габаритные,или мини-максные, тесты, демонстрирующие почти линейную зависимость отчисла объектов.

Алгоритм, использующий г-буфер. Это один из простейших алгоритмовудаления невидимых поверхностей. Работает этот алгоритм в пространстве изо-бражения. Идея z-буфера является простым обобщением идеи о буфере кадра.Буфер кадра служит для запоминания интенсивности каждого пиксела в про-странстве изображения, z-буфер — отдельный буфер глубины, используемыйдля запоминания координаты z или глубины каждого видимого пиксела в про-странстве изображения. В процессе работы глубина или значение z каждого но-

351

4. Методы, алгоритмы и форматы файлов компьютерной графики

вого пиксела, который нужно занести в буфер кадра, сравнивается с глубинойтого пиксела, который уже занесен в z-буфер. Если это сравнение показывает,что новый пиксел расположен впереди пиксела, находящегося в буфере кадра,то новый пиксел заносится в этот буфер и, кроме того, производится корректи-ровка z-буфера новым значением г. Если же сравнение дает противоположныйрезультат, то никаких действий не производится. По сути, алгоритм являетсяпоиском по х и у наибольшего значения функции z(x, у).

Главным преимуществом алгоритма является его простота. Кроме того, этоталгоритм решает задачу удаления невидимых поверхностей и делает тривиаль-ной визуализацию пересечений сложных поверхностей. Сцены могут быть лю-бой сложности. Поскольку размеры пространства изображения фиксированы,вычислительная трудоемкость алгоритма будет линейной. Так как элементысцены или картинки можно заносить в буфер кадра или в z-буфер в произволь-ном порядке, их не нужно предварительно сортировать по приоритету глубины,следовательно, экономится вычислительное время, затрачиваемое на сортировкупо глубине.

Основной недостаток алгоритма — большой объем требуемой памяти. Од-нако снижение цен на память делает экономически оправданным создание спе-циализированных запоминающих устройств для z-буфера и связанной с ним ап-паратуры.

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

Формальное описание алгоритма z-буфера имеет следующий вид:1) заполнить буфер кадра фоновым значением интенсивности или цвета;2) заполнить z-буфер минимальным значением z;3) преобразовать каждый многоугольник в растровую форму в произволь-

ном порядке;

4) для каждого значения (х, у) пиксела в многоугольнике вычислить его

глубину z(x, у). Сравнить глубину z(x, у) со значением z, хранящимся в z-бу-

фере в этой же позиции;

5) если z(x, у) > z буфера, то записать атрибуты этого многоугольника(интенсивность, цвет и т. п.) в буфер кадра и заменить z-буфер в этой позиции наz(x, у). В противном случае никаких действий не производить.

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

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

352

4.2. Методы и алгоритмы трехмерной графики и геометрии

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

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

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

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

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

Растровая развертка отдельных многоугольников рассматривалась выше.Алгоритмы удаления невидимых линий и поверхностей с построчным сканиро-ванием являются обобщением изложенных методов. Эти алгоритмы сводяттрехмерную задачу удаления невидимых линий и поверхностей к двухмерной.Сканирующая плоскость определяется точкой наблюдения, расположенной вбесконечности на положительной полуоси z, и сканирующей прямой, как пока-зано на рис. 4.62.

353

4. Методы, алгоритмы и форматы файлов компьютерной графики

Плоскостьсканирования

\Плоскостьсканирования

Точки пересеченияобъектов с плоскостьюсканирования

Сканирующаяпрямая

О

Рис. 4.62. Сканирующая плоскость у - const (а) и пересечение сканирующейплоскости с многоугольниками (б)

Пересечение сканирующей плоскости и трехмерной сцены определяет окноразмером в одну сканирующую строку. Задача удаления невидимых поверхно-стей решается в пределах этого окна, образованного сканирующей плоскостью.На рис. 4.62, б представлено пересечение сканирующей плоскости с много-угольниками (прямоугольником и треугольником). Этот рисунок показывает,что задача удаления невидимых поверхностей сводится к задаче о том, какойотрезок видим для каждой точки сканирующей строки.

Одним из простейших алгоритмов построчного сканирования, который ре-шает задачу удаления невидимых поверхностей, является разновидность алго-ритма z-буфера, рассмотренного выше. Это алгоритм построчного сканированияс z-буфером. Используемое в нем окно визуализации имеет высоту в одну ска-нирующую строку и ширину во весь экран. Для каждой сканирующей строкибуфер кадра инициализируется с фоновым значением интенсивности, а z-буфер —с минимальным значением z. Затем определяется пересечение сканирующейстроки с двухмерной проекцией каждого многоугольника сцены, если они суще-ствуют. Эти пересечения образуют пары точек пересечения. При рассмотрениикаждого пиксела на сканирующей строке в интервале между концами пар егоглубина сравнивается с глубиной, содержащейся в соответствующем элементеz-буфера. Если глубина этого пиксела больше глубины из z-буфера, то рассмат-риваемый отрезок будет текущим видимым отрезком. И следовательно, атрибу-ты многоугольника, соответствующего данному отрезку, заносятся в буфер кад-ра в позиции данного пиксела; соответственно корректируется и z-буфер в этойпозиции. После обработки всех многоугольников сцены буфер кадра размером водну сканирующую строку содержит решение задачи удаления невидимых по-верхностей для данной сканирующей строки. Он выводится на экран дисплея впорядке, определяемом растровым сканированием, т. е. слева направо. В этомалгоритме можно использовать методы устранения ступенчатости, основываю-щиеся как на пре-, так и на постфильтрации.

354

4.2. Методы и алгоритмы трехмерной графики и геометрии

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

Алгоритм трассировки лучей. Трассировка лучей — рейтресинг (ray trac-ing), также известная как выбрасывание лучей — рейкастинг (ray casting), опре-деляет видимость поверхностей, прослеживая воображаемые лучи света от глазанаблюдателя до объектов в сцене. Главная идея, лежащая в основе этого алго-ритма, заключается в том, что наблюдатель видит любой объект посредствомиспускаемого неким источником света, который падает на этот объект и затемкаким-то путем доходит до наблюдателя. Свет может достичь наблюдателя, от-разившись от поверхности, преломившись или пройдя через нее. Если просле-дить за лучами света, испускаемыми источником света, то можно убедиться, чтовесьма немногие из них дойдут до наблюдателя, следовательно, этот процессвычислительно неэффективен. Однако можно отслеживать (трассировать) лучи вобратном направлении, т. е. от наблюдателя к объекту. Выбираются центр прое-цирования (глаз наблюдателя) и окно вида на произвольной плоскости. Окновида можно представить в виде правильной сетки, элементы которой соответст-вуют пикселам в соответствующей разрешающей способности. Тогда для каж-дого пиксела в окне луч света запускается из центра проецирования через центрпиксела в сцену, как показано на рис. 4.63.

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

Объекты

Точканаблюдения

Окно вида Точки пересечениялуча с объектами

Лучтрассировки

Рис. 4.63. Трассировка луча из точки наблюдения

355

4. Методы, алгоритмы и форматы файлов компьютерной графики

дого луча отслеживается, чтобы определить, какие именно объекты сцены, еслитаковые существуют, пересекаются с данным лучом. Необходимо проверить пе-ресечение каждого объекта сцены с каждым лучом. Если луч пересекает объект,то определяются все возможные точки пересечения луча и объекта. Можно по-лучить большое количество пересечений, если рассматривать много объектов.Эти пересечения упорядочиваются по глубине. Пересечение с максимальнымзначением z представляет видимую поверхность для данного пиксела. Атрибу-ты этого объекта используются для определения характеристик пиксела.

Наиболее важным элементом алгоритма определения видимых поверхно-стей путем трассировки лучей является процедура определения пересечений.В состав сцены можно включать любой объект, для которого можно создатьпроцедуру построения пересечений. Объекты сцены могут состоять из набораплоских многоугольников, многогранников или тел, ограниченных или опреде-ляемых квадратичными или В-сплайновыми параметрическими поверхностями.Вычислительная стоимость определения пересечений произвольной пространст-венной прямой (лучом) с одним выделенным объектом может оказаться высо-кой. Чтобы избавиться от ненужного поиска пересечений, выполняется проверкапересечения луча с объемной оболочкой рассматриваемого объекта. И если лучне пересекает оболочки, то не нужно больше искать пересечений этого объекта случом. В качестве оболочки можно использовать прямоугольный параллелепи-пед или сферу, показанные на рис. 4.64.

Факт пересечения трехмерного луча со сферой определяется просто. В част-ности, если расстояние от центра сферической оболочки до луча превосходитрадиус этой сферы, то луч не пересекает оболочки. Следовательно, он не можетпересечься и с объектом. Поэтому тест со сферической оболочкой сводится копределению расстояния от точки до трехмерной прямой, т. е. луча. Будем ис-пользовать параметрическое представление прямой, проходящей через точкиР\(*i, У\, Z\) и Р2(х2, у2, z2) в виде функции P(t) = /} + (Р2 —P\)t с компонентами

х = Xj + (х2 — X) )t = Xj + at;

У = У\+(У2-У\)* = У\

Описывающаясфера

Описывающийпараллелепипед

Рис. 4.64. Сферическая и прямоугольная оболочки

356

4.2. Методы и алгоритмы трехмерной графики и геометрии

Тогда параметр t, определяющий ближайшую точку P(t), равен

t = -a2+b2+c2

Если расстояние d от прямой до этой точки, определяемое из соотношения

d2 =(x-x0)2 + (y-y0)

2 + (z-z0)2,

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

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

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

4.2.2. Алгоритмы закрашивания видимых поверхностей

Рассмотрим сначала модели освещения поверхностей. Световая энергия, па-дающая на поверхность, может быть поглощена, отражена или пропущена. Час-тично она поглощается и превращается в тепловую энергию, а частично отража-ется или пропускается. Объект можно увидеть, только если он отражает илипропускает свет; если же объект поглощает весь падающий свет, то он будет не-видим, и в этом случае его называют абсолютно черным телом. Количество по-глощенной, отраженной или пропущенной энергии зависит от длины волны све-та. При освещении белым светом, в котором интенсивность всех длин волн сни-жена примерно одинаково, объект выглядит серым. Если поглощается почтивесь свет, то объект кажется черным, а если только небольшая его часть — бе-лым. Если поглощаются лишь определенные длины волн, то у света, исходящегоот объекта, изменяется распределение энергии и объект выглядит цветным. Цветобъекта определяется поглощаемыми длинами волн. Свойства отраженного све-

357

4. Методы, алгоритмы и форматы файлов компьютерной графики

та зависят от строения, направления и формы источника света, от ориентации исвойств поверхности. Это учитывается в различных моделях освещения.

Самая простая модель освещения отображает рассеянный свет: каждый объ-ект визуализируется, испуская свет равномерной интенсивности со своейповерхности, т. е. без внешнего источника освещения, — это довольно нереалис-тичный мир самосветящихся объектов. Каждый объект появляется как некиймонохроматический силуэт, если только его индивидуальным частям (типа мно-гоугольников поверхности) не задать различных оттенков при создании этогообъекта. Модель освещения может быть выражена уравнением освещения впеременных, связанных с точкой на закрашиваемом объекте:

/ = *»•,

где / — итоговая интенсивность света; kt — коэффициент встроенной интенсив-ности объекта.

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

Предположим, что есть рассеянный, ненаправленный источник света —продукт множественных отражений света от многих поверхностей, существую-щих в среде. Такой свет называется рассеянным светом. Если принять, что рас-сеянный свет освещает одинаково все поверхности во всех направлениях, тоуравнение для интенсивности освещения принимает следующий вид:

где 1а — интенсивность рассеянного света, постоянная для всех объектов; ка —коэффициент рассеяния (количество рассеянного света, отраженного от поверх-ности объекта).

Коэффициент рассеяния — свойство поверхности материала, он не соответст-вует непосредственно никакому физическому свойству реальных материалов ислужит только для целей визуализации объектов, которые иначе нельзя показать.

Рассмотрим освещение объекта точечным источником света, лучи которогоидут однородно во всех направлениях из единственной точки. Яркость объектапри этом изменяется от одной части объекта до другой в зависимости от направ-ления и расстояния от источника света.

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

358

Рис. 4.65. Диффузноеотражение света

4.2. Методы и алгоритмы трехмерной графики и геометрии

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

/ = / ^ cos(6); 0 < е < к / 2 ,

где / — интенсивность отраженного света; /; — ин-тенсивность точечного источника в направлении L;kd — коэффициент диффузного отражения; 9 —угол между направлением света L и нормалью кповерхности п (рис. 4.65), 0 < 9 < л / 2 . Если 8>л:/2, то источник света распо-ложен за объектом. Коэффициент диффузного отражения kd зависит от материа-ла и длины волны света, но в простых моделях освещения обычно считается по-стоянным.

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

I = Iaka+I,kdcos(Q); 0<6<7t/2.

Пусть даны два объекта, одинаково ориентированные относительно источ-ника света, но расположенные на разном расстоянии от него. Если найти их ин-тенсивность по данной формуле, то она окажется одинаковой. Это значит, чтокогда предметы перекрываются, их невозможно различить, хотя интенсивностьсвета обратно пропорциональна квадрату расстояния от источника света, и объ-ект, лежащий дальше от него, должен быть темнее. Если предположить, что ис-точник света находится в бесконечности, то диффузный член модели освещенияобратится в нуль. В случае перспективного преобразования сцены в качествекоэффициента пропорциональности для диффузного члена можно взять рас-стояние d от центра проекции до объекта. Но если центр проекции лежит близкок объекту, то Vd2 изменяется очень быстро, т. е. у объектов, лежащих примернона одинаковом расстоянии от источника света, разница интенсивностей чрез-мерно велика. Большей реалистичности можно добиться при линейном затуха-нии. В этом случае модель освещения выглядит следующим образом:

J — J к1 ~1аКа d + K

-; 0<9<7С/2,

где К — произвольная константа.

359

Рис. 4.66. Зеркальное отражение

4. Методы, алгоритмы и форматы файлов компьютерной графики

Если предположить, что точка наблю-дения находится в бесконечности, то d оп-ределяется положением объекта, ближайше-го к точке наблюдения. Это означает, чтоближайший объект освещается с полной ин-тенсивностью источника света, а более да-лекие — с уменьшенной. Для цветных по-верхностей данная модель освещения при-меняется к каждому из трех основных цветов.

Интенсивность зеркально отраженногосвета зависит от угла падения, длины волны падающего света и свойств вещест-ва. Свойства зеркального отражения описываются уравнением Френеля из гео-метрической оптики.

Зеркальное отражение света является направленным. Угол отражения 0 отидеальной отражающей поверхности (зеркала) равен углу падения 9, в любомдругом положении наблюдатель не видит зеркально отраженный свет. Это озна-чает, что вектор наблюдения 5 (рис. 4.66) совпадает с вектором отражения R иугол а равен нулю. Если поверхность не идеальна, то количество света, дости-гающее наблюдателя, зависит от пространственного распределения зеркальногоотраженного света. У гладких поверхностей распределение узкое или сфокуси-рованное, у шероховатых — более широкое.

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

В простых моделях освещения обычно используют эмпирическую модельБуи-Туонга Фонга, так как реальные физические свойства зеркального отраже-ния очень сложны. Эта модель имеет следующий вид:

/, = /,00(9,1) cos" (а),

где Is — интенсивность зеркально отраженного света; со(9, X) — кривая отраже-ния, представляющая отношение зеркально отраженного света к падающему какфункцию угла падения 6 и длины волны X; п — степень, аппроксимирующаяпространственное распределение зеркально отраженного света.

На рис. 4.67 показана функция cos" (a) при 0 < а < л / 2 для различных п:большие значения п дают сфокусированные пространственные распределенияхарактеристик металлов и других блестящих поверхностей, а малые — болееширокие распределения для неметаллических поверхностей, например бумаги.

360

4.2. Методы и алгоритмы трехмерной графики и геометрии

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

металлов может составлять всего 4 %, в товремя как для металлических материалов —более 80 %. Функция (6(0, X) довольно

сложная, поэтому ее обычно заменяют константой к„, которая определяется экс-периментально. Таким образом, модель интенсивности освещения можно пред-ставить в следующем виде:

я/2

Рис. 4.67. Пространственное распре-деление зеркального отражения

' = /„*„+•d + K

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

Если имеется несколько источников света, то их эффекты суммируются.В этом случае модель интенсивности освещения имеет вид

7=1

где т — число источников света.Рассмотрим модели закрашивания для многоугольников поверхностей.

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

Закраска с постоянной интенсивностью. Самая простая модель закраши-вания для многоугольника — закраска с постоянной интенсивностью, известнаятакже как фасетное закрашивание, или равномерное затенение. Этот подход рас-считывает модель освещения один раз для любой точки каждого многоугольни-ка так, что рассчитанное значение интенсивности используется для закрашива-ния всего многоугольника. Данный подход справедлив при следующих допуще-ниях:

361

4. Методы, алгоритмы и форматы файлов компьютерной графики

• источник освещения находится в бесконечности, так что угол между нор-малью к поверхности N и направлением источника света L является постояннымво всех точках грани многоугольника;

• наблюдатель находится в бесконечности, так что угол между нормалью кповерхности N и направлением взгляда V является постоянным во всех точкахграни многоугольника;

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

делить единственное значение для каждого из значений L и V. Например, этизначения могут быть рассчитаны для центра многоугольника или для первойвершины многоугольника. Конечно, закраска с постоянной интенсивностью вэтом случае будет не совсем правильная.

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

Данный метод хорошо подходит для многогранников, но многие из поверх-ностей на практике криволинейны, поэтому он дает не совсем правильные ре-зультаты.

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

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

362

4. Методы, алгоритмы и форматы файлов компьютерной графики

закрашивании по методу Гуро. В каждом пикселе по строке сканирования ин-терполированная нормаль и новое значение интенсивности пиксела выполняет-ся, используя любую желаемую модель освещения. На рис. 4.70 изображены двекрайние нормали ребра многоугольника Л̂ о и iVi и нормали, интерполированныепо ним до и после нормализации.

4.2.3. Детальное отображение поверхностей

Описанные выше методы отображают гладкие, однородные поверхности.Рассмотрим методы, разработанные для детального моделирования поверхно-стей — текстурирование, взаимные отражения от поверхностей (рейтресинг ирадиосити).

Наложение текстуры. Для отображения фактуры поверхностей явное мо-делирование многоугольниками или другими геометрическими примитиваминеприменимо. Существует альтернативный подход, известный как отображе-ние шаблона или наложение текстуры; изображение называют картой тексту-ры, а ее индивидуальные элементы — элементами текстуры. Прямоугольнаякарта текстуры постоянно хранится в ее собственном (s, t) координатном про-странстве. Программируемая текстура может быть определена специальнойподпрограммой.

Как показано на рис. 4.71, наложение текстуры может быть получено за двашага. Сначала на поверхность отображается четыре угла пиксела. Для бикуби-ческого куска поверхности это отображение, естественно, определяет набор то-чек на координатном пространстве поверхности {и, v). Затем точки угла пикселав координатном пространстве этой поверхности отображаются в координатноепространство текстуры (s, t). Четыре (s, t) точки в карте текстуры определяютчетырехугольник, приближающий более сложную форму, которую пиксел мо-жет фактически отобразить из-за искривления поверхности. Значение для пик-села вычисляют, учитывая все элементы текстуры, расположенные в пределахчетырехугольника. При этом необходимо учитывать каждую долю элементатекстуры, лежащего в пределах четырехугольника.

Карта текстуры Поверхность объекта Четыре угла пикселана экране

Рис. 4.71. Отображение текстуры от пиксела до поверхности и до карты текстуры

364

Наблюдатель

Рис. 4.72. Глобальная модель осве-щения:

7-5 — видимые точки объектов сцены;Pi, Рг — лучи

4.2. Методы и алгоритмы трехмерной графики и геометрии

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

Сфера, треугольная призма и паралле-лепипед, изображенные на рис. 4.72, непро-зрачны, их поверхность зеркальна. Наблю-датель смотрит из точки О на точку / насфере. При этом он видит не только сферу, но и точку 2 на призме. Призма, за-гороженная от наблюдателя параллелепипедом, становится видимой вследствиеотражения света на сфере. Точка 5 на призме видима благодаря двум отражени-ям. Она отражается от обратной стороны параллелепипеда в точке 4 к точке 3 насфере, а затем — к наблюдателю. Кроме того, наблюдатель видит точку 5 в точ-ке /' после одного отражения от сферы, поэтому на сфере находятся два изо-бражения призмы. Изображение, расположенное вокруг точки 1, перевернуто,так как получается после одного отражения; а вокруг точки 3 не перевернуто, таккак получается после двух отражений. Интенсивность второго изображенияменьше. Наконец, в сфере отражается обратная сторона параллелепипеда, т. е.наблюдатель видит ее, хотя прямой свет источника на нее не падает. Эта сторонаосвещается рассеянным светом и светом, отраженным от других объектов сцены.

Отсюда следует, что обычная операция отбрасывания задних граней, при-меняемая при удалении невидимых поверхностей, здесь не годится, как и пред-варительная сортировка по глубине. Поэтому из всех алгоритмов удаления не-видимых граней, рассмотренных выше, остается только метод трассировки лу-чей. Таким образом, глобальная модель освещения является частью алгоритмоввыделения видимых поверхностей путем трассировки лучей.

Выше рассмотрен алгоритм построения видимых непрозрачных поверхно-стей методом трассировки лучей, в котором луч трассируется до первого пере-сечения с объектом. В глобальной модели освещения трассировка луча на этомне кончается. Здесь предполагается, что падающий луч отражается от поверхно-сти и пропускается сквозь эту поверхность по законам геометрической оптики.Это значит, что в точке пересечения луча с объектом образуются еще два луча,

365

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

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

Моделирование глобального освещения с радиосити. Радиосити (Radiosity),согласно определению в литературе по физике, является общей падающей энер-гией на единицу площади поверхности. В контексте визуализации «энергия» —это энергия света.

Процедура решения радиосити — сложный метод вычисления света, отра-женного между рассеивающими свет поверхностями. Его можно использовать,когда надо показать эффекты отражения цвета (когда одна цветная поверхностьсодержит оттенок цвета другой близлежащей поверхности) и дисперсии света(отражение косвенного света на другие поверхности в сцене). Отметим, чторейтресинг распознает только зеркальное отражение лучей света в сцене.

Процедура решения радиосити в отличие от рейтресинга — не собственнометод закрашивания, так как она просто генерирует решение освещения, к кото-рому, в свою очередь, может быть применено закрашивание. Фактически проце-дура решения радиосити и возможности рейтресинга нужно применять совмест-но, чтобы воспроизвести растровое изображение реалистичного закрашивания,используя возможности обоих методов. Процедура решения радиосити исполь-зуется как препроцессор для закрашивания, при этом вычисляется глобальное,видонезависимое (рассеянное) решение освещения. В методе трассировки лучейиспользуется решение радиосити для представления видозависимого растровогоизображения путем добавления зеркальных глянцевых отсветов и отражений.Только рейтресинг, который включает решение радиосити, создает естествен-ную сцену, освещенную как направленным, так и отраженным светом с едваразличимыми тенями, обычно присутствующими в реальном мире.

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

366

4.2. Методы и алгоритмы трехмерной графики и геометрии

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

4.2.4. Алгоритмы анимации трехмерных моделей

Методы КГ широко используются для анимации в различных сферах, вклю-чая индустрию развлечений (кино и мультфильмы), рекламу, научные и инженер-ные исследования, обучение и образование. Термин «компьютерная анимация»означает любую последовательность видимых изменений изображения. Помимоизменения положения объекта путем переноса или вращения компьютерная ани-мация может отображать изменение во времени размера объекта, его цвета, степе-ни прозрачности и текстуры поверхности. В рекламе часто используется преобра-зование одного объекта в другой. Компьютерную анимацию можно получать так-же, меняя положение, ориентацию или фокусное расстояние камеры. Кроме того,для получения компьютерной анимации можно менять эффекты освещения илидругие параметры, связанные с освещением и визуализацией.

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

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

367

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

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

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

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

Чтобы успешно спланировать и осуществить производство части анимации,требуется несколько шагов. Анимация является процессом проб и ошибок, кото-

Продукция

Последовательность 1

Дубль 1 Дубль 2

Последовательность 2

Дубль 1 Дубль 2 Дубль 3 Дубль 4

Кадр 1 Кадр 2

Рис. 4.73. Пример иерархии в традиционной анимации

Кадр п

368

4.2. Методы и алгоритмы трехмерной графики и геометрии

рый включает в себя обратную связь от одного шага к предыдущим шагам иобычно требует нескольких итераций путем повтора многих предыдущих шаговв различные моменты времени разработки анимации. Несмотря на это, производ-ство анимации обычно следует стандартному шаблону. Сначала определяетсяпредварительная история, включая сценарий. Пишется раскадровка, опреде-ляющая действие посредством набросков отдельных кадров. Кадры часто сопро-вождаются текстом, который обрисовывает происходящее действие. Это ис-пользуется для представления, обзора и рецензирования действия, а также дляпросмотра развития персонажа. Разрабатывается модельный лист, состоящий изнабора рисунков для каждого персонажа в различных положениях и исполь-зующийся для того, чтобы убедиться, что все появления персонажа согласованымежду собой, по мере того как этот персонаж рисуют во время анимационногопроцесса. Демонстрационный лист содержит информацию о каждом кадре:звуковое сопровождение, движение камеры и составляющие элементы. В на-правляющем листе собирается статистика по каждой сцене. Когда раскадровкаопределена создается детализированный сценарий, который более подробно оп-ределяет действие. Ключевые кадры определяются и делаются ведущими анима-торами для помощи в определении и развитии персонажа и качества изображе-ния. Аниматоры отвечают за производство остальных кадров между ключевымикадрами. Пробные съемки, короткие последовательности, снятые в полном цвете,используются для проверки качества изображения. Для того чтобы полностью про-верить движение, может быть снят карандашный тест, который является полнойотрисовкой движения (здесь используются низкокачественные изображения, на-пример наброски карандашом). Проблемы, обнаруженные в пробных съемках и ка-рандашных тестах, могут потребовать переработки ключевых кадров, детализиро-ванного сценария или даже раскадровки. Рисование — перенос карандашных ри-сунков на пленки. Ретуширование — процесс переноса цвета на пленки.

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

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

369

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

Два основных инструмента традиционной анимации — тестовые съемки икарандашные тесты — имеют аналоги в компьютерной анимации. Баланс междускоростью и качеством может быть изменен на каждом из трех этапов созданиякадра в компьютерной анимации: построение модели, управление движением ивизуализация.

Компьютерная анимация обычно использует следующий план:• создание раскадровки (storyboard) — разработка схемы действия. Она оп-

ределяет последовательность движения как набор базовых событий, которыедолжны произойти. В зависимости от типа анимации раскадровка может состо-ять из набросков (эскизов) вместе с кратким описанием движения или быть прос-то списком основных идей, которые будут реализованы в действии. Изначальнонабор эскизов движения прикреплялся на большую доску, которая представлялаобщий вид анимационного проекта, откуда и пошло название (от англ. story —история, сюжет, board — доска);

• для каждого участника действия дается определение объекта. Объекты мо-гут определяться как многогранники или тела с гладкими (сплайновыми) по-верхностями. Кроме того, часто дается описание движения, которое должен со-вершить каждый персонаж или объект сюжета;

• создание ключевых кадров (key frame) — подробное изображение сцены вопределенный момент анимационной последовательности. В каждом ключевомкадре все объекты (или символы) размещаются согласно времени этого кадра.Одни ключевые кадры выбираются в крайних положениях действия; другиеразмещаются так, чтобы интервал между ключевыми кадрами не был слишкомбольшим. Для сложных движений задается больше ключевых кадров, чем дляпростых, медленно меняющихся. За разработку ключевых кадров обычно отве-чают старшие аниматоры и часто каждый персонаж анимационного фильма ку-рирует отдельный аниматор.

Промежуточными называются кадры, расположенные между ключевыми.Общее число кадров, а следовательно, общее число промежуточных кадров, не-обходимых для создания анимации, определяется средой, в которой планируетсяотображать анимацию. Фильм требует 24 кадра в секунду, а графические терми-налы обновляются с частотой не менее 60 или более кадров в секунду. Обычно

370

4.2. Методы и алгоритмы трехмерной графики и геометрии

временные рамки движения задаются так, чтобы между каждой парой ключевыхкадров располагалось 3-5 промежуточных кадров. В зависимости от скоростидвижения некоторые ключевые кадры могут дублироваться. В качестве примераукажем, что минутный фильм без дублирования требует 1440 кадров. Если меж-ду каждой парой вводится пять промежуточных кадров, потребуется разработать288 ключевых кадров.

В зависимости от приложения может потребоваться решить еще несколькозадач. К ним относятся проверка и редактирование движения, а также созданиеи синхронизация звуковой дорожки. Такие задачи, необходимые для созданияполной анимации, также решаются на компьютере.

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

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

Дополнительные функции имитируют движение камеры — наезд, панора-мирование и наклон. Они также могут автоматически генерировать промежу-точные кадры.

Системы ключевых кадров. Несколько заданных ключевых кадров с по-мощью системы ключевых кадров позволяют сгенерировать набор промежуточ-ных кадров. Пути движения задаются априорно в виде кинематического описа-ния (как набор сплайновых кривых) или их можно рассчитывать, основываясь назаданных силах, действующих на анимируемые объекты.

Для сложных сцен кадры разбиваются на отдельные компоненты или объек-ты, называемые келями (eel, celluloid transparency — диапозитив кинофильма).Данный термин заимствован из мультипликационных технологий, где фон и ка-ждый персонаж на сцене размещают на различных диапозитивах. Диапозитивывыстраивают в порядке от фона до переднего плана, фотографируют и получаютполный кадр. Затем, используя заданные пути анимации, получают следующийкель для каждого персонажа, положения которых интерполировались по инфор-мации с ключевых кадров.

371

Рис. 4.74. Ключевые кадры к (а)

ик+1 (б):

1,2, Г-3' — вершины

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

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

Преобразование форм объектов называется трансформацией (morphing, со-кращенно от metamorphosis — метаморфоза). Для моделирования трансформа-ции в соседних ключевых кадрах изменяют формы многоугольников, а в проме-жуточных кадрах это выглядит как переход одной формы в другую.

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

Отрезок в ключевом кадре к преобразуется в два отрезка в ключевом кадрек + 1. Поскольку ключевой кадр к + 1 имеет лишнюю вершину, в ключевом кад-ре к вводится дополнительная вершина между вершинами 7 и 2, чтобы уравнятьчисло вершин (и сторон) в двух ключевых кадрах. Используя линейную интер-поляцию для генерации промежуточных кадров, дополнительную вершину включевом кадре к переводят в вершину 3' по прямолинейной траектории, изо-браженной на рис. 4.75.

На рис. 4.76 приведен пример треугольника, линейно расширяющегося дочетырехугольника.

Языки компьютерной анимации. При необходимости можно разработатьпроцедуры создания и управления анимационными последовательностями на

Г

Добавленнаяточка

Ключевойкадр к

Половинныйкадр

'2'Ключевойкадр к + 1

Рис. 4.75. Половинный кадр:

/, 2, Г-3'— вершины

372

4.2. Методы и алгоритмы трехмерной графики и геометрии

Добавленнаяточка

Половинный Ключевойк а д Р кадр/t+l

Рис. 4.76. Трансформация треугольника в четырехугольник

универсальном (С, C++, Lisp или Fortran) или специализированном языке про-граммирования. Эти языки обычно включают графический редактор, генераторыключевых и промежуточных кадров, стандартные графические процедуры. Гра-фический редактор позволяет аниматору разрабатывать и модифицировать фор-мы объектов, используя сплайновые поверхности, методы конструктивной твер-дотельной геометрии или другие схемы представления.

При спецификации анимации очень важно правильно описать сцену, т. е.разместить объекты и источники освещения, определить фотометрические па-раметры (интенсивности излучения источника и параметры освещенности по-верхности) и установить параметры камеры (положение, ориентацию и характе-ристики линз), а также разработать другую стандартную функцию — специфи-кацию действия, включающую схему траекторий движения объектов и камеры.Кроме того, надо реализовать обычные графические процедуры: преобразованиеизображения путем изменения точки обзора и перспективное преобразование,геометрические преобразования, определяющие движение объекта как функциюускорения или кинетических спецификаций траектории, определение видимыхповерхностей и операции по визуализации поверхностей.

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

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

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

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

373

4. Методы, алгоритмы и форматы файлов компьютерной графики

анимации. Язык бывает сценарным (script based) — инструкции записаны дляпоследующего выполнения, или графическим — диаграммы типа блок-схем не-сут в себе отношения и процедуры.

Первые анимационные системы для получения последовательностей движе-ний использовали языки программирования общего назначения. Однако при по-лучении анимации возникали большие накладные расходы в задании графиче-ских примитивов, структур данных объектов, преобразований и при визуализа-ции. Анимационный язык — любое текстовое описание получаемой анимации.Он может быть написан на специальном сценарном языке или алгоритмическомязыке общего назначения упрощенно. Типичными возможностями являютсявстроенные операции ввода-вывода графических объектов, данных для пред-ставления и поддержки иерархической композиции объектов, параметров вре-мени, функций интерполяции, функций для анимирования иерархий объектов,аффинных преобразований, параметров визуализации, параметров для заданияатрибутов камер и пирамиды видимости и возможности для управления произ-водством, просмотром и хранением одного или более кадров анимации. Про-грамма, написанная на анимационном языке, часто называется сценарием(script).

Преимущества использования анимационного языка двояки. Во-первых, за-дание анимации, записанной в виде программы на данном языке, является жест-ко запрограммировано записью анимации, которая может быть использованадля получения анимации в любой момент времени. Кроме того, использованиеязыка позволяет итерационно улучшить анимацию, поскольку сценарий можноизменять и заново строить анимацию. Во-вторых, наличие программных конст-рукций позволяет применять алгоритмический подход к управлению движени-ем. Анимационный язык, если он достаточно мощный, может интерполироватьзначения функций и вычислять сложные выражения, реализовывать правила по-ведения и т. п. Недостаток использования анимационного языка — он фактиче-ски является языком программирования, и, следовательно, пользователю (ани-матору) нужно быть программистом. Аниматор должен быть обучен не толькоискусству, но и программированию. Разработаны языки с упрощенными про-граммными конструкциями, но их возможности ограничены. По мере ознаком-ления пользователя с языком у него появляется желание поместить в анимаци-онный язык все больше алгоритмических возможностей, присущих языкам об-щего назначения. В настоящее время разработаны анимационные системы,которые фактически являются пользовательским интерфейсом поверх сценар-

ного языка. Пользователи могут применять систему через интерфейс, предос-тавленный системой, и писать свои собственные сценарии на внутреннем языке.Примером такой системы является язык MEL компании Alias/Wavefront. ЯзыкMEL предоставляет переменные управляющие операторы, процедуры, выраже-ния, доступ к атрибутам объектов и возможность настраивать пользовательскийинтерфейс. Стандартный пользовательский интерфейс помогает пользователям,не умеющим программировать или не знающим используемый язык, предостав-

374

4.2. Методы и алгоритмы трехмерной графики и геометрии

ляя в то же время всю мощь сценарного языка тем пользователям, которые хотятего применять.

В помощь аниматорам, не имеющим подготовки в программировании, былиразработаны простые анимационные языки с простым синтаксисом и более лег-кой для понимания семантикой (например, язык ANIMA II). В начале развитияКГ практически все анимационные системы были основаны на подобных язы-ках, поскольку было мало художников с технической подготовкой, которыемогли программировать на полноценном языке программирования. Эти системыс графическими пользовательскими интерфейсами были доступны художникам,но имели ограниченные возможности. В этих простых анимационных языкахтипичные операторы относятся к именованным объектам и преобразованиямобъектов. Эти языки обладали синтаксисом, легким для интерпретатора, компи-лятора и аниматора.

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

Во многих языках можно связывать значения переменной с функцией вре-мени, которая задается процедурно или разрабатывается интерактивно с исполь-зованием интерполяционных функций. Таким образом, когда сценарной илианимационной системе другого типа требуется получить значение переменнойдля своих вычислений, то она передает эту переменную времени артикуляцион-ной функции, которая возвращает свое значение для этого момента времени.Термин «артикуляционная переменная» (articulation variable), часто сокращае-мый до avar, распространен в различных системах для управления сочленениямиобъектов.

Графические представления, подобно использованным в коммерческой сис-теме HOI, представляют анимацию как сетевую диаграмму (dataflow network).Для представления объектов, операций и отношений между ними используетсяациклический граф. Узлы этого графа имеют входы и выходы, подключенные кдругим узлам сетевой диаграммы. Данные переходят от узла к узлу по дугам,интерактивно задающимся пользователем. Узел представляет операцию, кото-рую нужно выполнить над данными, переданными в этот узел, такими как опи-сание объекта. Узел преобразования обработает переданное описание объекта ина выходе выдаст преобразованный объект. Входы в узел могут быть использо-ваны для параметризации, преобразования или метода создания и могут зада-ваться интерактивно в соответствии с артикуляционной переменной или в соот-ветствии с произвольной процедурой.

Анимационные языки, построенные на модели «актер» (actor), представляютсобой объектно-ориентированный подход к анимации, в котором «актер» (ин-

375

4. Методы, алгоритмы и форматы файлов компьютерной графики

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

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

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

4.3. Форматы графических и геометрических файлов

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

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

4.3.1. Форматы векторных данных

Векторы — математическое описание объектов относительно точки началакоординат. Как показано выше, чтобы компьютер нарисовал прямую, необходи-мо задать координаты двух точек, которые связываются по кратчайшему рас-стоянию, для дуги задается радиус и две точки и т. д. Таким образом, векторноепредставление — это набор геометрических примитивов. Кроме того, большин-ство векторных форматов могут также содержать внедренные в файл растровыеобъекты или ссылку на соответствующий растровый файл (технология OPI).Векторные форматы часто называют форматами представления геометрическихданных. В целом эти форматы можно подразделить на две основные группы:

376

4.3. Форматы графических и геометрических файлов

• международные стандартные форматы ISO;• промышленные стандартные форматы.Меяедународные стандартные форматы ISO. ISO — Международная ор-

ганизация по стандартизации, в которую входит более 80 стран. Системы на-циональных стандартов (ANSI, ГОСТ, DIN) во многом соответствуют системестандартов ISO. В рамках ISO и Международной электротехнической комиссии(IEC) работает совместный комитет по КГ, который занимается подготовкой ипринятием стандартов в этой области.

Первым стандартом по представлению графических геометрических данныхбыл стандарт GKS (Graphical Kernel System) — стандарт двухмерного графиче-ского интерфейса, который использует неиерархический, нередактируемыйформат описания изображений. В этом стандарте изображения строятся путемнепосредственного вызова функций графической системы. Каждому графиче-скому примитиву соответствует своя функция. Несколько примитивов выводамогут быть объединены в сегмент, которому присваивается уникальный иден-тификатор. Сегменты размещаются в общей памяти для повторного использова-ния. Изменять содержимое сегментов не допускается. Специальные функциипозволяют осуществлять операции над сегментами: перенос, масштабирование,поворот. Геометрическая информация подвергается преобразованиям в системемировых координат. Нормированные координаты (NDC) устройства поддержи-вают несколько классов логических устройств ввода-вывода. В качестве примерареализации этого стандарта можно привести библиотеку SunGKS. Дальнейшееразвитие стандарт GKS получил в стандарте GKS-3D ISO IS 8805 (GraphicalKernel System for three dimensions). GKS-3D — стандарт трехмерного графиче-ского интерфейса, который использует все возможности стандарта GKS и со-держит некоторые дополнительные функции для работы с трехмерной графи-кой. GKS-3D поддерживает трехмерные примитивы, трехмерный ввод, трехмер-ные сегменты и обеспечивает работу с невидимыми линиями и поверхностями.Этот стандарт обеспечивает преобразование трехмерных мировых координат вкоординаты двухмерного устройства отображения. Цепочка преобразованийсвязывает четыре системы координат: мировые координаты, нормированныекоординаты (NDC-3), нормированные координаты проекции (NPC) и координа-ты устройства.

Позднее появился стандарт PHIGS (ISO IS 9592 — Programmer's HierarhicalInteractive Graphic System) — стандарт трехмерного графического интерфейсадля моделирования пространственной геометрии. PHIGS использует иерархиче-ский редактируемый формат описания изображений. Изображение определяетсякак иерархическая структура графических объектов. Каждый объект имеет своюлокальную координатную систему, что позволяет изменять ориентацию и вза-имное расположение объектов на экране. Последнее свойство необходимо длядинамических эффектов и анимации. Графический объект состоит из элементов,которыми являются примитивы и атрибуты. В отличие от формата GKS-3D, ме-ханизм создания структур в PHIGS позволяет редактировать отображаемый объ-

377

4. Методы, алгоритмы и форматы файлов компьютерной графики

ект в процессе выполнения прикладной программы. Все объекты в такой струк-туре имеют уникальные идентификаторы. При этом элементы объекта могутбыть помечены метками. Помеченные элементы могут быть удалены или изме-нены в любой момент времени. Ориентация объекта является его атрибутом иможет быть изменена для элемента. Координатная модель PHIGS включает пятьуровней: координаты моделирования, мировые координаты, координаты про-смотра, нормированные координаты проекции (NPC) и координаты устройства.

PHIGS+ — расширение стандарта PHIGS, которое содержит дополнитель-ные функции для получения реалистичных изображений трехмерных объектов.Данные функции позволяют получать блики, тени и другие эффекты освещенияпредметов. На платформе Sun реализована библиотека SunPHIGS, котораявключает в себя возможности стандартов PHIGS и PHIGS+. Курсы по КГ вомногих зарубежных университетах при наличии соответствующего техническогои программного обеспечения включают практические занятия по этим языкам.

Стандарт GKS предусматривает работу с метафайлом GKSM (GKSMetafile). Структура GKSM описана в приложении к стандарту GKS. Взаимо-действие прикладной программы с метафайлом осуществляется при помощифункций GKS. В стандарте GKSM регистрируется последовательность прими-тивов, выводимых GKS в течение сеанса на монитор. При воспроизведенииизображения из метафайла графическая система повторно выполняет всю по-следовательность функций вывода примитивов на экран. Аналогичные средствахранения информации есть в стандарте GKS-3D. Некоторые CAD-системы ис-пользуют формат метафайла GKSM для передачи изображений на другие плат-формы. Во время работы с графической системой в стандарте PHIGS (PHIGS+)описание структуры изображения находится в памяти системы. Функции PHIGSпозволяют сохранить структуру в виде архива для повторного использования вовремя следующего сеанса или в другой системе. Стандарт PHIGS несовместимсо стандартом GKS, поскольку в них существуют различия в форме описанияизображений.

CGI (ISOIS 9639 — Computer Graphics Interface) — стандарт двухмерногографического интерфейса, который был принят значительно позже GKS. Прин-ципы описания изображений у GKS и CGI аналогичны. Стандарт CGI имеет бо-лее широкий набор графических примитивов по сравнению с GKS. В нем значи-тельно упрощена координатная модель и отсутствуют сложные геометрическиепреобразования. Он имеет одноуровневую виртуальную систему. Данный стан-дарт часто рассматривают как промежуточный стандарт на аппаратно-независи-мый интерфейс между физическими устройствами отображения и графическимисистемами более высокого уровня (GKS, PHIGS и др.).

CGM (Computer Graphics Metafile) — стандарт на графический метафайл.Формат CGM — это формат метафайла для хранения и передачи статическихизображений. Один метафайл может содержать описание нескольких рисунков.Рисунок хранится в виде совокупности примитивов, используемых для его по-строения.

378

4.3. Форматы графических и геометрических файлов

Основным преимуществом стандартов ISO является независимость от опе-рационной системы и физических устройств. Это позволяет осуществлять пере-нос программ без существенных переделок на уровне исходных текстов (прииспользовании стандартных версий языка программирования). Другое преиму-щество стандартов ISO обусловлено стандартизацией двух- и трехмерного гра-фического ввода, включая ввод координат графического курсора.

Рассмотренным стандартам присущи и недостатки. Один из них связан с по-тенциальной неполной совместимостью различных реализаций одного стандарта.Так, например, стандарт GKS определяет набор всего из шести примитивов выво-да, в то время как в реальных библиотеках их используется гораздо больше. Одиниз примитивов GKS является обобщенным примитивом вывода, который обеспе-чивает расширение набора графических элементов в конкретной реализации. Напрактике большинство примитивов графических библиотек (окружность, эллипс,дуга и др.) являются расширением стандартного набора. Аналогичные проблемывозникают и с другими стандартами ISO, имеющими обобщенный примитив. Од-нако главным недостатком этих стандартов является отсутствие достаточной под-держки в реальных системах. Графические интерфейсы ISO/ANSI получили оченьограниченное распространение на рабочих станциях и практически не имеют под-держки на персональных компьютерах. Исключение составляет лишь стандартCGM, но он пригоден для обмена изображениями между программами, а не дляорганизации диалога. Отчасти такое положение можно объяснить сложностьюреализации и недостаточным быстродействием вследствие многоуровневых гео-метрических преобразований. Другим недостатком является некоторое отставаниестандартов от новаций в машинной графике. Время рассмотрения стандарта в ISOсоставляет до 5 лет, что не позволяет учитывать новейших тенденций.

Важным этапом стандартизации, связанным с машиной графикой, была раз-работка стандартов описания продуктов и технологий, которые появились в се-редине 1980-х годов в форме проекта STEP (STandard for the Exchange of Productmodel data) — семейства стандартов для обеспечения универсального механизмаобмена данными о продукции и технологии как между различными организа-циями, так и между разными этапами жизненного цикла продукции. ЯдромSTEP стал объектно-ориентированный язык информационного моделированияEXPRESS (ISO 10303, ч. 11). Не являясь языком программирования, действую-щая версия EXPRESS все же обеспечивает объектно-ориентированную идеоло-гию для описания концептуальных моделей данных (множественное наследова-ние данных и ограничений, выводимые атрибуты и др.). Важной особенностью,на которой основан EXPRESS, является модель «сущность-связь» (E-R). Графи-ческая версия языка EXPRESS-G полностью вытеснила язык IDEF IX, которыйиспользовался на начальных этапах проекта STEP. В версии языка EXPRESS v2уже предполагается полная объектная реализация с поддержкой моделированияпроцессов, событий, транзакций, а также единая формальная метамодель, гораз-до более детализированная и семантически более строгая, чем части Generic Re-sources серии стандартов ISO 10303 (ч. 41—49).

379

4. Методы, алгоритмы и форматы файлов компьютерной графики

Вся работа над проектом STEP велась под эгидой подкомитета 4, техничес-кого комитета 184 ISO (ISO TC184/SC4), к концу 1990-х годов в рамках которо-го появилось еще несколько разной степени завершенности серий стандартов,связанных с описанием уже не только продукции и технологии (ISO 13584, ISO14959, ISO 15926), но и управления производством (Manufacturing Management —MANDATE — ISO 15531) и использующих в качестве своей основы языкEXPRESS.

За прошедшие годы на основе EXPRESS и STEP сформировалась уже целаяотрасль, которая обеспечивает значительное уменьшение трудозатрат при вне-дрении новых технологий и новых видов продукции. Причем если серияISO 10303 задумывалась прежде всего для обслуживания автомобильной и аэро-космической отраслей, то сейчас она охватывает уже большинство видов про-изводств, включая электротехническое, кораблестроительное, строительное,нефтехимическое и другие производства. Появились не только компании, спе-циализирующиеся на инструментарии технологии STEP, но и организации об-щеметодологического плана, связанные с развитием технологии данных о про-дукции (Product Data Technology — PDT), например EuroSTEP, PDT Solutions,PDTAG, PDES и др.

Несмотря на внешние успехи, идеология, методология и технологияSTEP/EXPRESS требуют глубокого совершенствования. С одной стороны, нуж-на гармонизация и модуляризация стандартов внутри самого ISO TC184/SC4, сдругой стороны, оказалось необходимым выйти за рамки описания продукции итехнологии и включить более широкий круг вопросов бизнеса, с третьей сторо-ны — все более возникает необходимость в согласовании аналогичных работ сдругими организациями, занимающимися разработками в том же направлении ипрежде всего с группами CSMF (Conceptual Schema Modelling Facilities) и CDIF(CASE Data Interchange Format) в рамках объединенного технического комитетаISO и Международной электротехнической комиссии ISO/IEC JTC1, с Консор-циумом WWW, с рабочими группами OMG, с группой KIF (Knowledge Inter-change Format), ANSI ASC X3T2, а также с группой Open Application Group.Внутри самого сообщества ISO TC184/SC4 существует неудовлетворенностьсостоянием дел. Проект все более разрастается и становится все менее управ-ляемым, не приводя к созданию более общего и семантически строгого ядра,которое бы использовалось во всех специализированных описаниях не толькопродукции и технологии, но и бизнеса в широком смысле, включая управлениепроизводством и данными о продукции. Для этого в рамках рабочей группы ISOTC184/SC4/WG10 началась работа по созданию общей метам од ели в рамкахпроекта IIDEAS (Integration of Industrial Data for Exchange Access andSharing). В проекте предполагается охватить не только стандарты ISOTC184/SC4, но и установить связь с другими упомянутыми организациями постандартизации. Под их эгидой проводятся специальные семинары по инте-грации моделей данных и процессов в информационных системах. В качествебазы предполагается использовать основанный на XML язык разметки для

380

4.3. Форматы графических и геометрических файлов

материалов MatML, так как база должна быть полностью структурированнойи Web-ориентированной.

В настоящее время в мире идет развитие множества тематически специали-зированных языков на основе языка XML. Появилось и уже стандартизованоконсорциумом World Wide Web Consortium (W3C) ряд тематических подмно-жеств языка XML. Так, для описания математических выражений и формул ис-пользуется язык MathML. Для описания векторных графических данных дляWeb разработан ряд форматов:

• язык VML (Vector Markup Language), разработанный на основе языкаXML;

• формат VRML (Virtual Reality Modeling Language) (ISO/IEC 14772), под-держиваемый организацией Web3D Consortium;

• формат SVG (Scalable Vector Graphics standard), поддерживаемыйорганизацией W3C (только 2D).

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

Особо следует выделить формат STL, или формат стереолитографии, кото-рый используется в автоматизированном производстве для представления трех-мерных моделей объектов на стадии быстрого прототипирования. Этот форматявляется стандартным входным форматом для большинства систем быстрогопрототипирования. Информация об объекте включает список треугольных гра-ней, которые описывают поверхность его твердотельной модели с заданной точ-ностью, и представляется в виде ASCII, или двоичного файла. Файл ASCII .stl.должен начинаться ключевым словом solid и заканчиваться endsolid. Внутриэтих ключевых слов приводится описание треугольников. Описание каждоготреугольника включает описание единичного вектора нормали, направленно-го от его поверхности, за которым следует список трехмерных координатвсех вершин. Все координаты представлены в декартовой системе координати записаны в виде чисел с плавающей точкой.

Формат WMF (Windows Metafile) является графическим форматом. Онслужит для передачи векторной графики через буфер обмена (Clipboard) ираспознается практически всеми программами Windows, связанными с вектор-ной графикой. Однако, несмотря на кажущуюся простоту и универсальность,использовать формат WMF нужно только для передачи векторов. ФорматWMF искажает цвет, не сохраняет ряд параметров, которые могут быть при-своены объектам в различных векторных редакторах, не содержит растровыеобъекты.

Формат DGN (DesiGN file format) разработан фирмой Bentley на основеформата ISFF (Intergraph Standard File Formats) фирмы Intergraph для представ-ления векторных данных в двоичном упакованном виде. DGN — это внутренний

381

4. Методы, алгоритмы и форматы файлов компьютерной графики

формат представления данных в программе автоматизированного проектирова-ния MicroStation и других продуктах фирмы Bentley.

Формат DWG (DraWinG Format) разработан фирмой Autodesk для представ-ления векторных графических и геометрических данных в двоичном упакован-ном виде; это внутренний формат представления данных в программе созданиячертежей для САПР — AutoCAD и других продуктах фирмы Autodesk.

Формат DXF (Drawing Exchange Format) разработан фирмой Autodesk дляпредставления векторных графических и геометрических данных в текстовомвиде с возможностью редактирования в любом текстовом редакторе.

Формат DWF (Drawing Web Format) разработан фирмой Autodesk для пред-ставления векторных данных в Web.

Поскольку последние три формата де-факто стали международными, рас-смотрим их подробнее.

Формат DWG — формат файлов, создаваемых в программе AutoCAD. Фак-тически формат DWG стал стандартом для всех САПР в машиностроении, архи-тектуре и строительстве. В 1997 г. компания Autodesk утверждала, что в миресоздано более 2 млрд DWG-файлов. В настоящее время используются следую-щие форматы: DWG 12, DWG 13, DWG 14, DWG 2000, DWG 2004 DWG 2005 иразрабатываются новые. В ответ на просьбы заказчиков компания Autodeskпредлагает пользователям DWG бесплатные инструменты: DWG True View дляпросмотра файлов DWG и DWG TrueConvert для преобразования файлов DWGиз старых версий в новые, и наоборот. Программы DWG True View и DWGTrueConvert доступны для бесплатной загрузки с сайта компании Autodesk.

Программы DWG True View и DWG TrueConvert являются последними дос-тижениями Autodesk в области промышленных и технологических стандартов,которые помогают заказчикам максимально использовать свои конструкторскиеданные. Кроме того, недавно представлен инструмент разработки AutodeskRealDWG, помогающий сторонним разработчикам приложений создавать и про-двигать на рынок продукты, способные считывать и записывать данные в фор-мате DWG, не требуя установки программы AutoCAD.

Следует упомянуть об ассоциации программных разработчиков и пользова-телей Open Design Alliance для продвижения открытых форматов обмена дан-ными автоматизированного проектирования.

Разрабатываемый ассоциацией формат OpenDWG основан на форматеDWG. OpenDWG спроектирован для обеспечения максимальной совместимостис DWG. Программные библиотеки OpenDWG обновляются регулярно, предос-тавляя совместимость со всеми версиями DWG вплоть до 2005.

Разрабатываемый ассоциацией формат OpenDGN основан на формате DGN.Фирма Bentley сотрудничала с Open Design Alliance для предоставления пользо-вателям и разработчикам программ высокоэффективных библиотек, поддержи-вающих чтение-запись родного формата DGN.

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

382

4.3. Форматы графических и геометрических файлов

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

Формат DXF (Drawing Exchange Format) — формат обмена чертежами —разработан фирмой Autodesk для экспорта информации из программы AutoCADв программные продукты третьих сторон. Файл DXF является ASCII-файлом.Формат DXF — открытый формат и полностью документирован фирмой Auto-desk (вся необходимая информация есть на сайте фирмы).

В каждом чертеже выделяются три основных группы данных: блоки (block),словари (dictionary) и таблицы символов (symbol table). Блоки содержат наборыграфически отображаемых объектов (entities), имеют имя, собственную системукоординат, могут быть включены в другие блоки как графические объекты с соб-ственными уникальными параметрами преобразования координат (поворотом,масштабированием и т. д.), а также могут существовать как отдельные чертежи(external references). Данный формат воспринимается всеми реализациями про-граммы AutoCAD и большинством программ САПР, существует также возмож-ность его преобразования как в двоичный формат DWG, так и наоборот.

DXF-файлы являются стандартными текстовыми файлами ASCII. Их можнопросто перетранслировать в форматы другой системы проектирования или до-бавить к другим программам для решения специализированных задач. Процесснаписания программы, которая реализует связь с программой AutoCAD посред-ством алгоритма обработки информации DXF, не является сложной задачей, хо-тя DXF-файл наполнен различного рода информацией, и при ее анализе вруч-ную может показаться, что эта задача невыполнима. Однако DXF-файл построентаким образом, чтобы его обработка проводилась легко с помощью соответст-вующей написанной на любом языке программы, например на языке Basic.Формат преднамеренно построен таким образом, что ненужная информация безособого труда может быть опущена, а считывание необходимой информацииосуществляется просто. Обрабатывать группы, информации можно в любом по-рядке, пропуская любую ненужную группу.

Написание программы, которая осуществляет построение DXF-файла, явля-ется более трудной задачей, поскольку требуется сохранить логическую после-довательность в пределах конкретного файла, которая является обязательнойдля программы AutoCAD.

Формат DXF-файла представляет собой полное описание чертежа в тексто-вой форме кода ASCII, допускающей простую обработку с помощью другихпрограмм. В ряде случаев удобнее использовать гораздо более компактный фай-ловый формат DXB (Drawing Exchange Binary) — двоичный обмен чертежами,который строится на основе DXF.

Формат DWF (Drawing Web Format) — это открытый формат файлов, разра-ботанный Autodesk в целях организации эффективного обмена проектными дан-ными между проектировщиками с использованием Web-технологий для их про-смотра, печати и рецензирования. DWF-файлы имеют высокую степень сжатия,

383

4. Методы, алгоритмы и форматы файлов компьютерной графики

поэтому по сравнению с файлами моделей их размер значительно меньше и об-мен осуществляется гораздо быстрее. Сжатие сокращает издержки, связанные спересылкой чертежей, созданных в САПР (а также с управлением внешнимиссылками и зависимостями). DWF позволяет отображать определенные проект-ные данные и стили печати для просмотра заинтересованными лицами и выпол-нить публикацию многолистовых наборов чертежей из нескольких DWG-файловв один DWF-файл. В DWF могут быть опубликованы ЗБ-модели практическихдля всех продуктов Autodesk.

DWF-файлы ни в коей мере не заменяют формат DWG-файлов. Редактиро-вание и обновление проектных данных по-прежнему выполняется в DWG-файлах. Однако DWF-файлы позволяют конструкторам, инженерам, разработ-чикам и другим пользователям передавать техническую документацию и демон-стрировать свои идеи всем заинтересованным лицам. Для просмотра и печатиDWF-файлов применяется небольшая бесплатная программа Autodesk — DWFViewer. Просмотр, печать, выполнение изменений, нанесение пометок и отсле-живание изменений осуществляются в программе Autodesk DWF Composer.

Формат DWF необходим всем специалистам, использующим формат DWG.Начиная с разработки идеи и заканчивая воплощением этой идеи в жизнь идальнейшей эксплуатацией, во все этапы жизненного цикла любого изделия во-влекается множество проектировщиков, инженеров, разработчиков, клиентов иподрядчиков. Членам коллективов необходимо иметь возможность просмотра,вывода на печать, рецензирования и комментирования моделей. ПользователямСАПР необходимо быстрое, удобное и безопасное средство обмена электрон-ными файлами проектов, поддерживающее целостность данных исходной модели.

DWF-файлы можно также создавать с помощью бесплатной программыAutodesk DWF Writer. DWF Writer позволяет безопасно и эффективно преобра-зовывать файлы чертежей и другие документы в DWF из многих графическихприложений.

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

По сравнению с чертежами, выполненными на бумаге, DWF-файлы облада-ют намного более высокой информативностью. В то же время они менее точны,чем исходные DWG-файлы, и несут в себе меньший объем проектных данных.По умолчанию публикация DWF-файлов выполняется с разрешением 400 dpiнезависимо от физического размера модели. Причиной потери точности являет-ся применение алгоритмов сжатия при публикации из DWG в DWF. Если точ-ность по умолчанию не соответствует конкретной ситуации, ее повышают либовыбором меньшего формата листа, либо изменением разрешения. Следует иметьв виду, что размер DWF-файла увеличивается при повышении разрешающейспособности процесса публикации.

384

4.3. Форматы графических и геометрических файлов

Обмен оригинальными файлами моделей в форматах DWG может быть не-практичным по ряду причин. Одна из них — это защита интеллектуальной соб-ственности. Любой, кто получит файл в собственном формате программ(AutoCAD, Autodesk Inventor и т. п.), может изменить данные в нем или несанк-ционированно использовать их в своей разработке. Кроме того, стоимость про-грамм типа AutoCAD, Autodesk Inventor, плата за установку этих программ иобучение каждого сотрудника работе с такими сложными приложениями можетбыть очень высокой. Использование DWF-формата помогает избежать этихтрудностей. DWF-файлы занимают меньший объем, их быстрее и безопаснеераспространять, чем DWG-файлы. В то же время в них полностью представленався проектная графическая информация. Пользователи САПР могут выполнятьпубликацию чертежей, карт или других графических моделей в DWF-формат.Лица, просматривающие DWF-файлы, всегда четко видят предназначенную дляних информацию. Кроме того, DWF-формат поддерживает публикацию много-листовых наборов чертежей и упрощает просмотр и печать таких наборов. Ком-пания Autodesk предоставляет набор функций для чтения и записи файлов вDWF-формате. Например, функции из набора DWF 6 Toolkit позволяют рабо-тать с многолистовыми DWF-файлами.

4.3.2. Форматы растровых данных

Растровый формат представляет собой прямоугольную матрицу (bitmap),разделенную на пикселы. Различают два типа растровых файлов: предназначен-ные для вывода на экран и для печати.

Разрешение файлов таких форматов, как GIF, JPEG, BMP, зависит от видео-системы компьютера. Растровые форматы, предназначенные исключительно длявывода на экран, имеют только экранное разрешение, т. е. один пиксел в файлесоответствует одному экранному пикселу. На печать они выводятся с экраннымразрешением.

Растровые файлы, предназначенные для допечатной подготовки изданий,имеют подобно большинству векторных форматов параметр Print Size — размердля вывода на печать. С ним связано понятие печатного разрешения, котороепредставляет собой соотношение количества пикселов на один квадратныйдюйм страницы (ppi, pixels per inch или dpi — dots per inch). Печатное разреше-ние бывает от 130 (газеты) до 300 dpi (высококачественная печать).

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

Формат BMP (Windows Device Independent Bitmap) — это формат Windows.Он поддерживается всеми графическими редакторами, работающими подуправлением этой операционной системы. Применяется для хранения растровыхизображений, предназначенных для использования в Windows и, по сути, боль-

385

4. Методы, алгоритмы и форматы файлов компьютерной графики

ше ни на что не пригоден. Способен хранить как индексированный (до 256 цве-тов), так и RGB-цвет (16 700 000 оттенков). Формат BMP используется только вWindows.

Формат GIF (CompuServe Graphics Interchange Format) — не зависящий отаппаратного обеспечения способ представления растровых данных, разработан-ный в 1987 г. (GIF87a) фирмой CompuServe. В 1989 г. формат был модифициро-ван (GIF89a), в него были добавлены поддержка прозрачности и анимации. GIFиспользует LZW-компрессию, что позволяет хорошо сжимать файлы, в которыхмного однородных заливок (логотипы, надписи, схемы).

Метод сжатия LZW (Lempel—Ziv—Welch), разработанный израильтянамиЛемпелом и Зивом в 1978 г., позднее был доработан в США. Этод метод сжима-ет данные путем поиска одинаковых последовательностей (они называются фра-зы) во всем файле. Выявленные последовательности сохраняются в таблице, имприсваиваются более короткие маркеры (ключи). Так, если в изображении име-ются наборы из розового, оранжевого и зеленого пикселов, повторяющиеся50 раз, LZW выявляет это, присваивает данному набору отдельное число (на-пример, 7) и затем сохраняет эти данные 50 раз в виде числа 7. Метод сжатияLZW лучше действует на участках однородных, свободных от шума цветов, присжатии произвольных графических данных, но процесс кодирования и распа-ковки происходит медленно.

Формат GIF позволяет записывать изображение через строчку (Interlaced),благодаря чему имея только часть файла, можно увидеть изображение целиком,но с меньшим разрешением. Это достигается за счет записи, а затем подгрузки,сначала 1, 5, 10 и т. д. строчек пикселов и растягивания данных между ними,вторым проходом следуют 2, 6, 11 строчки, разрешение изображения в интерне-товском браузере увеличивается. Таким образом, задолго до окончания загрузкифайла пользователь может понять, что внутри, и решить, стоит ли ждать, когдазагрузится весь файл.

В формате GIF можно назначить один или более цветов прозрачными, онистанут невидимыми в интернетовских браузерах и некоторых других програм-мах. Прозрачность обеспечивается за счет дополнительного alpha-канала, сохра-няемого вместе с файлом. Кроме того, файл GIF может содержать не одну, анесколько растровых картинок, которые браузеры могут подгружать одну задругой с указанной в файле частотой. Так достигается иллюзия движения (GIF-анимация).

Основное ограничение формата GIF состоит в том, что цветное изображениеможет быть записано только в режиме 256 цветов. В ряде случаев этого недоста-точно.

Формат JPEG (Joint Photographic Experts Group) — один из самых распро-страненных растровых форматов. Строго говоря, JPEG называется не формат, аалгоритм сжатия, основанный не на поиске одинаковых элементов, как в LZW, aна разнице между пикселами. Кодирование данных происходит в несколько эта-пов. Сначала графические данные конвертируются в цветовое пространство

386

4.3. Форматы графических и геометрических файлов

LAB, затем отбрасывается половина или три четверти информации о цвете (взависимости от реализации алгоритма). Далее анализируются блоки 8 x 8 пиксе-лов. Для каждого блока формируется набор чисел. Первые несколько чиселпредставляют цвет блока в целом, в то время как последующие числа отражаюттонкие делали. Спектр деталей базируется на зрительном восприятии человека,поэтому крупные детали более заметны. На следующем этапе в зависимости отвыбранного уровня качества отбрасывается определенная часть чисел, представ-ляющих тонкие детали. На последнем этапе используется кодирование методомХаффмана для более эффективного сжатия конечных данных. Восстановлениеданных происходит в обратном порядке.

Цветовое пространство LAB представляет цвет в трех каналах: один каналвыделен для значений яркости (L — Lightnes) и два других для цветовой инфор-мации (А и В). Цветовые каналы соответствуют шкале, а не какому-нибудь од-ному цвету. Канал А представляет непрерывный спектр от зеленого до красного,канал В — от синего до желтого. Средние значения для каналов Аи В соответст-вуют реальным оттенкам серого.

Метод сжатия Хаффмана (Huffman), разработанный в 1952 г., используетсякак составная часть в ряде других схем сжатия, таких как LZW, JPEG. В методеХаффмана, чтобы определить частоту каждого символа, анализируется наборсимволов. Затем для наиболее часто встречающихся символов используетсяпредставление в виде минимально возможного количества битов. Например, бук-ва «е» чаще всего встречается в английских текстах. Используя кодировкуХаффмана, можно представить букву «е» всего лишь двумя битами (1 и 0) вмес-то восьми битов, необходимых для представления буквы «е» в кодировке ASCII.

Таким образом, чем выше уровень компрессии, тем больше данных отбра-сывается, тем ниже качество. Используя JPEG, можно получить файл в 500 разменьше, чем BMP. Формат аппаратно независим, полностью поддерживается наPC и Macintosh, однако он относительно нов и не понимается старыми програм-мами (до 1995 г.). JPEG не поддерживает индексированные палитры цветов.Первоначально в спецификациях формата не было и CMYK, фирма Adobe доба-вила поддержку цветоделения, однако поддержка CMYK JPEG во многих про-граммах имеет проблемы. Лучшим решением является использование JPEG-сжатия в Photoshop EPS-файлах фирмы Adobe, которое описывается ниже.

Существуют подформаты JPEG. Например, JPEG Baseline Optimized разра-ботан специально для Интернет, его поддерживают все основные браузеры.

Формат JPEG лучше сжимает растровые картинки фотографического каче-ства, чем логотипы или схемы — в них больше полутоновых переходов, средиоднотонных заливок же появляются нежелательные помехи. Лучше сжимаютсяи с меньшими потерями большие изображения для Web или изображения с вы-соким разрешением (200-300 и более dpi), чем с низким (72-150 dpi), посколькув каждом квадрате 8x8 пикселов переходы получаются более мягкие за счеттого, что их (квадратов) в таких файлах больше. Нежелательно сохранять сJPEG-сжатием изображения, в которых важны все особеннности цветопередачи,

387

4. Методы, алгоритмы и форматы файлов компьютерной графики

так как во время сжатия происходит отбрасывание части цветовой информации.В JPEG следует сохранять только конечный вариант работы, потому что каждоедополнительное сохранение приводит ко все новым потерям (отбрасыванию)цветовых данных.

Формат PNG (Portable Network Graphics) — относительно новый формат,призванный заменить устаревший формат GIF. Этот формат использует сжатиебез потерь (Deflate), сходное с LZW. Сжатые индексированные PNG-файлы, какправило, меньше аналогичных GIF-файлов, RGB PNG-файлы меньше соответст-вующих файлов в формате TIFF, рассматриваемом далее.

Глубина цвета может быть любой до 48 бит. Используется двухмерная за-пись изображения через строчку (interlacing не только строк, но и столбцов), ко-торый так же, как и в формате GIF, увеличивает размер файла. В отличие отформата GIF, где прозрачность либо есть, либо нет, формат PNG поддерживаеттакже полупрозрачные пикселы, т. е. в диапазоне прозрачности от 0 до 99 %, засчет альфа-канала с 256 градациями серого.

В файл формата PNG записывается информация о гамма-коррекции. По-скольку гамма-коррекция — это некое число, характеризующее зависимость яр-кости свечения экрана монитора от напряжения на электродах кинескопа, то эточисло, считанное из файла, позволяет ввести поправку яркости при отображе-нии. Оно необходимо для того, чтобы изображение выглядело одинаково на раз-ных графических аппаратных средствах. Таким образом, гамма-коррекция помо-гает реализации основной цели передачи изображений в Интернет — одинако-вого отображения информации независимо от аппаратуры пользователя.

Формат TIFF (Tagged Image File Format) — аппаратно независимый формат, насегодняшний день является одним из самых распространенных и надежных, егоподдерживают практически все программы, так или иначе связанные с графи-кой. TIFF является лучшим форматом для импорта растровой графики в вектор-ные графические программы и издательские системы. Ему доступен весь диапа-зон цветовых моделей от монохромной до RGB, CMYK и дополнительных цве-тов Pantone. TIFF может сохранять обтравочные контуры, альфа-каналы, другиедополнительные данные. В формате TIFF может быть использовано LZW-сжатие.

4.3.3. Язык Adobe PostScript

Язык PostScript — средство описания страниц фирмы Adobe. Был создан в1980-х годах для реализации принципа WYSIWYG (What You See is What YouGet— что ты видишь, то ты и получаешь). Файлы этого формата фактическипредставляют из себя программу с командами для вывода на печать. Они имеютрасширение .ps или, реже, .ргп и получаются с помощью функции Print to file гра-фических программ при использовании драйвера PostScript-принтера. Такие фай-лы содержат в себе сам документ (только то, что располагалось на страницах), всесвязанные файлы (как растровые, так и векторные), использованные шрифты, а

388

4.3. Форматы графических и геометрических файлов

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

Растровые данные, как правило, записываются в двоичной кодировке(Binary). Бинарный код занимает вдвое меньше места, чем ASCII. Это относитсяко всем форматам, основанным на языке PostScript: EPS и PDF, которые описы-ваются далее.

Формат EPS (Encapsulated PostScript) можно назвать самым надежным иуниверсальным способом хранения данных. Он использует упрощенную версиюPostScript: не может содержать в одном файле более одной страницы, не сохра-няет ряд установок для принтера. Как и в файлы печати PostScript, в EPS запи-сывают конечный вариант работы, хотя такие программы, как Adobe Illustrator иAdobe Photoshop, могут использовать его как рабочий. EPS предназначен дляпередачи векторных и растровых данных в издательские системы и создаетсяпочти всеми программами, работающими с графикой. Использовать его имеетсмысл только тогда, когда вывод осуществляется на PostScript-устройстве. EPSподдерживает все необходимые для качественной печати цветовые модели, сре-ди них такая, как Duotone; этот формат содержит данные RGB, данные обтра-вочного контура, информацию о растрах, о внедренных шрифтах.

Вместе с файлом можно сохранить эскиз файла (image header, preview). Этокопия низкого разрешения в формате PICT, TIFF, JPEG или WMF, которая со-храняется вместе с файлом EPS и позволяет увидеть общее содержимое файла.Такой эскиз выводится на печать на принтере, не поддерживающем PostScript.

Изначально EPS разрабатывался как векторный формат, позднее появиласьего растровая разновидность — Photoshop EPS. Кроме типа эскиза (TIFF, PICT,JPEG) Photoshop EPS позволяет выбрать способ кодирования данных. PhotoshopEPS позволяет сжимать растровые данные с помощью алгоритма JPEG. Adobeдоработала этот способ сжатия. JPEG в исполнении Photoshop EPS поддержива-ет CMYK и сжимает лучше, чем JPEG, полностью соответствуя первоначальнымспецификациям JPEG.

Формат EPS имеет много разновидностей, что зависит от программы-создателя. Самые надежные EPS-файлы создают программы производства фир-мы Adobe Systems: Photoshop, Illustrator и др.

Формат PDF (Portable Document Format) предложен фирмой Adobe как неза-висимый от платформы формат для создания электронной документации, пре-зентаций, передачи оригинал-макетов и графики по сети Интернет.

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

Метод сжатия CCITT (International Telegraph and Telephone Committie) былразработан для факсимильной передачи и приема. Он является более узкой вер-

389

4. Методы, алгоритмы и форматы файлов компьютерной графики

сией кодирования методом Хаффмана. CCITT Group 3 идентичен формату со-общений по факсу, CCITT Group 4 •— это формат факсов, но без специальнойуправляющей информации.

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

Поскольку в настоящее время наиболее актуальной становится передачаданных через Интернет, то следует выделить формат DWF для передачи вектор-ных графических данных, форматы GIF, JPEG, PNG для передачи растровыхграфических данных и формат PDF для передачи документации.

Вопросы для самоконтроля

1. Перечислите основные алгоритмы для обработки растровых изображений.2. В чем заключается основная идея преобразования Хоха?3. Представьте геометрическую иллюстрацию алгоритма Брезенхема.4. Назовите основные типы ограничений при параметризации плоских контуров и при-

ведите соответствующие геометрические иллюстрации.5. В чем состоит основная идея алгоритмов, использующих г-буфер, и алгоритма по-

строчного сканирования?6. Дайте геометрическую иллюстрацию метода рейтресинга.7. Какие эффекты фотореалистической визуализации трехмерных моделей нельзя полу-

чить по методу Фонга?8. В любой доступной вам системе трехмерного геометрического моделирования

(3DMax, Maya, Inventor, Solid Works, КОМПАС 3D, T-Flex 3D и т. п.) создайте сценуиз плоскости, на которой разместите примитивные тела (параллелепипеды, сферы,конусы, цилиндры, эллипсоиды вращения и т. п.), задайте три разных источника ос-вещения и разместите их так, чтобы в сцене присутствовали тени и взаимные отра-жения света от созданных объектов. Проверьте качество визуализации следующихэффектов: наложение разных материалов на поверхности тел, мягкие тени, прозрач-ность, зеркальные взаимные отражения света.

9. Что такое система ключевых кадров?10. Перечислите основные форматы файлов для передачи растровых данных.

СПИСОК ЛИТЕРАТУРЫ

1. Computer Graphics: principle and Practice Second Edition. J. Foley, A. van Dam, etal. Addison-Wesley, 1996.

2. www.ixbt.com.3. www.spec.org.4. www.top500.org.5. Абламейко СВ., Лагуновский Д.М. Обработка изображений: технология, методы,

применение. — Минск: Амалфея, 2000.6. Хери Я., Бейкер X. Компьютерная графика: Пер. с англ. — М: Вильяме, 2005.7. Гуревич М.М. Цвет и его измерение. — М.-Л.: Мир, 1950.8. Ивенс Р.М: Введение в теорию цвета: Пер. с англ. — М.: Мир, 1964.9. Каган Б.М. Электронные вычислительные машины и системы. — М.: Энерго-

атомиздат, 1991.10. Королев Л.Н. Архитектура процессоров электронных вычислительных машин. —

М.: Издательский отдел факультета Вычислительной Математики и Кибернети-ки МГУ им. М.В. Ломоносова, 2003.

11. Линдли К. Практическая обработка изображений на языке Си: Пер. с англ. — М.:Мир, 1996.

12. Медведев A. DX Current. Настоящее аппаратного ускорения графики. —www.ixbt.com.

13. Медведев A. Longhom Microsoft улучшает графику на 55 %. — www.ixbt.com.14. Методы компьютерной обработки изображений / Под ред. В.А. Сойфера. — М.:

ФИЗМАТ ЛИТ, 2003.15. Мураховский В.И. Железо ПК. Новые возможности. — СПб.: Питер, 2005.16. Никулин Е.А. Компьютерная геометрия и алгоритмы машинной графики. —

СПб: БХВ-Петербург, 2003.17. Поляков А.Ю. Методы и алгоритмы компьютерной графики в примерах на Visual

C++. — СПб.: БХВ-Петербург, 2002.18. Пэрент Р. Компьютерная анимация: Пер. с англ. — М.: КУДИЦ-ОБРАЗ, 2004.19. Роджерс Д. Алгоритмические основы машинной графики: Пер. с англ. — М.:

Мир, 1989.20. Роджерс Д., Адаме Дж. Математические основы машинной графики: Пер. с

англ. — М.: Мир, 2001.21. Цветков В.Я. Геоинформационные системы и технологии. — М.: Финансы и

статистика, 1998.22. Шикин А.В., Боресков А.В. Компьютерная графика. Полигональные модели. —

М.: ДИАЛОГ-МИФИ, 2001.

Информатика в техническом университете

А.Н. Божко, Д.М. Жук, В.Б. Маничев

t i

ISBN 978-5-7038-3015-4

785703 830154

Рис. 1. Пример цветовой иллюзии

Красный

Желтый

Желтый

Белый^Н

Турпурный Голубой

Пурпурный • лубой

Рис. 2. Аддитивное (а) и еубтрактивное (б) смешение цветов

Red Green Blue Red Green Blue Red Green Blue

\ / \ /( V YellowБелая бумага )

Red Green Blue Red Green Blue

4 \ \ \ \ \ 4Red Green Blue

Yellow( Белая бумага J

Рис. З. Формирование основных оттенков в субтрактивной модели

у

0,8

0,7

0,6

0,5

0,4

0,3

0,2

0,1

Спектральная кривая

Криваяпурпурных цветов

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 х

Рис. 4. Хроматическая диаграмма CIE

У \

0 0,1 0,2 0,3 0,4 0,5 х

Рис. 5. Хроматическая диаграмма системы CIE Luv

Рис. 6. Цветовая модель системы CIE Lab

Яркость

Зеленый

Синий

Желтый

Красный

асы щенность

Голубой Пурпурный

iРис. 7. Представление системы HSB

Рис. 8. Цветовой круг

Рис. 9. Изображение в натуральную величину и при пятикратном увеличении

;

••":•-•

Рис. 10. Оригинал, оцифрованный с различным разрешением:а — высокое разрешение; б — низкое

Рис. 11. Цветовой эталон

Рис. 12. Изменение экранных размеров одного оригинала при выбореразличных значений разрешения

1. Введение в компьютерную графику

Рис. 1.5. Пример оптической иллюзии

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

На рис. 1 цветной вклейки приведен пример иллюзии цветового восприятия.Прямоугольное поле заполнено в шахматном порядке клетками светло-зеленогоцвета, на диагоналях этой фигуры размещены прямоугольники отличного цвета.Требуется оценить сходство цветов клеточек, заполняющих диагонали. Кажется,что диагонали этой фигуры закрашены разным цветом, но инструментальнаяпроверка или осмотр изображения при большом увеличении свидетельствуют ополной хроматической тождественности. Можно выиграть любое пари, что

•щммммми§ IИ I Ii I 5

•>•••••••Рис. 1.6. Пример иллюзии восприятия тонов

26

1. Введение в компьютерную графику

дающие единый фундамент процедурам настройки и измерения цвета. Беспо-рядку со специализированными фирменными форматами был положен конец в1995 г., когда фирма Apple объявила о создании встроенной в операционнуюсреду системы управления цветом ColorSync 2. Фирма предложила новый стан-дарт записи профайлов и сделала его открытым. Формат оказался удачным ибыл стандартизован международным консорциумом по свету ICC (InternationalColor Consortium). Разработка принята сообществом разработчиков программно-го и технического обеспечения и в настоящее время все системы управленияцветом основываются на профилях ICC.

Профилирование и калибровка технических устройств оказываются нерабо-тоспособными без надлежащей системной организации. Программно-аппаратнаясреда, объединяющая средства управления цветом в КГ, называется системойуправления цветом и ее часто обозначают аббревиатурой CMS (Color Manage-ment System). Существует несколько таких систем, среди которых можно выде-лить двух явных лидеров: на платформе Windows — Image Color Management(ICM); на платформе Macintosh — ColorSync.

Все системы CMS (рис. 1.11) включают в себя три основных составляющих:• базовое цветовое пространство системы. Аппаратно-независимый способ

описания цветов, свободный от ограничений и особенностей классов и типовтехнических устройств. Это своего рода общий знаменатель, к которому приво-дятся цветовые пространства отдельных технических устройств, входящих втехнологическую цепочку подготовки цветных публикаций. В последних CMSэти функции выполняют CIE Lab или CIE XYZ. Базовое пространство — важнаятеоретическая составляющая любой системы управления цветом. Для рядовогопользователя она не имеет прикладного значения, поскольку является полно-стью закрытой;

Ядро системы управления цветом

Входнойпрофиль

Входнойпрофиль

Входнойпрофиль

Аппаратно-независимое

цветовоепространство

Выходнойпрофиль

Выходнойпрофиль

Выходнойпрофиль

Входныеустройства

Выходныеустройства

Рис. 1.11. Структура системы управления цветом

46

2. Технические средства компьютерной графики

Рис. 2.5. Суперкомпьютер BlueGene/L фирмы IBM

числений, таких как моделирование атмосферных явлений, решение астрономи-ческих задач, прогнозирование погоды, разведка нефтяных и газовых месторож-дений и т. п. Как правило, суперкомпьютеры создаются под конкретные задачиили научные программы и изготавливаются в единичных экземплярах из серий-ных комплектующих. Суперкомпьютеры содержат сотни и тысячи процессоров,имеют большую оперативную память и очень высокое быстродействие. Они со-стоят из большого количества различных аппаратных средств, стоят десяткимиллионов долларов, занимают большие помещения, а иногда и специально по-строенные здания (рис. 2.5).

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

Быстродействие суперкомпьютеров обычно измеряется во ФЛОПСах(FLOPS — Floating Point Operations Per Second). ФЛОПС — количество арифме-тических операций с плавающей запятой, выполняемых в секунду. Производныеединицы: 1 МегаФЛОПС (МФЛОПС) = 1 млн арифметических операций в се-кунду. 1 ГигаФЛОПС (ГФЛОПС) = 1 млрд арифметических операций в секунду;1 ТераФЛОПС (ТФЛОПС) = 1 трлн арифметических операций в секунду.

Организация ТОР500 Supercomputer sites (www.top500.org) с 1993 г. дважды вгод публикует статистику по 500 наиболее мощным суперкомпьютерам, определяяих производительность на тестовой программе High-Performance Linpack Benchmark(HPL) решения системы алгебраических уравнений. Характеристики пяти лучшихкомпьютеров по данным на ноябрь 2006 г. приведены в табл. 2.1;

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

76

2.1. Общие сведения об ЭВМ

Таблица 2.1

Вычислительнаясистема

BlueGene/LEServer BlueGeneRed Storm

BGW EServerBlue Gene/L

ASCI PurpleeServer pSeries"p575MareNostrumBladeCenterJS21 Cluster

Произ-води-тель

IBM

CrayInc.

IBM

IBM

IBM

Заказчик

DOE/NNSA/LLNL

NNSA/SandiaNational Laboratories

IBM Thomas J.Watson Research

CenterDOE/NNSA/LLNL

BarcelonaSupercomputing

Center

Числопроцес-соров

131072

26 544

40 960

12 208

10240

Тип процессора

Power PC 440

Opteron2,4 GHz dual

corePower PC 440

PSeries 575

PPC 970,2,3 GHz

Максималь-ная произво-дительность

(TFLOPS)

280,60

101,4

91,29

75,76

62,63

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

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

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

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

Рис 2.6. Мэйнфрейм IBM zSeries 990 возможность замены неисправных блоков2003 г. при непрерывной работе («горячая» замена)

77

2. Технические средства компьютерной графики

Рис. 2.7. Сервер Hewlett Packard Integrity rx8620-32 (2005 г.) и сервер Apple Xserve G5 (2005 г.)

и средства обеспечения длительной непрерывной работы в различных условиях.Серверы могут быть построены на базе различных семейств компьютеров и содер-жать от единиц до нескольких десятков процессоров. Конструктивное исполнениесерверов многообразно — от настольного до шкафа (рис. 2.7).

Инженерные рабочие станции — относительно недорогие и достаточномощные и надежные компьютеры на базе современных RISC-процессоров иОС Unix, которые используются в качестве рабочих мест для профессиональнойработы в различных областях, связанной со сложными и объемными вычисле-ниями и с большими объемами данных. Обычно эти компьютеры используютдля работы со сложной графической информацией и в CAD/CAE/CAM системах,поэтому их часто называют также графическими рабочими станциями (рис. 2.8).

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

Рис. 2.8. Графическая рабочая станция

78

2.1. Общие сведения об ЭВМ

Рис. 2.9. Персональная рабочая станция

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

Персональные рабочие станции — графические рабочие станции, выполнен-ные на вычислительной платформе, используемой в персональных ЭВМ, как пра-вило, это платформа WLNTEL. Вычислительная платформа — совокупность цент-рального процессора (в данном случае — микропроцессор фирмы Intel) и ОС (вэтом случае — вариант ОС Windows фирмы Microsoft). Обычно в качестве персо-нальных рабочих станций используются высокопроизводительные персональныеЭВМ, укомплектованные дополнительными периферийными устройствами в за-висимости от назначения станции (рис. 2.9).

Персональные компьютеры (ПК) — компьютеры, предназначенные для ин-дивидуального использования одним пользователем автономно или в сети со-вместно с другими компьютерами. Персональные компьютеры бывают настоль-ные, переносные и карманные. С точки зрения аппаратной и программной со-вместимости большинство современных ПК совместимы с IBM PC.

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

Как правило, конструктивно настольные компьютеры и рабочие станции состо-ят из центральной части — системного блока — монитора, клавиатуры и мыши,подключенных к системному блоку. Конструктивное оформление системного блокаотличается большим разнообразием — от классического горизонтального или вер-тикального до самых экзотических решений дизайнеров (рис. 2.10). В некоторыхмоделях ПК монитор и системный блок совмещены.

79

2. Технические средства компьютерной графики

I':

В "

Рис. 2.10. Настольный компьютер с вертикальным (а) и горизонтальным (б)системным блоком

Переносные (мобильные) персональные компьютеры широко используются на-равне с настольными компьютерами. Современные переносные компьютеры частоназывают ноутбуками (от англ. notebook), или блокнотными компьютерами. Ноут-бук функционально аналогичен настольному ПК и часто не уступает ему по техни-ческим параметрам. В ноутбуках используется такое же ПО и ОС, что и в настоль-ных ПК. Основная особенность ноутбука — возможность автономной работы с пи-танием от встроенного аккумулятора. Это позволяет использовать ноутбук в раз-личных условиях при отсутствии питающей сети. Конструктивно ноутбук содержитжидкокристаллический дисплей, клавиатуру, совмещенную с системным блоком,жесткий диск и оптический дисковод (CD-ROM, CD-RW или комбинированныйDVD+RW). Рядом с клавиатурой размещается манипулятор для управления курсо-ром. Размеры ноутбуков соответствуют портфелю или небольшой сумке.

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

• мультимедийные — отличаются достаточной производительностью ифункциональными возможностями, необходимыми для комфортного решениябольшинства задач мультимедиа: качественное воспроизведение фильмов сDVD с многоканальным звуком; воспроизведение музыки на Hi-Fi уровне; ре-дактирование и монтаж видеофайлов; 3D игры в высоком разрешении; большойэкран с широкими углами обзора (как правило, 17" по диагонали); полный наборкоммуникационных возможностей и интерфейсных портов; удобная полнораз-мерная клавиатура. Их стоимость обычно превышает 2500 долл.;

80

2.1. Общие сведения об ЭВМ

а б

Рис. 2.11. Субноутбук (а) и планшетный ноутбук (б)

• субноутбуки — самые компактные и легкие модели (размеры менее И",вес до 2 кг, диагональ дисплея до 11") с достаточно высокой функционально-стью, предназначенные в первую очередь тем, кто часто путешествует. Субно-утбук может обеспечить неплохую комфортность в работе, однако высокой про-изводительности от подобных компьютеров ожидать не следует. Часто их воз-можности ограничены офисными приложениями, интернет-браузером, почто-вым агентом и прочими не особо требовательными к ресурсам приложениями(рис. 2.11, а). Их стоимость составляет около 2000 долл.;

• планшетные ПК (Tablet PC) — по оснащенности и габаритным размерамблизки к субноутбукам, но оснащены сенсорным экраном, позволяющим вы-полнять различные операции с помощью стилуса или пальца, включая ввод ру-кописного текста и его распознавание. Выпускаются два вида планшетных ПК:чистые планшетные ПК (без клавиатуры) и планшетные ноутбуки (имеющиеобычную клавиатуру и поворотно-откидной сенсорный экран (рис. 2.11, б)).Стоимость планшетных ПК составляет около 2 000 долл.

Карманные (или наладонные) переносные компьютеры (КПК) помещаютсяна ладони или в кармане. КПК также называют наладонники (от англ. —palmtop). Кроме палмтопов существуют карманные компьютеры, которые назы-вают PDA (personal digital assistent). Общее название карманных компьютеров —handhold computers — компьютеры, которые держат в руках (рис. 2.12).

Все карманные компьютеры в зависимости от наличия клавиатуры делятсяна две большие группы: КПК с клавиатурой и КПК без клавиатуры. КПК с кла-виатурой внешне похожи на ноутбук, уменьшенный до карманных размеров.КПК без клавиатуры оснащены сенсорным экраном и информация вводится наэкран при помощи специальной указки — стилуса, при этом может использо-ваться экранная клавиатура или написание символов стилусом непосредственнона экране. Стоимость карманных ПК колеблется от 300 до 1000 долл.

В карманных компьютерах программы хранятся в микросхемах энергонеза-висимой памяти. В набор программ обычно входит ОС, текстовый и графиче-ский редакторы, система баз данных и электронные таблицы, программы для

81

2. Технические средства компьютерной графики

"Ухноо!

! si i

F-'.̂ -^o- Jа б в

Рис. 2.12. Карманные компьютеры:

а — палмтоп; б — Pocket PC; в — PDA

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

Карманные компьютеры в зависимости от используемой ОС также делятсяна две группы — Palm OS и Windows Mobile. Причем в отличие от настольныхкомпьютеров и ноутбуков конструкция КПК сильно связана с типом ОС и заме-на типа ОС для КПК возможна только теоретически. ОС Palm OS разработанаспециально для КПК и не предъявляет особых требований к их ресурсам. ОСWindows Mobile разработана фирмой Microsoft и хорошо интегрирована с ОСMicrosoft для настольных компьютеров, что расширяет функциональные воз-можности КПК, однако при этом возрастают требования к ресурсам КПК.

Из всех перечисленных классов в России наибольшее распространение по-лучили персональные ЭВМ, персональные рабочие станции и ноутбуки. Причемуказанные классы ЭВМ базируются на процессорах семейства х86 фирмы Intel.Другие классы ЭВМ в России широкого применения не нашли. В связи с выше-сказанным в дальнейшем основное внимание будет уделяться аппаратным сред-ствам ЭВМ на платформе IBM PC с процессорами, совместимыми с архитекту-рой х86 фирмы Intel, относящимися к трем распространенным классам.

Каждая ВС обладает определенными функциональными возможностями об-работки ГИ. Все возможности ВС реализуются совместно программными и аппа-ратными средствами и должны органично сочетаться с возможностями пользова-теля ЭВМ. Разделение функций между аппаратными и программными средстваминаправлено на повышение эффективности ВС при решении различных задач.Степень разделения функций между аппаратными и программными средствамизависит от уровня развития микроэлектроники и вычислительной техники.

Программные средства дешевы, гибки и доступны, аппаратные средствасложнее в реализации и специализированы. Соотношение по стоимостным за-тратам между аппаратными и программными средствами постоянно изменяется

82

3. Математические модели геометрических объектов

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

Самый общий подход к моделированию состоит в представлении трехмер-ных тел в виде совокупности ограничивающих поверхностей, ребер и вершин.Каждая граничная оболочка представляет собой множество соединенных друг сдругом поверхностей произвольной формы и включает в себя полное описаниесвоих границ и связей с соседними фрагментами. Этот способ описания объек-тов называется граничным представлением, в англоязычной литературе и в ин-терактивных руководствах многих пакетов машинной графики он называетсяBoundary Representation, или В-rep. Представление тел с помощью границ позво-ляет моделировать трехмерные объекты самой сложной геометрии. Оно допус-кает множество формообразующих операций над телами, сохраняя при этомединый способ описания их внутреннего устройства.

3.4.2. Регулярные булевские операции

Пусть разработан эффективный способ описания геометрии объемных тел.Отвлечемся от технических деталей такого описания и будем опираться на гипо-тезу о его существовании. Из исходных простых геометрических форм можнопостроить более сложные производные объекты. Существует множество спосо-бов формообразования, основанных на комбинации геометрических операндов,но самой естественной техникой такого вида являются булевские операции.Операции сложения, вычитания и пересечения (рис. 3.37) являются обязатель-ными в любой развитой системе геометрического моделирования. Иногда в ихсостав включают некоторые дополнительные способы синтеза, которые не обла-дают общностью трех перечисленных.

Если обычные булевские операции применить к объемным телам, то в резуль-тате можно получить объект с иной размерностью: поверхность, линию или даже

//

/

//

//

/ /

/

/А/

/У//

а б в

Рис. 3.37. Булевские операции на примере двух кубов:

a — A U В; б — Л ( 1 В ; в - А-В

232

3.4. Твердотельное моделирование

Г 7 /

/

/

/

/

/

/

Рис. 3.38. Варианты операции булевского пересечения

точку. Справедливость этого тезиса подтверждает пример, приведенный на рис. 3.38,где показаны различные варианты пересечения двух кубических объемных тел.

Вместо обычных булевских операций будем использовать так называемыерегулярные операции, которые обозначим привычными символами, но с добав-лением верхнего индекса — звездочки (U*, Г)*, - * ) . Регулярные операции, буду-чи примененными к объемным операндам, всегда дают геометрическое тело,обладающее объемом, например на рис. 3.38 регулярное пересечение дает не-пустой результат только в первом варианте.

Чтобы глубже исследовать разницу между обычными и регулярными булев-скими операциями, рассмотрим объект, определенный как множество точек,которые разделены на внутренние и граничные. Граничными называются точки,имеющие нулевое расстояние до объекта и его дополнения. Множество гранич-ных точек не всегда принадлежит самому объекту. Замкнутые объекты включа-ют в себя границу, а открытые — нет. Объединение множества внутренних то-чек объекта и его границы обычно называется операцией замыкания. Регуляри-зацией множества называется замыкание множества внутренних точек. Множе-ство, которое эквивалентно само себе после выполнения операции регуляриза-ции, называется регулярным.

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

Рис. 3.39. Регуляризация объекта:

а — исходное состояние множества; б — множество после операции замыкания;в — внутренняя область множества; г — регуляризованное множество

233

3. Математические модели геометрических объектов

точку. Черная точка внутри объекта представляет собой границу, которая непринадлежит самой фигуре.

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

На рис. 3.39, в изображены все внутренние точки объекта, иными словами,он представлен как открытое множество точек. Чтобы получить внутренниеточки, следует отбросить все висячие и несвязные фрагменты.

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

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

Регулярные операции можно сформулировать в терминах обычных булев-ских операций:

A U* В = closure(interior(A U В);

А П* В = closure(interior(A П В);

А -* В = closure(interior(A - В).

Регулярные операции над регулярными операндами всегда дают регуляр-ные множества.

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

Рассмотрим более подробно разницу между двумя типами операций на при-мере объектов, изображенных на рис. 3.40.

На рис. 3.40, а показаны два исходных объекта, которые являются операн-дами для обычного (рис. 3.40, б) и регулярного (рис. 3.40, в) булевского пересе-

А

а б в

Рис. 3.40. Булевское пересечение:

а — исходное состояние операндов; б — булевское пересечение;в — регулярное булевское пересечение

234

3. Математические модели геометрических объектов

иЛ

А в а

L.е ж з и к

Рис. 3.41. Обычные булевские операции над элементами объектов:а — операнды А и В; б — А, П В,; в — А,• - В; г — В,• - А; д — АЬС\ Bt;e — Вй Л А,; дас — Аь-В\

В табл. 3.2 приведены правила сведения регулярных операций к обычным.На рис. 3.41 на примере простейших форм показаны схемы этих операций. Буква-ми А и В обозначены операнды, нижние индексы / и Ъ означают соответственновнутренние и граничные области, #(АЬ П Bh) — часть общей границы объектов Аи В, относительно которой At и В,- лежат по одну сторону, наконец, ~(АЬ П Вь)означает часть общей границы, где А и В лежат по разные стороны. Каждая ре-гулярная булевская операция сводится к набору обычных операций, которые втабл. 3.2 отмечены знаком «+».

Для всех регулярных операций каждый фрагмент результирующей границы при-надлежит либо одному, или обоим операндам. Для операций А<и* ВиАП* В норма-ли к граням результирующего объекта наследуют свое положение от одного или обо-их операндов. Для операции А -* В действует иное правило. Нормали граней резуль-тирующего тела, которое получено вычитанием В из А, имеют противоположноенаправление нормалям соответствующих граней В. Это следует из тождестваА -* В = А Г\* В, где В — дополнение В. Тело В может быть получено допол-нением внутренней части тела В с последующим обращением нормалей границы.

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

3.4.3. Параметрическое моделирование геометрии

Во многих отраслях техники сложный объект или система рассматривается каксочетание некоторого набора стандартных элементов. Очевидные преимущества

236

3.4. Твердотельное моделирование

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

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

Примером сложного параметризованного примитива является зубчатое ко-лесо, которое описывается набором из четырех геометрических и конструктив-ных параметров (рис. 3.42).

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

Рис. 3. 42. Параметризованное зубчатое колесо:

а — диаметр — 40, толщина — 10, отверстие — 10, число зубьев — 10;б — диаметр — 60, толщина — 20, отверстие — 15, число зубьев — 16

237

3. Математические модели геометрических объектов

3.4.4. Заметание

Заметанием (sweeping) называется способ формообразования при помощи дви-жения объекта по некоторой траектории или согласно некоторому заданному закону.Это очень продуктивный метод, позволяющий получать трехмерные тела, которые струдом воспроизводятся с помощью иных способов геометрического синтеза. Про-стейший пример этого метода генерации форм дает движение замкнутой двухмер-ной кривой вдоль прямолинейной траектории. Во многих пакетах машинной гра-фики данный метод формообразования называют экструдированием (extrude). Экс-грудирование позволяет получить множество трехмерных форм, описывающихмашиностроительные детали, элементы архитектурных конструкций, предметы ин-терьера и т. п.

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

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

Таким образом, если выбрать образующую, направляющую и закон движения,то множество точек пространства, которое заметет первый объект при смещении повторому, полностью определяет новое, в общем случае трехмерное тело. На рис. 3.43

Л

Рис. 3.43. Примеры кривых и трехмерных форм,порожденных их движением в пространстве

238

3.4. Твердотельное моделирование

показаны примеры кривых и трехмерных тел, которые они порождают своимдвижением вдоль различных траекторий.

Чтобы получить трехмерную форму методом заметания, необязательно сме-щать двухмерное сечение, в некоторых случаях намного удобнее в качествеобразующей использовать некоторый трехмерный объект. Этот метод формооб-разования используется при программировании металлообрабатывающих сис-тем с числовым программным управлением и в системах управления роботами иробототехническими комплексами.

Следует отметить, что рассмотренный метод формообразования можетиметь различные наименования в системах геометрического моделирования илитературе по КГ. Например, в популярной системе трехмерной графики 3Ds Maxзаметание называется Loft, в описаниях пакета на русском языке его именуютлофтингом. Заметание вращением (rotational sweeping) называется Lathe. Суще-ствуют и другие терминологические варианты, получившие распространение вкругах пользователей определенных пакетов трехмерной графики или системавтоматизированного проектирования.

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

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

Формообразование можно существенно расширить, если допустить исполь-зование нескольких образующих, связанных с одной траекторией. На рис. 3.45

Рис. 3.44. Объединение двух трехмерных объектов, созданных экс-трудированием треугольников, не может быть получено заметанием

239

3. Математические модели геометрических объектов

Рис. 3.45. Заметание с тремя образующими

показан пример трехмерного тела, полученного движением трех образующихвдоль одной кривой.

В некоторых пакетах машинной графики этот способ формообразованиясчитается самостоятельным и называется скиннингом (skinning).

3.4.5. Граничное представление

Граничным представлением (Boundary Representation, B-rep) называетсяописание пространственных тел в терминах границ и их элементов. Это один изсамых простых, выразительных и хорошо изученных способов определениятрехмерной геометрии.

В описании границы тела участвуют объекты с интуитивно -понятным гео-метрическим содержанием: вершины, ребра, грани и оболочки. Рассмотрим под-робнее топологические свойства граничных составляющих.

Оболочки тела должны обладать свойством однородности — это значит, чтовсе они должны быть описаны по единым правилам. Так, согласно этому прин-ципу, не разрешается смешивать в одном описании явные и неявные моделиграничных оболочек. Оболочки могут состоять из нескольких граней. Каждаягрань представляет собой фрагмент некоторой поверхности с данными о связяхс соседними гранями и ориентации относительно внутреннего объема тела.

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

240

3.4. Твердотельное моделирование

располагаются внутри внешней. Оболочки любого типа не должны иметь пере-сечений друг с другом и самопересечений.

Во многих операциях автоматизированного конструирования и технологи-ческой подготовки производства важно различать внутренние и внешние точкидеталей и узлов. Поэтому граничные оболочки считаются ориентированными,одна сторона их обращена внутрь тела, другая — наружу. Чтобы сделать ориен-тацию определенной каждой точке границы приписывается нормаль, котораянаправлена от оболочки в наружном направлении. Это соглашение представля-ется совершенно ясным для внешних оболочек, некоторые противоречия с гео-метрической интуицией могут возникать с нормалями внутренних фрагментовграницы, которые имеют нормали, направленные внутрь ограничиваемой частипространства. Можно считать, что внутренние оболочки тела ведут себя как вы-вернутые наизнанку внешние.

Таким образом, для точного математического описания трехмерного телатребуется задать внешнюю оболочку и в зависимости от связности объекта однуили несколько внутренних оболочек.

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

На рис. 3.46 изображены образцы тел. Две призмы, показанные на рис 3.46, б,соединены по одному ребру. Если взять любую точку на этом ребре и проанали-зировать ее окрестность, то можно заметить ее коренное топологическое отли-чие от двухмерного диска. Примеры объектов, не относящихся к классу много-образий: соединение трехмерного тела с отдельным ребром; два многообразия,имеющие только одну общую вершину; трехмерное тело с внутренними пере-борками.

а б

Рис. 3.46. Форма многообразного тела (а) и не многообразного тела (б)

241

3. Математические модели геометрических объектов

Структура полуребер

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

Более того, для каждой грани создается указатель на первое ребро списка, ав описании ребра создаются указатели на предыдущее и последующие ребра.Пример такой организации данных в виде двухсвязного списка ребер грани F\показан на рис. 3.51.

Двухсвязный список позволяет использовать простой способ восстановле-ния всей границы по любому предъявленному ребру. Для этого достаточнопройти весь граничный цикл, двигаясь по указателям. Если принять эту формухранения для всех граней в виде двухсвязного списка, то появятся проблемы,связанные с целостностью представления всей оболочки. Пусть грань F2 пред-ставлена списком со входом в Е2 (рис. 3.52). Очевидно, что упорядоченность ре-бер этого списка противоречит системе указателей списка, задающего грань F\.Общее для граней F\ и F2 ребро Е6 (см. рис. 3.49) получает различную ориента-цию в списках обеих граней. Для разрешения этого противоречия можно разде-лить каждое ребро пополам и использовать половинки в описаниях тех граней, ккоторым они относятся. Частям одного ребра приписывается противоположнаяориентация, а описание граней представляет собой двухсвязный список полуре-бер. Элементы списочного описания грани связываются ссылками таким обра-зом, что направление обхода каждого из них согласуется с направлением обходаграни (против часовой стрелки, если смотреть снаружи тела).

Fi

Е5\

Е6

Щ-

F2

fnE7

E1 4_JJРис. 3.51. Двухсвязный список ребер

грани FjРис. 3.52. Двухсвязный список ребер

грани F2

246

3.4. Твердотельное моделирование

h9 1

hu

-г-

Fi

hA 1

hu

A14

Рис. 3.53. Полуребра простого полиэдра Рис. 3.54. Двухсвязные списки полуреберграней F\ и F2

Пример разбиения ребер на полуребра показан на рис. 3.53. Здесь представ-лены только две грани простого полиэдра, полное изображение которого данорис. 3.49. На рис. 3.54 изображены две списочные структуры, которые задаютграницы граней Fy и F2.

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

На рис. 3.55 приведен пример трехсвязной грани с разметкой полуребер, ана рис. 3.56 изображена списочная структура этого объекта. Из рис. 3.53 и 3.54следует, что при этом способе организации данных грань ссылается на списокполуребер косвенно, через двухсвязный список циклов. Входом этого спискаслужит обычно внешний цикл грани.

Последовательность перечисления полуре-бер в списках зависит от принятой ориентациициклов. Считается, что ребра внешнего циклаориентированы против часовой стрелки, а ребравсех внутренних — по часовой, если смотретьна грань с внешней стороны тела (см. рис. 3.55).Это соглашение об ориентации сохраняет внут-реннюю часть грани по одну сторону от грани-цы. Внутренние точки грани всегда лежат полевую сторону при обходе циклов в выбранном Рис. 3.55. Пример многосвязнойнаправлении. грани

247

3. Математические модели геометрических объектов

Е 41

\А, \

hi

hi

hA

h5

fil \he

\

hn

hn

hi

—1

Рис. 3.56. Списочная структураграни с отверстием

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

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

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

Рассмотрим способ определения мно-жества ребер, исходящих из вершины V\, напримере простого многогранника, показан-ного на рис. 3.57.

Если вершина V\ является начальной вершиной (это справедливо для приве-денного примера), то выбирается полуребро prev hu предшествующее h\. Егородительское ребро представляет собой один из искомых объектов, соединен-ных с V\. После этой операции вместо ребра hi рассматривается сопряженноеему полуребро (обозначим его new hi), и первый шаг алгоритма повторяется за-ново. Если Vi является конечной вершиной для h\, то выбирается полуребро,следующее за /гь а его родитель включается в число смежных ребер. Далее вме-сто h] рассматривается полуребро, сопряженное со следующим за Ьь и перваяоперация повторяется с полуребром new hi. Процедура повторяется до тех пор,пока не будет достигнуто полуребро, сопряженное со стартовым hi.

Структура крыльевых ребер

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

Рис. 3.57. Генерация данныхо смежности ребер и вершин

248

3.4. Твердотельное моделирование

Рис. 3.58. Фрагмент много-угольника и ссылки струк-туры крыльевых ребер

структуре полуребер данных требует значительных Авычислительных ресурсов. Известно несколько более /эффективных подходов к описанию оболочек. Самымраспространенным из них является подход Бомгарта(Baumgart), основанный на применении так называе-мых крыльевых ребер (winged edges). Сердцевинойэтой структуры данных служит описание ребер, а неграней, как это принято в структуре полуребер. Каждоеребро представляется системой ссылок на связанные сданным ребром объекты многоугольника. В эту систе-му входят ссылки на две граничные вершины, на двеграни, пересечение которых образует данное ребро, ичетыре ребра, исходящих из граничных вершин.

Фрагмент многоугольника на рис. 3.58 иллюст-рирует структуру данных крыльевых ребер. На ри-сунке в виде стрелок показаны все восемь ссылокребра Ei.

Чтобы обеспечить более эффективное решение наиболее востребованных то-пологических задач, структура данных пополняется дополнительными ссылками:

• каждая вершина получает обратную ссылку на одно из ребер, исходящихиз нее;

• каждая грань снабжается ссылкой на одно из граничных ребер.При любом направлении обхода соседних граней (например, по часовой

стрелке) вершины, принадлежащие общей грани, будут упорядочены в последо-вательности пройденных вершин в противоположном порядке. Пусть гранич-ными вершинами некоторого ребра, общего для двух граней, являются вершиныпир. Грань называют р-гранью, если при обходе ее границы по часовой стрелкевершина р встречается в перечислении вершин позже (стоит правее) вершины п.Грань называется n-гранью в противном случае.

Пусть граничная вершина V\ ребра Ех (см. рис. 3.58) есть п, а вершина V2 — р.Тогда, согласно введенной классификации, для ребра Et грань Fi есть р-грань, агрань F2 — тг-грань. Используя заданную классификацию, можно ввести четкоеразличение четырех смежных ребер (Е2, Е3, Е4, Е5), на которые ссылается основ-ное ребро (Ei). Два ребра, инцидентные вершине п, назовем и-ребрами. В нашемслучае (см. рис. 3.58) это ребра Е2, Е$. При обходе граней по часовой стрелке ониявляются последующими для и-грани и предыдущими для р-грани. Ребра, свя-занные с вершиной р, будем называть р-ребрами. В нашем случае это Е4, Е5. Посравнению с n-вершинами они демонстрируют прямо противоположные свойст-ва. При фиксированном направлении обхода они являются последующими дляр-грани и предыдущими для и-грани. Эти четыре ребра называют крыльями(wings), от них и пошло название всей структуры данных.

Описанная структура данных предназначена для хранения данных об оболоч-ках, состоящих из односвязных граней. Существует несколько модификаций этой

249

3. Математические модели геометрических объектов

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

Пример такого представления иллюстрируютрис. 3.59 и 3.60. На рис. 3.59 показана грань с отвер-стиями, а на рис. 3.60 представлена списочная струк-тура, которая задает топологию этой грани.

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

Рис. 3.59. Грань с не-сколькими отверстиями

Булевские операции в системе В-гер

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

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

Существует условие, которое немного огра-ничивает разнообразие синтезируемых форм, ногарантирует их высокую «технологичность». Этодополнительное условие называется регуляриза-цией, его формулировка и основные свойства Рис. 3.60. Списочная структура,подробно рассмотрены в начале главы. Способ задающая грань с отверстиями

250

3. Математические модели геометрических объектов

Техника булевского объединения

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

Операцию можно разбить на три этапа. Первый этап состоит в получениилиний пересечения граничных оболочек двух тел. По этим линиям строят новыеребра, которые будем называть ребрами пересечения. На втором этапе ищутточки пересечения новых ребер со старыми ребрами, присутствовавшими в опи-сании границ операндов до операции. Эти ребра разрежем на части по всем но-вым вершинам. Третий этап заключается в перестройке граничных циклов пере-секающихся граней. Рассмотрим содержание этапов более подробно.

Первый этап операции булевского объединения начинается с поиска линий пе-ресечения каждой грани первого тела с каждой гранью второго тела, если таковые(линии) имеются. Технически этот шаг реализуется при помощи хорошо известногоалгоритма поиска линии пересечения двух поверхностей, который рассмотрен вгл. 4, посвященной алгоритмическому обеспечению КГ.

Пусть построены искомые линии пересечения. На их базе создадим ребрапересечения. Всем новым ребрам припишем направление, которое совпадает сориентацией векторного произведения нормали грани первого тела с нормальюграни второго тела. Будем считать положительной ориентацию нормали, на-правленной наружу тела (рис. 3.61). Ребра пересечения должны целиком лежатьвнутри граничных циклов исходных тел. Они могут соединяться со старой гра-ницей только своими концевыми вершинами. Это условие, примененное к при-меру, показанному на рис. 3.61, требует разделения ребер старой границы на двечасти в точках А, В и С.

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

Рис. 3.61. Нормали граней и направления ребер пересечения

252

3.4. Твердотельное моделирование

выполняется посредством рассечения кривых, которые являются носителямиребер. Из одной кривой получим две кривые, которые при соединении образуютисходную кривую. Одна из этих кривых останется геометрическим носителемразрезаемого ребра, а на базе второй построим новое ребро, которое наследуетсвойства исходного ребра. Граничные ребра строятся на основе кривой пересе-чения двух поверхностей. Рассечению подлежат два экземпляра этой двухмер-ной кривой, лежащие на разных поверхностях.

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

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

Третий этап является заключительным в операции построения булевскогообъединения. Его цель состоит в разрезании граней и перестройке граничныхциклов в соответствии с новой структурой граничных ребер.

На рис. 3.62 показаны грани двух пересекающихся тел, представленных нарис. 3.61. Тонкими линиями со стрелками изображены направления граничныхциклов исходных граней, толстыми линиями со стрелками — ребра разрезания.Требуется перестроить граничные циклы таким образом, чтобы учесть новуюситуацию, созданную разрезанием. На рис. 3.63 показаны части граней, которыевойдут в результирующее объединение. Как и ранее, тонкие линии со стрелками

Рис. 3.62. Грани тел до разрезания

253