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

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

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

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

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

Тонкости создания материала
Материалы, которые имитируются в трехмерной графике, могут быть самыми разнообразными - от металла, дерева и пластика до стекла и камня. При этом каждый материал определяется большим количеством свойств, среди которых рельеф поверхности, зеркальность, рисунок, размер и яркость блика и т. д.
Визуализируя любую текстуру, нужно помнить, что качество материала в полученном изображении сильно зависит от множества факторов, среди которых: параметры освещения (яркость, угол падения света, цвет источника света и т. д.), алгоритм визуализации (тип используемого визуализатора и его настройки), разрешение растровой текстуры. Большое значение имеет также метод проецирования текстуры на объект. Неудачно наложенная текстура может «выдать» трехмерный объект образованным швом или подозрительно повторяющимся рисунком. Кроме того, обычно реальные объекты не бывают идеально чистыми, то есть на них всегда есть следы грязи. Если вы моделируете кухонный стол, то несмотря на то, что рисунок на кухонной клеенке повторяющийся, ее поверхность не должна быть везде одинаковая - клеенка может быть потерта на углах стола, иметь порезы от ножа и т. д.
Чтобы ваши трехмерные объекты не выглядели неестественно чистыми, можно использовать сделанные вручную (например, в Adobe Photoshop) карты загрязненности и смешивать их с исходными текстурами, получая реалистичный изношенный материал.

Для повышения реалистичности отображения наложенных на полигоны текстур используются различные технологии:

· сглаживания (Anti-aliasing);

· MIP – mapping;

· текстурной фильтрации.

Технология сглаживания (Anti-aliasing)

Anti-aliasing – это технология, использующаяся в обработке изображений с целью устранения эффекта «ступенчатых» краев (Aliasing) объектов. При растровом методе формирования изображения оно состоит из пикселей. Из-за того, что пиксели имеют конечный размер, на краях трехмерных объектов можно различить так называемую лестницу или ступенчатые края. Чтобы минимизировать эффект лестницы проще всего увеличить разрешение экрана, уменьшив тем самым размер пикселей. Но этот путь не всегда возможен. Если избавиться от ступенчатого эффекта за счет повышения разрешения монитора нельзя, можно использовать технологию Anti-aliasing, которая позволяет визуально сгладить эффект лестницы. Наиболее часто используемая для этого техника – это создание плавного перехода от цвета линии или края к цвету фона. Цвет точки, лежащей на границе объектов, определяется как среднее значение цветов двух граничных точек.

Существует несколько базовых технологий Anti-aliasing. Наиболее качественный результат впервые дала технология полноэкранного сглаживания FSAA (Full Screen Anti-Aliasing). В некоторых литературных источниках эта технология носит название SSAA. Суть данной технологии заключается в том, что процессор рассчитывает кадр изображения в гораздо большем разрешении, чем разрешение экрана, а затем при выводе на экран усредняет значения группы пикселей до одного; количество усредненных пикселей соответствует разрешению экрана монитора. Например, если кадр с разрешением 800х600 сглаживается с помощью FSAA, изображение будет рассчитываться в разрешении 1600х1200. При переходе к разрешению монитора цвета четырех рассчитанных точек, соответствующих одному пикселю монитора, усредняются. В результате у всех линий появляются плавные цветовые границы переходов, что визуально устраняет эффект лестницы.

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

Суть технологии MSSA аналогична технологии FSAA, но над пикселями, находящимися внутри полигонов, никаких расчетов не проводится. Для пикселей на границах объектов в зависимости от уровня сглаживания рассчитывается 4 и более дополнительных точек, по которым и определяется итоговый цвет пикселя. Эта технология наиболее распространена в настоящее время.

Известны индивидуальные разработки производителей видеоадаптеров. Например, NVIDIA разработала технологию Coverage Sampling (CSAA), которая поддерживается только видеоадаптерами GeForce, начиная с 8-ой серии (8600 – 8800, 9600 – 9800). Компания ATI ввела в графический процессор R520 и все последующие адаптивное сглаживание ААА (Adaptive Anti-Aliasing).

