8. Основы компьютерной графики

 

Основы компьютерной графики



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

Векторы и пикселы
Существует два основных способа создания компьютерной графики — векторы и пикселы. В первом случае для каждой фиксированной точки изображения имеется линия, соединяющая ее со следующей точкой. Путем создания нескольких таких линий можно очертить замкнутую область и затем залить ее выбранным цветом. Второе название этого подхода — штриховой рисунок (line art). Так как опорные точки и линии имеют абсолютные координаты, можно создавать рисунки любого масштаба, не теряя при этом качества. Этот подход замечательно подходит для четкой графики, например для логотипов, и используется такими программами, как CorelDraw и Illustrator.
Во втором случае для создания изображения применяются прямоугольные точки, называемые пикселами. Они являются структурными единицами растрового изображения. Пикселы могут быть окрашены в любой цвет. Рассмотрение их набора с некоторого расстояния создает впечатление обычного изображения или фотографии. Чем больше пикселов, тем более детальным получается изображение, если его абсолютные размеры при печати или показе на экране монитора остаются без изменений. Абсолютный размер изображения, составленного из пикселов, называется разрешением. Если изображение состоит из большого числа пикселов, говорится, что оно имеет высокое разрешение. Например, по ширине 35-мм кадра обычно умещается 2048 пикселов, а по высоте — 1536. В отличие от векторных растровые изображения нельзя масштабировать. При сильном увеличении растрового изображения можно заметить, что оно состоит из цветных квадратиков. Подобный формат идеально подходит для фотографических изображений. Они обрабатываются с помощью таких программ, как Photoshop и Corel PhotoPaint. Штриховые рисунки очень редко используются в трехмерном моделировании, но большинство программ для работы с такими изображениями позволяет преобразовать их в растровые. При этом существует возможность выбирать требуемое разрешение.
Обычно файлы, содержащие растровые изображения, намного больше файлов со штриховыми рисунками. Например, цветное изображение с разрешением 640x480, содержит 307 200 пикселов, при этом каждый из них содержит информацию о долях красного, зеленого и синего цветов. Соответственно, размер необработанного файла составляет 921 600 байт. Это было большой проблемой во времена зарождения компьютерной графики, но благодаря техникам сжатия и возросшим мощностям компьютеров этот вопрос решен.
В Maya используется оба типа графических файлов. Может возникнуть ситуация, когда требуется создать логотип на основе штрихового рисунка, написать текст с помощью стандартных шрифтов или импортировать двумерный архитектурный план из программы для черчения, например из AutoCAD. Во всех этих случаях источником данных является векторное изображение. Также можно взять двумерные формы и использовать их в качестве кривых моделирования. Для выполнения этих преобразований вам может понадобиться инструмент, подобный Okino Polytrans, потому что возможности Maya по импорту файлов с векторными изображениями ограничены. Другой популярный у пользователей Maya инструмент для преобразования файлов с векторными изображениями в выдавленные логотипы это Zaxwork's Invigorator. Растровые изображения в Maya используются намного чаще. В основном они накладываются на поверхности способом, похожим на калькирование или наклеивание обоев. Кроме того, результаты визуализации сцен в Maya представляют собой растровые изображения.

Двумерная и трехмерная графика
Легко перепутать двумерную и трехмерную графику, потому что пользователи часто пытаются создать трехмерное изображение, используя исключительно инструменты для работы с двумерными объектами. Когда мы говорим о трехмерной графике, подразумевается виртуальное пространство с координатами X, Y и Z, в любом месте которого могут быть расположены объекты, источники света и камеры. Можно видеть оси X, Y и Z, взятые из геометрии. На них в Maya указывают вспомогательные объекты, как показано на рис. 1.11.
Какое направление соответствует каждой из букв? Обычно это зависит от опыта пользователя. Если аниматор работает с двумерным экраном, ось X идет слева направо, а ось Y — снизу вверх. При переходе к трехмерному экрану появляется ось Z, добавляя фактор глубины. Она может быть направлена как на зрителя, так и от него. Однако для пользователя CAD направление осей будет Основы компьютерной графики ч»
совершенно другим. Оси в CAD все время направлены вниз на координатные плоскости. Соответственно, оси X и Y являются индикаторами направлений север/юг и восток/запад, в то время как ось Z показывает высоту объекта. В Maya существует возможность менять местами оси Y и Z, что очень полезно при работе со сценами, импортированными из CAD. Это свойство может пригодиться и при импорте данных из других программ для трехмерного моделирования.

Maya: Оси координат в Maya показаны в левом нижнем углу, при этом выделенные объекты имеют свои собственные оси

Рис. 1.11. Оси координат в Maya показаны в левом нижнем углу, при этом выделенные объекты имеют свои собственные оси

Ввод и вывод информации
В основном создание сцены в Maya начинается с нуля. После окончания работы над ней визуализируются одно или несколько статичных изображений, то есть программа рассчитывает двумерное растровое изображение сцены, наблюдаемое в объектив камеры, учитывая все источники света, объекты и материалы, назначенные этим объектам. Набор статичных изображений используется для создания анимации путем быстрого показа их одно за другим.
Хотя путем визуализации в реальном времени может быть получено изображение достаточно высокого качества, его невозможно сравнить с результатом работы визуализатора (рис. 1.12).
Каждое новое поколение видеокарт увеличивает скорость выполнения визуализации в реальном времени и качество итогового изображения. Но пока еще нет возможности получить хотя бы приблизительно такое же качество, как при использовании стандартного визуализатора. Создатели анимации все время увеличивают количество эффектов, добавляют мягкие тени, объемный свет, глубину резкости и прочие эффекты, негативно сказывающиеся на скорости визуализации. Качественное изображение в этом случае можно получить только путем стандартной процедуры, хотя визуализация каждого кадра может занимать несколько минут.

