Блог: статьи

3D на скорую руку

Егор ГилёвАвтор: Егор Гилёв
28 февраля 2006

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

Однако же, времена меняются.

Пиктограммы в Windows Vista обещают иметь наибольший размер 256×256! Тут уж на кривой не объедешь. Оставаясь приверженцем иллюстративного подхода, я хочу сохранить за собой привилегию наводить красоту в виде бликов, теней и прочих визуальных эффектов, но уже готов принять посильную помощь в построении трехмерного «скелета». Пусть результатом трехмерного моделирования будет «заготовка» иллюстрации, готовая к доработке в векторном редакторе. Есть ли инструменты, позволяющие так делать? Оказывается, есть.

Первые два продукта, к сожалению, требуют для работы 3DS MAX, что весьма обидно. Цена за вход в мир трехмерного моделирования пиктограмм получается больно уж высокая. И потом, как быть пользователям Mac? А дизайнеры интерфейсов любят работать на Mac, и есть за что.

Swift 3D

К счастью, третий продукт — Swift 3D — доступен и как самостоятельная программа, и как плагин для 3DS MAX и Lightwave 3D. Причем Swift 3D и Swift 3D LW доступны как для Windows, так и для Mac. Причем технология RAViX, положенная в основу Swift 3D, применяется и в других пакетах 3D-моделирования и анимации, включая Maya! Причем компания Electric Rain, разработавшая RAViX и Swift 3D, предлагает нам также ZAM 3D — инструмент для создания трехмерных элементов интерфейса, рекомендованный Microsoft для использования вместе с Expression Interactive Designer (раз уж об этом зашла речь, обратите внимание также на наш беглый обзор Expression Graphic Designer). Но ZAM 3D заслуживает отдельного большого разговора, а сегодня мы попробуем Swift 3D (по-русски — «быстрая трехмерность» или «3D на скорую руку», в более вольном переводе).

Попробуем посредством Swift 3D создать векторную заготовку пиктограммы, изображающей замок. Образец взят из Windows Vista User Experience Guidelines:

Пример пиктограммы из Windows Vista User Experience Guidelines

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

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

Advanced Modeler

Кроме собственно объекта, нужно создать солнце (источник света, чтобы получить падающую тень), землю (чтобы тени было куда падать), и камеру, которая была бы направлена на это великолепие:

Scene Editor

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

Экспортированная в Abobe Illustrator картинка после минимального «причесывания» выглядит так:

Экспортированная в Abobe Illustrator картинка

Осталось только трансформировать картинку таким образом, чтобы вертикальные линии были строго вертикальными и параллельными друг другу:

Готовый скелет

Скелет пиктограммы готов, можно наводить красоту. Интересующиеся могут скачать сцену в формате Swift 3D и полученный в результате всех вышеописанных манипуляций файл в формате Adobe Illustrator.

Условия использования

Данные материалы можно использовать в некоммерческих целях, с обязательным указанием автора.

Комментарии

Сам пользуюсь для подобных целей rhino и более чем доволен — вектора сложных объектов можно получить и в виде сетки, и в виде контура.
Тут результаты работы над последним проектом — http://mezich.livejournal.com/
В swift3d подобное можно сделать?

Ответить Юрий Мезенцев (mezich), 28 февраля 2006

Ну как моделер Swift 3D, конечно, не конкурент Rhino. Не уверен, что такого головастика получится смоделировать… в любом случае, семь потов сойдет. Я выше писал, сложные вещи удобнее делать в каком-нибудь более удобном моделере (например, Rhino), а потом импортировать в Swift 3D, чтобы сделать векторную картинку.

Ведь, если я не ошибаюсь, для Rhino нет векторных рендереров? Export в AI из Rhino меня категорически не устраивает, очень неудобный результат дает.

Ответить yegor, 28 февраля 2006

да, заливку и тени рино не экспортирует. swift именно этим приглянулся?

Ответить Юрий Мезенцев (mezich), 28 февраля 2006

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

Ответить yegor, 28 февраля 2006

Для примитивных вещей вполне подходит иллюстраторский фильтр KPT 3D Transform. Конечно, попытка сделать с его помощью что-либо более сложное, чем тот же замок, вопреки пословице мгновенно превратится в изощрённую пытку. Но в том, что трёхмерную болванку можно получить оставаясь в Иллюстраторе, есть свои плюсы.

Сам я потихоньку начинаю привлекать к работе Rhino.

Ответить Александр Голанов, 28 февраля 2006

Александр, ну кое-какое 3D я как-то делал даже встроенным в AI эффектом «Extrude & Bevel» :)

Насчет Rhino я выше Юрию отвечал. Я предполагаю совместное использование Rhino (или другого моделера) и Swift 3D.

Ответить yegor, 28 февраля 2006

ты видимо не очень глубоко ковырял рино: можно экспортировать замкнутые кривые.

посмотрел бегло swift — так и не понял как можно экспортировать в ai. може потому, как у меня trial-версия.

Ответить Юрий Мезенцев (mezich), 28 февраля 2006

Юрий, не исключаю, что я до чего-то не докопал… при случае восполню пробел!

Trial-версия показывает preview, но не дает сохранять файлы.

Ответить yegor, 28 февраля 2006

Кстати, о скорости вхождения и т.д. — посмотрите SketchUP — суперскоростная прога, экспорты в ai и 3d форматы имеются, версии под различные платформы тоже.

Начать изучение следует, вероятно, с просмотра видеороликов (доступны на офф-сайте http://www.sketchup.com/). Весьма впечатляют.

Ответить Иван А. Ильин, 28 февраля 2006

Иван, спасибо, посмотрю обязательно! О скорости вхождения: я имел в виду, в том числе, «цену за вход» в буквальном смысле :)

Впрочем, по этому критерию SketchUp нам тоже вполне подходит, в отличие от 3DS MAX.

Ответить yegor, 28 февраля 2006

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

Ответить Сергей Ковч, 1 марта 2006

Сергей, да… да и мне кажется, что в таком методе нет ничего порочного. Разумеется, я не правлю каждую линию в отдельности. Free Transform Tool, зажимаем Shift, Ctrl и Alt одновременно, и одним легким движением делаем все вертикальные линии параллельными. И потом еще надо немного сжать картинку по горизонтали.

Ответить yegor, 1 марта 2006

А что вы скажете о программе Cinema4d? Насколько я понял, она очень проста в освоении. На сайте Математические этюды с ее помощью изготовлены всевозможные обучающие материалы, и авторы сайта даже выложили несколько уроков о том, как это было сделано: 3D-уроки в программе Cinema4d

Ответить Рост, 5 декабря 2006

А умеет ли Cinema4d экспортировать результат в векторном виде? Если не умеет, то какое она имеет отношение к обсуждаемой теме?

Ответить yegor, 18 декабря 2006

да конечно, cinema4d умеет прямо в формат AI экспорировать файлы – без рендера

Ответить bugs-rus21.livejournal.com/, 29 сентября 2009

Доброго времени суток.
У меня глюк в Illustrate!, при рендере не хочет тени отображать, как это вылечить?

Ответить DmitryMK, 26 февраля 2009

Напишите комментарий

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

Connect with Facebook

Если у вас есть OpenID (например, myopenid.com), воспользуйтесь им для авторизации.

Авторизуйтесь при помощи аккаунта Турбомилк. Вы также можете зарегистрироваться на нашем сайте.

Закрыть