Технология MIP mapping

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

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

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

В простейшем случае наложения текстуры для каждого пикселя изображения определяется соответствующая ему MIP – карта согласно таблицы детализации LOD(Level of Detail). Далее из MIP – карты выбирается только один тексел, цвет которого присваивается пикселю.

Технологии фильтрации

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

Идея фильтрации состоит в том, что цвет пикселей объекта рассчитывается по соседним точкам текстуры (текселам).

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

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

С ростом производительности графических процессоров была разработана анизотропная фильтрация, которая успешно применяется до сих пор. При определении цвета точки она использует большое количество текселей и учитывает положение полигонов. Уровень анизотропной фильтрации определяется числом текселей, которые обрабатываются при вычислении цвета пикселя: 2х (16 текселей), 4х (32 текселя), 8х (64 текселя), 16х (128 текселей). Данная фильтрация обеспечивает высокое качество выводимого движущегося изображения.

Все эти алгоритмы реализует графический процессор видеокарты.

Интерфейс прикладного программирования (API)

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

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

эффективное преобразование запросов прикладной программы в оптимизированную последовательность низкоуровневых команд 3D-акселератора с учетом особенностей его аппаратного построения;

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

Специальный пакет служебных программ для выполнения этих функций называется интерфейсом прикладного программирования (ApplicationProgram Interface = API ).

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

В настоящее время в 3D существует несколько API, области применения которых довольно четко разграничены:

DirectX , разработанный фирмой Microsoft, используемый в игровых приложениях, работающих под управлением операционных систем Windows 9X и более поздних версий;

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

Фирменные (native – родные) API , создаваемые производителями 3D-акселераторов исключительно для своих Chipset с целью наиболее эффективного использования их возможностей.

DirectX является жестко регламентированным, закрытым стандартом, который не допускает изменений до выхода в свет своей очередной, новой версии. Это, с одной стороны, ограничивает возможности разработчиков программ и особенно производителей акселераторов, однако значительно облегчает пользователю настройку программного и аппаратного обеспечения для 3D.

В отличие от DirectX, API OpenGL построен на концепции открытого стандарта, имеющего небольшой базовый набор функций и множество расширений, реализующих более сложные функции. Производитель Chipset 3D-акселератора обязан создать BIOS и драйверы, выполняющие базовые функции Open GL, но не обязан обеспечивать поддержку всех расширений. Это порождает ряд проблем, связанных с написанием производителями драйверов для своих изделий, которые поставляются как в полном, так и в усеченном виде.

Полная версия OpenGL-совместимого драйвера носит название ICD (Installable Client Driver – драйвер приложения – клиента). Он обеспечивает максимальное быстродействие, т.к. содержит низкоуровневые коды, обеспечивающие поддержку не только базового набора функций, но и его расширений. Естественно, что с учетом концепции OpenGL создание подобного драйвера исключительно сложный и трудоемкий процесс. Это одна из причин более высокой стоимости профессиональных 3D-акселераторов по сравнению с игровыми.

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

3D Studio и 3D Studio MAX

Один из самых известных пакетов 3D-анимации на IBM - это 3D Studio фирмы Autodesk. Программа работает под DOS, обеспечивает весь процесс создания трехмерного фильма: моделирование объектов и формирование сцены, анимацию и визуализацию, работу с видео. Кроме того, существует широкий спектр прикладных программ (IPAS-процессов), написанных специально для 3D Studio. Новая программа той же фирмы под названием 3D Studio MAX для Windows NT создавалась в течение нескольких последних лет и претендует на роль конкурента мощным пакетам для рабочих станций SGI. Интерфейс новой программы един для всех модулей и обладает высокой степенью интерактивности. 3D Studio MAX реализует расширенные возможности управления анимацией, хранит историю жизни каждого объекта и позволяет создавать разнообразные световые эффекты, поддерживает 3D-акселераторы и имеет открытую архитектуру, то есть позволяет третьим фирмам включать в систему дополнительные приложения.



TrueSpace, Prisms, Three-D, RenderMan, Crystal Topas

Electric Image, SoftImage

Для создания трехмерной анимации на компьютерах IBM и Macintosh удобно пользоваться и пакетом Electric Image Animation System, включающим большой комплекс анимационных средств, спецэффекты, инструментарий для работы со звуком и генератор шрифтов с настраиваемыми параметрами. Хотя у этой программы нет средств моделирования, но зато есть возможность импорта свыше тридцати различных форматов моделей. Пакет также поддерживает работу с иерархическими объектами и средствами инверсной кинематики. В свою очередь, программа Softimage 3D фирмы Microsoft работает на платформах SGI и Windows NT. Она поддерживает моделирование на базе полигонов и сплайнов, создание спецэффектов, работу с частицами и технологию переноса движения с живых актеров на компьютерных персонажей.


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

Работы, выполненные с использованием трехмерной компьютерной графики, одинаково привлекают к себе внимание и 3D-дизайнеров, и тех, кто имеет довольно смутное представление о том, как все это было сделано. Наиболее удачные работы в 3D невозможно отличить от реальных съемок. Такие работы, как правило, порождают вокруг себя жаркие споры о том, что же это: фотография или трехмерная подделка. Вдохновленные работами именитых 3D-художников, многие берутся за изучение трехмерных редакторов, полагая, что освоить их так же легко, как Photoshop. Между тем, программы для создания 3D-графики являются довольно сложными в освоении, и их изучение отнимает много времени и сил. Но даже изучив инструментарий трехмерного редактора добиться реалистичного изображения начинающему 3D-дизайнеру нелегко. Попав в ситуацию, когда сцена выглядит "мертвой", он не всегда может найти тому объяснение. В чем же дело?

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

Начинаем с композиции

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

Не забудьте о деталях

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

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

Если нужно создать пейзаж

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

Тонкости создания материала

Материалы, которые имитируются в трехмерной графике, могут быть самыми разнообразными - от металла, дерева и пластика до стекла и камня. При этом каждый материал определяется большим количеством свойств, среди которых - рельеф поверхности, зеркальность, рисунок, размер и яркость блика и т.д. Визуализируя любую текстуру, нужно помнить, что качество материала на полученном изображении очень сильно зависит от множества факторов, среди которых - параметры освещения (яркость, угол падения света, цвет источника света и т.д.), алгоритм визуализации (тип используемого рендерера и его настройки), разрешение растровой текстуры. Также большое значение имеет метод проецирования текстуры на объект. Неудачно наложенная текстура может "выдать" трехмерный объект образованным швом или подозрительно повторяющимся рисунком. Кроме того, обычно в реальности объекты не бывают идеально чистыми, то есть на них всегда есть следы грязи. Если вы моделируете кухонный стол, то, несмотря на то, что рисунок на кухонной клеенке повторяющийся, ее поверхность не должна быть везде одинаковая - клеенка может быть потерта на углах стола, иметь порезы от ножа и т.д. Чтобы ваши трехмерные объекты не выглядели неестественно чистыми, можно использовать сделанные вручную (например, в Adobe Photoshop) карты загрязненности и смешивать их с исходными текстурами, получая реалистичный "изношенный" материал.

Добавление движения

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