Maya: Снизу показан результат визуализации в реальном времени, в то время как сверху находится результат стандартной визуализации

Рис. 1.12. Снизу показан результат визуализации в реальном времени, в то время как сверху находится результат стандартной визуализации

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

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

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

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

  • Одноразрядный (One bit). Пикселы могут принимать только два цвета — или черный, или белый.
  • Оттенки серого (Grayscale). Пикселы не содержат информации о цвете, отмеряется только его интенсивность. Единственным важным параметром является глубина оттенков серого. Используется до 256 оттенков (8 bit).
  • Палитровый (Paletted). Для создания изображения используется ограниченное число цветов, которые иногда размываются для получения наилучшего приближения к нужному изображению.
  • Реалистичное цветовоспроизведение (Truecolor). 24-разрядное кодирование цвета, близкое по качеству к естественной цветопередаче. Каждому из трех компонентов цвета выделено по восемь байт, при этом получается 256 оттенков каждого цвета. Этот формат соответствует 16 миллионам цветов на пиксел.
  • Высококачественное цветовоспроизведение (High color). Вместо 24 бит информацию о цвете представляют только 16. При этом информация о красном, зеленом и синем цветах занимает по пять бит, а последний оставшийся бит просто отбрасывается. Так как на каждый канал приходится только по пять бит, существует всего 32 уровня интенсивности. Этого слишком мало, чтобы сделать незаметными переходы от одного уровня интенсивности к другому.

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

  • Alias PIX. 24-разрядный формат, совместимый с более поздними версиями программы Alias.
  • AVI. Анимационный формат, как правило, 24-разрядный, допускающий сильное сжатие, к сожалению, обычно сопровождаемое потерей качества изображения. Не стоит использовать его для визуализации и сохранения одного кадра. Также популярны форматы анимации MPG и MOV, но они, к сожалению, не поддерживаются в Maya, так что для импорта и экспорта файлов в этих форматах вам потребуются дополнительные программы.
  • Cineon. 24-разрядный формат статичных изображений, часто используемый для последующего перевода на кинопленку.
  • EPS. Формат, обычно используемый для сохранения векторных файлов, таких как логотипы. Впрочем, он позволяет также осуществлять внедрение растровых изображений. При сохранении результата визуализации в этом формате появляется растровое изображение с расширением EPS. To есть увеличение масштаба такого изображения приводит к разбиению картинки на пикселы.
  • GIF. Цветное изображение, используемое в качестве графики в Интернете. Существует возможность создания анимации в этом формате, но она не поддерживается в Maya.
  • JPEG. 24-разрядный формат со сжатием, которое приводит к потерям качества. Альфа-канал отсутствует.
  • Maya IFF. 24-разрядный формат, определенный в Maya. При желании его можно снабдить альфа-каналом.
  • Maya 16 IFF. 16-разрядный формат, определенный в Maya. При желании его можно снабдить альфа-каналом.
  • Quantel YUV. 24-разрядный формат, преобразующий изображение из палитры RGB в палитру YUV. Используется в специализированных видеокодерах.
  • RLA. 24-разрядный формат, поддерживаемый многими программами, предназначенными для монтажа. Он может включать дополнительную информацию и используется в случаях, когда изображение, полученное в Maya, нуждается в специальном редактировании, например в размывании фоновых объектов. При желании можно добавить к изображению альфа-канал.
  • SGI. 24-разрядный формат, популярный на рабочих станциях Silicon Graphics. При желании можно добавить к изображению альфа-канал.
  • SGI16. 16-разрядный формат. При желании можно добавить к изображению альфа-канал.
  • Softimage pic. 24-разрядный формат, используемый в приложении Softimage, предназначенном для работы с трехмерной анимацией. При желании можно добавить к изображению альфа-канал.
  • Targa. 24-разрядный формат, предпочтительный для сохранения результатов визуализации. Он имеет несколько разновидностей и гарантированно работает с любой программой, которая может его прочитать. При желании можно добавить к изображению альфа-канал.
  • TIFF. 24-разрядный формат, допускающий сжатие без цветовых потерь. В Maya сохранение файлов TIPF происходит только в 24-разрядном и 16-разрядном форматах, хотя такие изображения могут иметь практически любой формат — окрашенный, одноразрядный и т. п. Самые новые варианты формата TIFF иногда используют алгоритм сжатия без потери качества LZH. При импорте файла в этом формате в Maya может возникнуть ситуация, когда он просто не читается. В этом случае нужно преобразовать его с помощью Photoshop или любой другой программы для редактирования изображений. При желании можно добавить к изображению альфа-канал.
  • TIFF16. 16-разрядный формат TIFF. При желании можно добавить к изображению альфа-канал.
  • Windows BMP. 24-разрядный формат, для которого отсутствует возможность сжатия. Как и в случае TIFF, имеется несколько разновидностей этого формата. Возможность добавить альфа-канал отсутствует.

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

Maya: Оси координат в Maya показаны в левом нижнем углу, при этом выделенные объекты имеют свои собственные оси

Изображение: 

Maya: Снизу показан результат визуализации в реальном времени, в то время как сверху находится результат стандартной визуализаци

Изображение: