ТРЕХМЕРНАЯ ГРАФИКА
Любой человек, хоть немного работающий за компьютером, так или иначе сталкивается с трехмерной графикой. Многие попросту не обращают на это внимания - наличие целого ряда красивых элементов оформления и анимированных сцен давно считается нормой практически во всех коммерческих программных пакетах, приложениях Интернета, презентациях и рекламных роликах.
Трехмерная графика - раздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), предназначенных для изображения объемных объектов на плоском экране. ЗО-графика - это создание объемной компьютерной модели на основе чертежей, рисунков, подробных описаний или любой другой графический, текстовой или цифровой информации. ЗО-графика -это возможность посмотреть на объект со всех сторон (сверху, снизу, сбоку), встроить на любую плоскость и в любое окружение.
За кулисами ЗО-графики спрятан очень серьезный математический аппарат, «производящий» трехмерные изображения. Математические зависимости, описывающие формирование цифровой модели реальных объектов, а также алгоритмы для просчета освещения трехмерных сцен (областей виртуального пространства, содержащих трехмерные объекты и источники света), разработаны еще в 60-х годах прошлого века. Но слабые возможности аппаратного обеспечения в ту пору не позволяли создавать даже совсем несложные ЗО-изображения.
Первые компьютерные программы, формирующие простенькие трехмерные модели на основе эскизов, были созданы в университете города Юты (США) студентами Иваном Сазерлендом и Дэвидом Эвансом. Начиная с середины 70-х годов, их последователи Эд Кат-мулл, Джим Блинн, Би Тюн Фонг продолжили развивать технологии работы с ЗЭ-графикой и анимацией. Поначалу исследования носили сугубо научный характер, так как мало кто воспринимал всерьез студенческие и аспирантские работы по формированию объемных изображений на экране компьютера. Но, как оказалось, фундаментальные исследования, проведенные в этот период, стали началом развития мощнейшей технологии, которая коренным образом изменила представление о возможностях применения компьютерной техники.
Со временем геометрические формы создаваемых на экране моделей все более и более усложнялись - наряду с простыми геометрическими примитивами и их комбинациями (куб, сфера, тор, различные тела, описываемые несложными алгебраическими уравнениями) появилась возможность поверхностного моделирования, что стало большим шагом вперед и позволило создавать модели любой формы, включая живые организмы: людей, растения и т. п.
Кроме собственно математического описания геометрии модели, которое бы максимально отвечало форме моделируемого и отображаемого объекта, требовалось его хорошее визуальное представление. И здесь очень кстати пришлись достижения ученых-физиков, занимающихся оптикой и различными формами излучения. Результаты их работ, касающиеся преломления, отражения, поглощения световых лучей, были положены в основу различных методов формирования реалистического изображения на компьютерном экране.
Большинство приложений трехмерной графики, в том числе игр, при построении объемных сцен придерживаются определенной последовательности действий, в совокупности составляющей так называемый ЗО-конвейер, конечным итогом работы которого является кадр, размещенный на экране монитора. Группу операций, выполняющих обособленные промежуточные действия, принято называть этапом, или стадией, ЗО-конвейера. Кратко охарактеризуем этапы формирования объемного изображения на плоском мониторе.
Сначала определяется состояние объектов, принимающих участие в сцене, которую необходимо отобразить. С каждым объектом в сцене связана соответствующая текущему моменту его геометрическая модель. Построение геометрической модели поверхности объекта осуществляется путем задания трехмерных координат его опорных точек и уравнений соединяющих их линий. Полученная геометрическая модель представляет собой так называемую каркасную модель объекта (wireframe).
С точки зрения компьютера трехмерные объекты - это лишь пустотелые, не имеющие физической толщины оболочки. Чтобы описать объекты достаточно детально, производится декомпозиция геометрических моделей - внешний вид объекта формируется с помощью набора определенных примитивов. Чаще всего в роли примитива выступает треугольник как простейшая плоская фигура, однозначно располагаемая в трехмерном пространстве. Разбиение поверхности объекта на элементарные плоские элементы называют тесселяцией ^еязеЫюп) или триангуляцией. Пример того, как при этом может быть представлено лицо человека, показан на рис. 6.1. Поверхность объекта воспроизводится точнее при увеличении числа и уменьшении размеров многоугольников.
Таким образом, все элементы объемного изображения состоят из таких треугольников. Ключевым критерием реалистичности сцены является качество представленных в ней моделей. Качество отображения, близкое к фотореализму, возможно при наличии в сцене 500 000 и более треугольников.

Рис. 6.1. Проведение тесселяции объекта с помощью различного числа
треугольников
Моделирование движения объекта (перемещение, изменение размеров и формы) - трансформация (transformation) - сводится к преобразованию координат вершин отдельных граней треугольников и реализуется путем выполнения множества различных алгебраических операций с использованием тригонометрических функций. Нетрудно представить, насколько огромен объем информации и расчетов, необходимых при этом. Можно судить и о том, насколько высокие требования предъявляются к вычислительным ресурсам ПК. При наличии полумиллиона треугольников в сцене общий объем данных составит около 90 Мбайт. Приемлемая минимальная скорость смены кадров - примерно 30 в секунду, т. е. общий поток обрабатываемых данных превысит 2,5 Гбайт/с. Для того чтобы справляться с таким потоком, функции по его обработке разделяются между центральным процессором компьютера и специализированным процессором видеоадаптера, в котором многие действия выполняются на аппаратном уровне.
Следующий этап формирования трехмерного изображения заключается в проецировании сцены на экран компьютера с учетом освещенности, материалов объектов сцены и определенной точки взгляда. Этот этап называется рендерингом (от англ, render - превращать, переводить), или визуализацией. Суть в том, что в памяти компьютера сцена сохраняется в пространственном виде, и для создания плоского изображения графической станции нужно рассчитать интенсивность освещения в каждой точке формируемого рисунка (в каждом пикселе экрана). При наличии в сцене большого количества источников света, сложных по форме объектов, по-разному отбивающих, преломляющих или поглощающих свет, такие расчеты способны занять очень много времени даже на весьма производительной машине. До этого процессор пока «ничего не знал» о свойствах треугольников и обрабатывал вершины треугольников по отдельности. Теперь необходимо преобразовать результаты расчетов в координаты и цвет каждого пиксела на дисплее, а также отсечь невидимые области.
Очень важным этапом визуализации является текстурирование (Texture Mapping), т. е. процесс наложения текстур на модели для получения реалистичной поверхности объекта. Текстура (texture) - это элемент обшивки объекта, изображение участка его поверхности. Текстурой, например, может быть изображение волокон дерева, наложенное на грани объекта, моделирующего деревянную доску. Для отражения эффекта степени удаленности объекта в памяти ПК хранятся несколько копий одной и той же текстуры, но с различным разрешением (level of defalcation - уровень детализации). После наложения текстуры каркасная модель как бы покрывается своеобразным покрытием - текстурой и становится похожей на реальный объект.
На заключительный этапах на основе информации о взаимной прозрачности объектов и среды осуществляется моделирование эф-фсктов прозрачности и полупрозрачное™, заключающееся в коррекции цвета пикселей - так называемое альфа-смешение (alpha-blending) и затуманивание (fogging). Проводится коррекция дефектов изображения путем сглаживания - антиалиасинг (anti-aliasing). Антиалиасинг применяется для устранения дефектов изображения типа «лестничного» эффекта на наклонных линиях, муара. И наконец изображение появляется на экране.
Перечисленные этапы в конкретных случаях могут быть переставлены, разделены, объединены, выполняться неоднократно (в несколько проходов), однако их физический смысл остается неизменным. Технологически некоторые элементы этапов или этапы целиком могут быть выполнены различными способами. Вариант реализации зависит от особенностей приложения и видеокарты ПК.
В зависимости от типа видеоадаптера часть этапов просчитывается программно, а часть - аппаратно. Самые современные видеокарты имеют графический процессор (ускоритель или акселератор), способный аппаратно просчитывать этапы трансформации (преобразований), расчета освещения, наложения текстур.
Скорость и качество обработки трехмерной сцены во многом зависят от совершенства интерфейсных инструкций, передаваемых приложением графическому ускорителю.
Программным интерфейсом для ЗО-ускорителей служит так называемый интерфейс прикладного программирования (application program interface - API). API состоит из функций, управляющих ЗО-конвейером, и занимает промежуточное положение между высокоуровневыми прикладными программами и низкоуровневыми командами различных ЗО-акселераторов, обеспечивает эффективное преобразование запросов прикладной программы в оптимизированную последовательность низкоуровневых команд. Благодаря API разработчики прикладных программ избавлены от необходимости работать с низкоуровневыми командами акселератора.
В настоящее время существуют несколько платформ API, отличающихся областями применения.
Наиболее известной является платформа DirectX. Она разработана фирмой «Microsoft», используется в игровых приложениях, работающих под управлением операционной системы Windows и включает несколько узконаправленных API:
- • DirectDraw обеспечивает использование аппаратных средств ускорения обычной, двухмерной графики;
- • Direct3D отвечает за работу графической системы в режиме создания трехмерных изображений;
- • Directlnput обеспечивает аппаратно независимый ввод информации в ПК через клавиатуру, мышь и джойстик;
- • DirectPlay используется при совместной игре на нескольких компьютерах, объединенных в сеть или соединенных непосредственно, через параллельный или последовательный порты;
- • DirectSound управляет использованием ресурсов звуковой системы ПК.
В архитектуре Direct3D заложен принцип проверки функциональных возможностей установленного аппаратного обеспечения. В соответствии с этим принципом прикладная программа сначала запрашивает Direct3D-coBMecTHMbm драйвер об аппаратно поддерживаемых данным акселератором ЗО-функциях, а затем в зависимости от ответа активизирует поддерживаемые функции.
DirectX является жестко регламентированным, закрытым стандартом, который не допускает изменений до выхода в свет своей новой версии.
Другой API-платформой является OpenGL. Она используется в основном в профессиональных приложениях (CAD, системы трехмерного моделирования, симуляторы и т. п.). Вместе с тем существуют и игры, ориентированные на OpenGL, например Quake.
Принципиальным отличием API OpenGL от DirectX является то, что OpenGL ориентирован на корректность создаваемых изображений, тогда как для DirectX важны скорость прорисовки и естественность изображения.
Для настройки видеосистемы с целью обеспечения максимальной производительности при работе с трехмерной графикой пользователь ПК должен:
- • при выборе ЗО-платы четко представить область ее будущего применения: игры или решение профессиональных задач;
- • установить в систему требуемый API;
- • проконтролировать настройку параметров драйвера и/или прикладной программы, задействовав необходимые функции 3D-акселерации;
- • используя тесты и оценивая качество изображения визуально, подобрать набор функций, обеспечивающих наилучшее качество изображения.
При работе с программами, ориентированными на DirectX, пользователь не выполняет перечисленные выше настройки, поскольку они производятся автоматически.
Применение трехмерной графики. На сегодняшний день использование трехмерной графики вышло уже далеко за пределы сферы традиционных информационных технологий.
Кинематограф, компьютерные игры, архитектура и строительство, машиностроение - это далеко не полный перечень областей, в которые глубоко проникла ЗО-индустрия. Некоторые отрасли человеческой деятельности (как, например, дизайн, мультипликация, игры) уже просто невозможно представить без реалистичных ЗО-изображений или анимации.
Несмотря ни на большую стоимость первых систем для трехмерного моделирования, ни на чудовищные по тем временам требования к аппаратному обеспечению, трехмерную графику с самых ранних этапов ее развития стали использовать для дизайна и анимации.
Дизайн (от англ, design - проектировать, чертить, задумывать) -это вид деятельности, связанный с проектированием предметного мира. Дизайн часто еще называют художественным конструированием. Специалисты по дизайну разрабатывают образцы рационального построения предметной среды (зданий, изделий, интерьеров и пр.), изучают эстетические свойства изделий и т. и.
Работа дизайнера невозможна без графического представления его идей. В давние времена, когда о трехмерной графике никто еще и не мечтал, дизайнерам приходилось вручную набрасывать эскизы своих проектов, а потом разрисовывать их, чтобы придать им максимальную реалистичность. Для особо сложных проектов иногда делались специальные макеты. Но даже самый лучший макет лишь отдаленно напоминал проектируемый объект, поскольку не учитывал таких существенных особенностей, как освещение, материалы и окружение в реальных условиях. И после всех выполненных работ заказчик мог получить не совсем то, что ему предлагалось. Сегодня же с появлением компьютерного трехмерного моделирования стало возможным создать объемное изображение спроектированного объекта. Оно отличается фотографической точностью и позволяет лучше представить себе, как будет выглядеть проект, воплощенный в жизни, внести определенные коррективы. ЗО-модель обычно производит гораздо большее впечатление, чем все остальные способы презентации будущего проекта.
Кроме того, дизайнер может добавлять и манипулировать в сцене различными эффектами окружающей среды (туман, объемный свет), эмулировать потоки частиц, огонь, жидкость и много чего другого, что впоследствии позволит достичь большей естественности изображения.
Таким образом, трехмерные модели очень широко используются в демонстрационных целях. Они незаменимы для презентаций, выставок, а также используются в работе с клиентами. Кроме того, мето-
ды трехмерного моделирования нужны там, где важно показать в объеме уже готовые объекты или те объекты, которые существовали когда-то давно. Трехмерное моделирование это не только будущее, но и прошлое и настоящее.
Технологии ЗБ-анимации давно взяли на вооружение кинокомпании, с каждым годом все активнее и активнее используя их при создании новых фильмов. Без применения трехмерного моделирования не обходится создание ни одного блокбастера (вспомните фильмы «Матрица», «Парк юрского периода», «Годзилла», «Люди в черном», «Пятый элемент» и многие другие).
ЗБ-графика поможет в случаях, когда требуется встроить воображаемую сцену в изображение реального мира не только в кино. Такая ситуация типична для задач архитектурного проектирования. В данном случае ЗБ-графика устраняет необходимость создания макета и обеспечивает гибкие возможности синтеза изображения сцены для любых погодных условий и под любым углом зрения.
Можно представить и иную ситуацию: не воображаемый объект встраивается в реальный фон, а, наоборот, изображение реального объекта встраивается в трехмерную сцену как ее составная часть. Такой способ использования ЗБ-графики применяют, например, для создания виртуальных выставочных залов или галерей, по стенам которых развешаны изображения реальных картин.
Компьютерные игры - одна из наиболее широких и испытанных областей применения ЗБ-графики. По мере совершенствования программных средств моделирования трехмерной графики, роста производительности и увеличения ресурсов памяти компьютеров виртуальные трехмерный миры становятся все более сложными и похожими на реальную действительность.
Следом за дизайном трехмерная графика незаметно проникла и в инженерное проектирование. Исторически сложилось так, что сфера промышленного проектирования жестко скована требованиями стандартов, а сами эти стандарты касаются лишь плоского черчения. Поэтому переход на трехмерное моделирование в машиностроении или строительстве не был безболезненным. Однако богатство возможностей по созданию моделей сложных форм, легкость в проектировании и планировке, намного более широкие возможности для выявления ошибок на этапе проектирования, а самое главное - более наглядное представление объекта проектирования сделали свое дело.
Этот вид компьютерной графики обладает большими возможностями для поддержки технического черчения. С помощью графических редакторов трехмерной компьютерной графики, можно выполнять наглядные изображения деталей и изделий машиностроения, а также выполнять макетирование архитектурных объектов. Наряду с этим может быть осуществлено графическое построение аксонометрических и ортогональных проекций, разрезов по любым плоскостям.
Инженерная анимация теперь тоже очень распространенное явление. Она позволяет показать заказчику изделие еще до его появления на свет, дает возможность имитировать процессы сборки-разборки изделия, кинематики движения механизмов.
Следует упомянуть о классе CAE-систем (англ, computer-aided engineering) - инженерных расчетных пакетов, работающих с созданными трехмерными моделями. Расчет на прочность, кинематика и динамика, проливаемость пресс-форм, аэродинамические и гидравлические расчеты, имитации краш-тестов... По своей сложности такие программные пакеты стоят на одной ступени с мощнейшими анимационными приложениями, применяемыми в кинематографии, а по значимости, возможно, даже и выше их.
Инженер-конструктор получает в свои руки поистине фантастический инструмент: трехмерное представление напряжений в изделии, объемное распределение температур, пространственное моделирование потоков газов, смесей и жидкостей. И все это просто и наглядно - никаких «трехэтажных» формул, плоских графиков, диаграмм или приблизительных исчислений. Переворот, совершенный 3D в кинематографе и дизайне, и сравнить нельзя с тем, что дало появление CAE-систем в конструировании.
Проблем отрасли ЗО-графики, конечно, еще более чем достаточно. Современные программные средства как для дизайна и анимации, так и для инженерного моделирования и расчетов постепенно начинают задыхаться от нехватки мощи аппаратных средств.
Но индустрия 3D ни минуты не стоит на месте. Сотни талантливых программистов и математиков день ото дня совершенствуют и развивают графические трехмерные редакторы, заложенные в них алгоритмы построения моделей и просчета освещенности, стараясь сделать процесс моделирования более быстрым, легким и удобным.
Программы для трехмерного моделирования. Существует довольно большое количество самых разных программ для ЗО-моделирования. Так, одной из популярных программ, которые специально разработаны для создания трехмерной графики и дизайна интерьеров, является программа 3D-Studio МАХ. Она позволяет реалистично визуализировать объекты самой разной сложности, кроме того дает возможность компоновать их, задавать траектории перемещений и в итоге даже создавать полноценное видео с участием трехмерных моделей, хотя такая работа требует от специалиста серьезных навыков, а также больших компьютерных ресурсов, в первую очередь объемов памяти и быстродействие процессора.
Редактор Maya назван в честь санскритского слова, которое означает «иллюзия». Maya была разработана «Alias Systems». Maya чаще используется для создания анимации и трехмерных эффектов в фильмах.
Появление программ класса 3D-Studio Мах и Maya совершило стремительный переворот в индустрии дизайна. Художники, модельеры, архитекторы получили в свои руки мощный инструмент, позволяющий легко создавать изображения, почти идеальные с физической точки зрения: учитывающие материалы моделей сцены, источники света, их интенсивность и множество других факторов.
Еще более ускорило развитие и распространение трехмерной графики появление за такими китами ЗО-моделирования, как 3D-Studio Max, Maya, Softimage 3D, LightWave 3D, на рынке небольших компании («Renderman», «Mental Ray» и пр.), занимающихся разработкой узконаправленных специализированных программ. Например, в инженерном ЗО-моделировании у тяжелых САПР-пакетов (С ATI А, Unigraphics, Pro/Engineer) инициативу перехватывают более легкие и простые в освоении ЗО-пакеты нового поколения: SolidWorks, SolidEdge, Inventor.
Отрадно, что в области инженерного ЗО-моделирования отечественные разработки догоняют западные аналоги. Пример тому - российская система КОМПАС-ЗИ, за несколько лет выросшая из плоского чертежного редактора в мощную ЗО-САПР с собственным математическим ядром. Только за последний год она обзавелась приложениями для анимации, рендеринга, кинематического и динамического анализа.
Прежде чем закончить разговор о применении трехмерной графики еще раз концентрированно выделим преимущества трехмерного моделирования.
- • Трехмерное моделирование дает очень точную модель, максимально приближенную к реальности. Современные программы помогают достичь высокой детализации. При этом значительно увеличивается наглядность проекта. Выразить трехмерный объект в двухмерной плоскости непросто, тогда как ЗО-визуализация дает возможность тщательно проработать и, что самое главное, просмотреть все детали. Это более естественный способ визуализации.
- • В трехмерную модель очень легко вносить практически любые изменения. Вы можете изменять проект, убирать одни детали и добавлять новые. Ваша фантазия практически ничем не ограничена, и Вы сможете быстро выбрать именно тот вариант, который подойдет Вам наилучшим образом.
- • Из трехмерной модели легко можно выделить чертеж каких-либо компонентов.
- • Несмотря на то, что создание трехмерной модели - довольно трудозатратный процесс, работать с ним в дальнейшем гораздо проще и удобнее чем с традиционными чертежами. В результате значительно сокращаются временные затраты на проектирование, снижаются издержки.
- • Специальные программы дают возможность интеграции с любым другим профессиональным программным обеспечением, например с приложениями для инженерных расчетов, программами для станков или бухгалтерскими программами. Внедрение подобных решений на производстве дает существенную экономию ресурсов, значительно расширяет возможности предприятия, упрощает работу и повышает ее качество.