Второе, что необходимо учитывать при создании анимированных сцен - это движение, в котором пребывает большинство предметов в реальности. Например, шторы в комнате колышутся от ветра, стрелки часов идут и т.д. Поэтому при создании анимации нужно обязательно проанализировать сцену и обозначить те объекты, для которых необходимо задать движение. Кстати сказать, движение придает реалистичности и статичным сценам. Однако, в отличие от анимированных, в них движение должно угадываться в застывших мелочах - в сползающей со спинки кресла рубашке, ползущей гусеницы на стволе, согнувшемся от ветра дереве. Если для более простых объектов сцены создать реалистичную анимацию относительно несложно, то смоделировать движение персонажа без вспомогательных инструментов практически невозможно. В повседневной жизни наши движения настолько естественны и привычны, что мы не думаем, например, запрокинуть ли нам голову во время смеха или пригнуться, проходя под низким навесом. Моделирование же подобного поведения в мире трехмерной графики сопряжено с множеством подводных камней, и воссоздать движения, и тем более мимику, человека не так-то просто. Именно поэтому для упрощения задачи применяется следующий способ: на тело человека навешивается большое количество датчиков, которые фиксируют перемещение любой его части в пространстве и подают соответствующий сигнал на компьютер. Тот, в свою очередь, полученную информацию обрабатывает и использует ее по отношению к некоторой скелетной модели персонажа. Такая технология называется motion capture. При движении оболочки, которая надевается на скелетную основу, необходимо также учитывать мускульную деформацию. Тем 3D-аниматорам, которые заняты персонажной анимацией, будет полезно изучить анатомию для того, чтобы лучше ориентироваться в системах костей и мускулов.

Освещение - это не только свет, но и тени

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

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

Самое главное - просчет

Визуализация - это завершающий и, безусловно, самый ответственный этап создания трехмерной сцены. Редактор трехмерной графики просчитывает изображение, учитывая геометрию объектов, свойства материалов, из которых они сделаны, расположение и параметры источников света и т.д. Если сравнивать работу в 3ds max с видеосъемкой, то значение движка рендеринга можно сопоставить с пленкой, на которой снимается материал. Точно так же, как на двух пленках разных фирм могут получаться яркий и блеклый снимки, результат вашей работы может быть реалистичный или только удовлетворительный в зависимости от того, какой алгоритм просчета изображения вы выбрали. Существование большого количества алгоритмов визуализации стало причиной увеличения числа внешних подключаемых рендереров. Часто один и тот же рендерер может интегрироваться с разными пакетами 3D-графики. По скорости и качеству просчитываемого изображения внешние визуализаторы, как правило, превосходят стандартный аппарат рендеринга 3D-редакторов. Однако нельзя однозначно дать ответ на вопрос, какой из них дает наилучший результат. Понятие "реалистичность" в этом случае является субъективным, потому что нет каких-либо объективных критериев, по которым можно было бы оценить степень реалистичности визуализатора.

Однако можно сказать наверняка, что для того, чтобы финальное изображение было более реалистичным, алгоритм визуализации должен учитывать все особенности распространения световой волны. Как мы уже говорили выше, попадая на объекты, луч света многократно отражается и преломляется. Просчитать освещенность в каждой точке пространства с учетом бесконечного числа отражений невозможно, поэтому для определения интенсивности света используются две упрощенные модели: трассировка (Raytracing) и метод глобальной освещенности (Global Illumination). До недавнего времени наиболее популярным алгоритмом визуализации была трассировка световых лучей. Этот метод заключался в том, что трехмерный редактор отслеживал ход луча, испускаемого источником света, с заданным числом преломлений и отражений. Трассировка не может обеспечить фотореалистичного изображения, поскольку этот алгоритм не предусматривает получения эффектов рефлективной и рефрактивной каустики (блики, возникающие в результате отражения и преломления света), а также свойств рассеиваемости света. На сегодняшний день использование метода глобального освещения является обязательным условием для получения реалистичного изображения. Если при трассировке просчитываются только те участки сцены, на которые попадают лучи света, метод глобального освещения просчитывает рассеиваемость света и в неосвещенных или находящихся в тени участках сцены на основе анализа каждого пикселя изображения. При этом учитываются все отражения лучей света в сцене.

Одним из наиболее распространенным способов просчета глобального освещения является Photon Mapping (фотонная трассировка). Этот метод подразумевает расчет глобального освещения, основанный на создании так называемой карты фотонов - информации об освещенности сцены, собранной при помощи трассировки. Преимущество Photon Mapping заключается в том, что единожды сохраненные в виде карты фотонов результаты фотонной трассировки впоследствии могут использоваться для создания эффекта глобального освещения в сценах трехмерной анимации. Качество Global Illumination, просчитанное при помощи фотонной трассировки, зависит от количества фотонов, а также глубины трассировки. При помощи Photon Mapping можно также осуществлять просчет каустики. Помимо просчета глобального освещения, внешние визуализаторы позволяют визуализировать материалы с учетом эффекта подповерхностного рассеивания (Sub-Surface Scattering). Этот эффект является необходимым условием достижения реалистичности таких материалов, как кожа, воск, тонкая ткань и т.д. Лучи света, попадающие на такой материал, помимо преломления и отражения, рассеиваются в самом материале, тем самым вызывая легкое свечение изнутри.

Еще одна причина, по которой изображения, просчитанные с помощью подключаемых рендереров, более реалистичны, чем картинки, визуализированные с использованием стандартных алгоритмов просчета - возможность использования эффектов камеры. К ним относятся, прежде всего, глубина резкости (Depth of Field), смазывание движущихся объектов (motion blur). Эффект глубины резкости можно использовать тогда, когда требуется обратить внимание зрителя на какую-нибудь деталь сцены. Если изображение содержит эффект глубины резкости, зритель в первую очередь замечает элементы сцены, на которые наведена резкость. Эффект глубины резкости может помочь в том случае, когда необходимо визуализировать то, что видит персонаж. С помощью эффекта глубины резкости можно фокусировать взгляд персонажа то на одном, то на другом объекте. Эффект глубины резкости является обязательной составляющей реалистичного изображения и тогда, когда внимание в сцене обращено на мелкий объект - например, на гусеницу на стволе. Если на картинке будут одинаково четко прорисованы все объекты, которые попадают в фокус включая ветки, листья, ствол и гусеницу, то такое изображение не будет выглядеть реалистично. Если бы подобная сцена существовала в действительности, и съемка велась не виртуальной, а настоящей камерой, в фокусе был бы только главный объект - гусеница. Все, что находится на расстоянии от нее, выглядело бы размытым. Поэтому на трехмерном изображении обязан присутствовать эффект глубины резкости.

Вывод

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

Сергей и Марина Бондаренко, http://www.3domen.com

Построение трехмерного изображения

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

При формировании трехмерного изображения (статического или динамического) его построение рассматривается в пределах некоторого пространства координат, которое называется сценой . Сцена подразумевает работу в объемном, трехмерном мире - поэтому и направление получило название трехмерной (3-Dimensional, 3D) графики.

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

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

Рабочее пространство системы подготовки
трехмерной графики Blender (пример с сайта
http://www.blender.org
)

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

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

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

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

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

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

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

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

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

Твердотельная модель и итоговый результат обсчета модели
(пример с сайта http://www.blender.org )

Анимация и виртуальная реальность

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

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

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

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

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

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

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

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

Примеры программных продуктов

Maya, 3DStudio, Blender

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

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

Большую часть времени занимают практические работы подготовки и обработки графических изображений с использованием растровых и векторных графических редакторов. В основной школе это, как правило, Adobe Photoshop, CorelDraw и/или MacromediaFlach. Различие между изучением тех или иных программных пакетов в основной и старшей школе в большей мере проявляется не в содержании, а в формах работы. В основной школе это практическая (лабораторная) работа, в результате которой учащимися осваивается программный продукт. В старшей школе основной формой работы становится индивидуальный практикум или проект, где главной составляющей является содержание поставленной задачи, а используемые для ее решения программные продукты остаются лишь инструментом.

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