Очень короткий экскурс в теорию и терминологию (I)
Мы уже сейчас вполне могли бы начать делать что-то вполне конкретное, но я позволю себе еще ненадолго злоупотребить Вашим вниманием и коротко представить то, с чем нам в конечном итоге придется иметь дело, ведь до сих пор используемые нами понятия были довольно общими.
Трехмерные объекты (mesh), с которыми мы будем работать, на самом "нижнем" уровне являются ничем иным как геометрическими поверхностями, состоящими из множества граней (face), которые в свою очередь образуются ребрами (edge) - соединениями между отдельными точками (vertex) объекта. Вполне возможно формировать объект, создавая точки, ребра и грани и воздействуя на них напрямую, однако гораздо чаще на помощь приходят иные средства моделирования. Впоследствии поверхность объекта снабжается материалом, будь это просто цвет или набор текстур. Во втором случае требуется указать, каким образом двумерные текстуры накладываются на объект - определить "мэппинг"(mapping). В заключение остается осветить созданную сцену и выбрать точку наблюдения, поставив в ней камеру (часто ее функцию выполняют стандартные "обзорные" проекции).
Теперь за дело принимается "рендерер" (renderer), строя конечную картинку из "проволочной" геометрии, текстур и источников света. Технологии при этом применяются разные, 3DStudio MAX с некоторых пор является членом (хоть и не совсем полноправным) клуба пакетов для трехмерной графики, поддерживающих raytracing - метод построения изображения, при котором лучи света преследуются на их пути через виртуальный мир к виртуальному глазу (строго говоря, с точностью до наоборот :-) ) - во всеми преломлениями, отражениями и изменениями цвета.
Вместо введения
А началось все с того, что вполне мирная беседа в одной из клубных конференций о методах реализации некоего графического эффекта обернулась жаркой дискуссией о рациональности применения техник трехмерного моделирования и использования продуктов такого творчества в WWW. Спор показал, что различных мнений на этой почве существует не меньше, чем предрассудков, ясно, однако, было одно: тема не должна остаться в тени. В любом случае, те, кто эту область для себя еще – несмотря на имеющийся интерес - не открыл, вполне имеют право такой шанс получить здесь.
На вопрос «зачем и кому нужен 3D for Web» мы предоставим ответить самому читателю, основываясь не только на где-либо увиденных примерах, но и на собственном воображении. Аргументация «против», как правило, заключается в таких вот тезисах (для успокоения начинающих и сомневающихся постараемся снабдить их смягчающими комментариями – по мере возможности, конечно):
Зачем утяжелять 3D-графикой страницы, создавая лишний траффик?
Трехмерная графика ручного изготовления в конечной своей ипостаси на странице ничем от прочей не отличается. То, насколько оптимально по качеству и размеру будут представлены изображения, полностью зависит от умения Веб-мастера.
Нет ни аппаратуры, ни ПО для трехмерной графики
На самом деле ничего особенного и не требуется. Существует множество бесплатных продуктов для любой платформы и практически любых аппаратных ресурсов. Однако здесь и далее внимание будет уделено одной конкретной программе.
Профессиональные 3D-пакеты сложны в освоении, в то время как простой софт не позволяет сделать многого, что хотелось бы реализовать.
Не стоит забывать, что отнюдь не в наших интересах давать исчерпывающие сведения по тому или иному пакету для построения виртуальных миров. Целью является скорее предоставление техник для изготовления несложных, но эффективно выглядящих элементов, вписывающихся в стиль сайта.
Как бы то ни было, трехмерная графика вполне достойна рассмотрения в качестве одного из равноправных инструментов Веб-дизайна.
Первая проблема, с которой нам предстоит столкнуться на пути – выбор соответствующего программного обеспечения. Как уже упоминалось, подходящих пакетов множество, остается найти оптимум, удовлетворяющий следующим критериям:
умеренные запросы в области железа, распространенность платформы графический интерфейс, пригодный для интуитивного освоения. должное количество удобных и понятных инструментов для моделирования приемлемое качество рендеринга наличие online help И последнее, но немаловажное: доступность персональной помощи в случае возникающих проблем.
Вполне возможно, что среди критиков настоящего документа найдутся поклонники Alias/Wavefront, Strata или Softimage. Кто-то, к примеру, прекрасно владеет Povray или Bruce, и я буду искренне благодарен за любую поддержку с их стороны – у меня было много шансов убедиться в том, что возможности этих пакетов подчас позволяют решать маленькие проблемы с соразмеренно небольшими затратами. Однако в качестве инструмента для дальнейшего курса избран 3DStudio MAX, и этот выбор я сейчас попытаюсь оправдать.
Одним из главных преимуществ нашего избранника является возможность объектно-ориентированного моделирования, т.е. исходная геометрическая форма, равно как и последовательно применяемые к ней модификаторы, являются объектами, параметры которых могут в любой момент быть изменены. Это позволяет сделать процесс моделирования предельно структурированным, а заодно и избавляет от страха перед возможными ошибками.
Пристрастие к тому или иному типу графической оболочки – безусловно дело индивидуальное, но качество интерфейса 3DStudio MAX может быть относительно независимо оценено как удовлетворительное. Присутствует элемент эксплоративности, хотя «ткнуть и посмотреть, что получится» не всегда приводит к видимым результатам. Мне кажется, что авторы этого пакета нашли разумный баланс между пиктографической и текстовой формой представления активных и информационных элементов.
Благодаря уже упомянутой объектной ориентированности возможно практически безграничное модулярное расширение возможностей пакета, в результате чего каждый способен сам составить себе набор любимых инструментов или попробовать что-то новое, просто подключив допольнительный plugin (надо заметить, что базовой подборки, приходящей со стандартной инсталляцией пакета, на первых порах более чем достаточно).
Работать с 3Dstudio MAX вполне можно уже на P100 c 32MB RAM под Windows95/98 и WindowsNT4.0, в последнем случае можно рассчитывать на гораздо более стабильное функционирование. Особых по разумным меркам претензий к графическим возможностям не предъявляется, использование OpenGL-способной карты рекомендуемо. Пакет – в зависимости от инсталляции – занимает от 60 до 200 MB на жестком диске, стоит учитывать возможность дальнейшего «разбухания», связанного с добавлением подключаемых модулей. Особых проблем при инсталляции MAXа мне до настоящего момента не встречалось, стоит упомянуть лишь о необходимости установки Sentinel Hardlock Drivers для работы программы.
Запустили. Что дальше?
В этом курсе мы преследуем практические цели, а потому стоит как можно быстрее начать делать что-то «реальное». Однако, как мне кажется, разумно для начала бегло ознакомиться с оболочкой, выявить элементы, представляющие для нас наибольший интерес, а заодно и просто попривыкнуть к обстановке, дабы на будущее знать примерно, что где лежит. Итак, смотрим и видим:
...4 проекции создаваемого нами мира. Их расположение, тип и количество можно менять. Как это делается - разберемся позже. Активируется тот или иной вид кликом на его название в левом верхнем углу.
...довольно типичное меню. То, что нас непосредственно может интересовать, объяснений не требует. Более того, многие его команды продублированы на других панелях. К нему мы будем возвращаться по мере необходимости.
...пестрое сборище всевозможных инструментов. Немного подробнее о наиболее важных: - как и можно догадаться - классические Undo и Redo. Распространяются на множество шагов, но существуют и необратимые операции. - курсор для выбора объектов, меню типов выбора (прямоугольник, эллипс, полигон), фильтр выбираемых объектов, вызов окна списка объектов для выбора по имени. - эти кнопки представяют собой самые простые операции, которые можно совершить с объектом в пространстве - переместить, покрутить, (не)пропорционально уменьшить или увеличить, опираясь при этом на различные системы координат, с возможностью ограничить изменения одной или двумя осями. - кнопка вызова редактора материалов - о нем самом мы поговорим немного позже. - здесь - основной доступ к рендереру - модулю, занимающемуся построением готовых картинок из сделанной нами геометрии, присвоенных объектам поверхностей и расставленных источников света.
...панель контроля видов/проекций содаваемого мира для перемещения точки зрения наблюдателя, изменения направления и угла обзора, оптимизации вида и т.д. - не влияют на созданную геометрию (за исключением положения камеры).
Все, что мы до настоящего момента успели рассмотреть, больше напоминает своеобразный рабочий стол, на котором под рукой - в относительном (техническом) беспорядке - всегда самое нужное. Теперь на очереди строгая иерархическая система создания и модификации объектов - этакий шкаф с раложенными по полочкам и ящикам заготовками и нструментами. Вот, как выглядит верхний уровень этой иерархии:
На начальной стадии только 2 первых пункта - Create и Modify - представляют для нас особый интерес.
Работа по созданию модели как правило начинается с простейших двух- или трехмерных элементов, таких как прямая линия, сплайн, полигон, куб, шар и т.д. В результате взаимодействия примитивов по различным схемам и наложения на объекты или их части соответствующих модификаторов возникают более сложные и приближающиеся к конечному идеалу модели.
Так, в меню Create мы имеем в первую очередь сталкиваемся с возможностью выбора типа элемента, который мы хотим создать:
(стандартный ли примитив, двумерную фигуру, а может, источник света, камеру или что-то другое?)
В дальнейшем мы уточняем наши пожелания, спускаясь по абстракционной лестнице, и в конце концов приходим к созданию конкретных объектов.