Blender. Введение в альтернативное 3D
Я уже рассказывал о свободно распространяемой программе с открытым исходным кодом для работы с 3D и не только — о Blender (далее просто Блендер). В свое время я вдоволь наработался с Максом, так и не смог понять Майю и разочарованно отбросил еще несколько пакетов для работы с 3D. Но затем как-то увидел Блендер и практически сразу понял: это именно то, что я искал! Нет, я не хочу сказать, что именитые 3D-пакеты чем-то плохи, что там нет ничего стоящего, нет — заплатив (давайте представим, что мы все соблюдаем законы) немалую сумму, мы получаем огромный функционал, техническую поддержку и некоторые дополнительные плюшки. Но есть задачи, для которых этот самый функционал не так важен, а решить какую-либо проблему всегда поможет обширное сообщество энтузиастов, да и деньги экономятся. А некоторые просто не хотят быть в мейнстриме, стараясь всему найти альтернативу.
Надо сказать, что выше я чуть поскромничал про функциональность — Блендер при весе инсталлятора для Windows (а поддерживаются все распространенные ОС: Windows, Linux, MacOS и многие экзотические) менее 10 Мб имеет очень достойный список функций. Он может похвастаться неплохими возможностями полигонального моделлинга (одно время я использовал Modo в связке с Блендером, но навороченность инструментов первого для меня оказалась излишней), наличием скульптинга, скелетной анимации, инструментов для работы с частицами и волосами, симулятора жидкостей, встроенным физическим движком, позволяющим имитировать твердые и мягкие тела, ткани. Редактор нодов дает широкие возможности по созданию сложных материалов и постэффектов, а встроенный игровой движок позволит без строчки кода создать простенькую игру уровня тетриса за полчаса. Кроме того, поддержка дополнительных скриптов (используется язык Python) еще больше расширяет эту функциональность — генераторы растительности и ландшафтов, различной механики, средства продвинутого моделлинга и анимации — список можно продолжать довольно долго. Причем разработка Блендера идет очень активно — буквально каждый месяц появляется новая версия с различными улучшениями: исправлением багов (однако даже постоянно используя последние нестабильные версии с багами я почти не встречался) и новыми функциями (совсем недавно добавили функцию реал-тайм-отображения материалов во вьюпорте с помощью GLSL и рендеринг неба и атмосферы для стандартного рендера). А на сайте Graphicall.org практически ежедневно выходят пользовательские сборки с тестовыми функциями либо оптимизациями под какую-либо машинную архитектуру.
Рядом с таким перспективным проектом не могли не развиваться и смежные: MakeHuman — генератор моделей людей — сейчас в стадии активной разработки; yaf(a)ray — "продолжение" YafRay, считавшегося в свое время чем-то вроде VRay для Блендера; LuxRender и Indigo — unbiased-рендеры, почти как пара Maxwell и FryRender из мира проприетарного ПО. Нельзя не сказать о таких проектах Блендер-сообщества, как Big Buck Bunny (BBB) и Yo Frankie! Первый проект — короткометражный трехмерный анимационный мультик, полностью сделанный с помощью свободного ПО — мультфильм, а также все материалы (модели, текстуры, сцены…) можно скачать с сайта www.bigbuckbunny.org. Второй — аркадная игра с персонажами из BBB, релиз которой к моменту написания этого материала, скорее всего, произошел. Смотрите сайт www.yofrankie.org.
Рис. 1. Кадр из BigBuckBunny
На этом считаю вводную часть законченной. Заинтересовавшимся советую скачать последнюю версию Блендера с сайта www.blender.org/download/get- blender/, а также проверить наличие установленного Python.
Интерфейс
Интерфейс Блендера отличается от интерфейса того же Макса и ему подобных. Радикально. Главное окно программы разбивается на так называемые окна (Windows) различной функциональности — вьюпорт, панели кнопок, временная шкала, редактор нодов, текстовый редактор и т.д. У каждого окна есть заголовок, в котором находится выпадающий список типов окон, и некоторое количество кнопок и меню, наличие которых зависит от типа окна (так, для окна Timeline в заголовке находятся кнопки управления анимацией). Кстати, и строка меню (с классическим File ->) является заголовком окна User Preferences — стоит оттянуть его вниз, как откроются различные опции настройки Блендера. Окно можно разбить на два новых либо объединить со смежным окном с помощью клика правой кнопки мыши на линии, разделяющей два окна — таким способом буквально за несколько кликов мышью можно кардинально изменить интерфейс, переходя к другим задачам — например, от моделирования к настройке материалов или анимации.
Рис. 2. Окна и их заголовки
Рис. 3. Разбиение окна
Два типа окон будут необходимы практически постоянно: 3D View и Buttons Window. Работу с ними рассмотрим на конкретном примере — сделаем грибок.
Моделирование
Наводим курсор на окно 3D View и жмем пробел, в появившемся меню выбираем Add — Mesh — Cylinder и снижаем число сегментов примерно до шести- десяти . В месте, где находится 3D-курсор (такой красно-белый кружок с четырьмя штрихами), появится цилиндр. Зажав среднюю кнопку мыши (в зависимости от настроек может понадобиться нажать еще и Shift), можно изменить вид наблюдения (быстро изменить вид можно с помощью дополнительной цифровой клавиатуры: вид спереди — 1, сбоку — 3, сверху — 7, от камеры — 0, а 5 переключает вид между ортогональным и перспективным видами). Итак, у нас есть цилиндр, который мы сейчас при помощи полигонального моделирования превратим в грибок. Для этого нужно перейти в режим редактирования — либо с помощью кнопки Tab, либо выбрать Edit Mode в выпадающем списке Mode в заголовке окна 3D View. Отображение модели слегка изменится, а в окне Buttons Window появятся новые кнопки. Обратите внимание на ряд пиктограмм в заголовке окна кнопок — это аналоги закладок — каждая из этих пиктограмм отображает соответствующие наборы панелей с кнопками: игровая логика (хоткей — F4), скрипты (без хоткея), материалы (F5), объекты (F7), редактирование (F9), рендер (F10). При моделировании основная работа проделывается с панелями редактирования.
Рис. 4. Создание болванки модели
Сразу после создания в режиме редактирования выделены все элементы модели: вершины, ребра, грани. Снимается это выделение кнопкой А (также этой кнопкой выделяется все), выделение одного элемента (вершины, грани, объекта…) происходит правой кнопкой мыши, стандартное "рамочное" выделение доступно после нажатия кнопки В. В режиме редактирования имеется три варианта работы: работа с вершинами, ребрами и гранями. Переключаться между ними можно с помощью сочетания Ctrl+Tab. Итак, выделив весь объект в режиме редактирования, растянем его по вертикали — масштабирование осуществляется по нажатию клавиши S, чтобы растянуть объект вдоль конкретной оси, необходимо нажать X, Y или, как в нашем случае, Z. В заголовке исчезнут все кнопки, и отобразится информация об оси и значении трансформации. Подобным образом происходит перемещение (кнопка G) и вращение (кнопка R). Итак, мы получим вытянутый цилиндр. Теперь с помощью операции разрезания добавим вершин на направляющих цилиндра для придания грибовидной формы. Для этого жмем кнопку K — выбираем Loop Cut (либо сочетание Ctrl+R) и наводим на направляющие цилиндра курсор мыши. Должно появиться кольцо ребер. Прокручивая колесико мыши, увеличиваем количество колец-разрезов до 4-6, жмем левую кнопку мыши — цилиндр будет разрезан заданное число раз. Снимаем выделение (клавиша А) и выделяем верхнее кольцо ребер — это можно сделать, выделяя по одной вершине (или ребру), зажав Shift, выделить рамочкой либо кликнуть правой кнопкой мыши с зажатым Alt по ребру, входящему в кольцо — все кольцо ребер будет сразу выделено. Операциями перемещения и масштабирования придаем цилиндру форму гриба. Кратко описанный выше пример приведен на четвертом рисунке.
Рис. 5. Buttons Window
Теперь у нас есть грубая болванка, отдаленно напоминающая гриб. На панели Link and Materials в Buttons Window в режиме объектов (выходим из режима редактирования) нажимаем кнопку Set smooth — переходы между полигонами будут сглаженными, а на панели Modifiers в выпадающем списке выбираем модификатор SubSurf, который сглаживает геометрию модели, разбивая полигоны на несколько меньших. В настройках этого модификатора можно указать степень сглаживания для просмотра во вьюпорте — Levels, и для рендеринга — Render Levels. Включение настройки Optimal Draw снизит нагрузку на видеокарту, отображая лишь основные линии геометрии.
После выполнения этих действий вас, скорее всего, не устроит качество модели — не страшно: вернитесь в режим редактирования, добавьте несколько дополнительных разрезов, отредактируйте положение уже существующих.
Рис. 6. Модель до и после доводки
Ну и напоследок несколько советов и замечаний:
. Сохраняйтесь! Быстрое сохранение — Ctrl+W.
. Не бойтесь эксперементировать; отмена действия — Ctrl+Z, повтор — Ctrl+Shift+Z или Ctrl+Y.
. Основные цифровые клавиши переключают слои отображения. Нажать несколько цифровых клавиш с зажатым Shift — значит, включить отображение сразу нескольких слоев. Клавиша M переносит объект на определенный слой.
. Удалите центральную вершину в основании цилиндра — это упростит редактирование ножки; X — удаляет выделенное.
. Переключаться между режимом отображения сетки и освещенного сплошного объекта можно с помощью выпадающего списка в заголовке окна 3D View или клавиши Z.
. Можно использовать точные значения масштабирования, переноса и вращения, вводя числовые значения после нажатия S, G или R соответственно. Если нажать при этих операциях Shift, то будет увеличена точность, если жать Ctrl — будет использоваться привязка к сетке.
. Отслеживать и вручную корректировать положение объектов в сцене можно с помощью небольшой панельки, вызываемой в окне 3D View по клавише N. Устанавливать 3D-курсор в конкретное место можно с помощью панели View Properties из пункта меню View в заголовке окна 3 View.
. Дополнительные операции полигонального моделирования вызываются клавишей W.
. Панели с кнопками в Buttons Windows можно масштабировать (колесиком мыши с зажатым Ctrl), выстраивать горизонтально, вертикально или произвольно (клик правой кнопкой мыши в Button Window), объединять или разъединять (drag'n'drop за заголовок панели) и сворачивать (клик по треугольнику в заголовке панели).
. Развернуть какое-либо окно на все программное окно можно с помощью Ctrl+UpArrow или Ctrl+DownArrow. Этими же сочетаниями возвращается предыдущий вид интерфейса.
. Ctrl+LeftArrow и Ctrl+RightArrow переключают интерфейс между 5 заранее заданными настройками: Animation, Model, Material, Sequence, Scripting. Эти же варианты можно выбрать из выпадающего меню заголовка окна User preferences.
. Настроенный интерфейс можно установить как стандартный стартовый сочетанием Ctrl+U.
. С помощью Shif+F можно управлять камерой игровыми WASD, зажатие колесика позволяет стрейфиться, вращение же колесика ускоряет или замедляет перемещение.
. Вот несколько сайтов на русском, посвященных Блендеру: www.blenderteam.net, blenderlearn.blogspot.com, blender3d.org.ua. А из зарубежных крупнейшим новостным сайтом по Блендеру является blendernation.com, а на montagestudio.org много качественного видео по полигональному моделированию.
На этот раз все. Продолжение следует.
Вопросы по материалу шлите на ящик: azazeo.ainamart@gmail.com
Дмитрий Табакеров aka Az Ainamart
Надо сказать, что выше я чуть поскромничал про функциональность — Блендер при весе инсталлятора для Windows (а поддерживаются все распространенные ОС: Windows, Linux, MacOS и многие экзотические) менее 10 Мб имеет очень достойный список функций. Он может похвастаться неплохими возможностями полигонального моделлинга (одно время я использовал Modo в связке с Блендером, но навороченность инструментов первого для меня оказалась излишней), наличием скульптинга, скелетной анимации, инструментов для работы с частицами и волосами, симулятора жидкостей, встроенным физическим движком, позволяющим имитировать твердые и мягкие тела, ткани. Редактор нодов дает широкие возможности по созданию сложных материалов и постэффектов, а встроенный игровой движок позволит без строчки кода создать простенькую игру уровня тетриса за полчаса. Кроме того, поддержка дополнительных скриптов (используется язык Python) еще больше расширяет эту функциональность — генераторы растительности и ландшафтов, различной механики, средства продвинутого моделлинга и анимации — список можно продолжать довольно долго. Причем разработка Блендера идет очень активно — буквально каждый месяц появляется новая версия с различными улучшениями: исправлением багов (однако даже постоянно используя последние нестабильные версии с багами я почти не встречался) и новыми функциями (совсем недавно добавили функцию реал-тайм-отображения материалов во вьюпорте с помощью GLSL и рендеринг неба и атмосферы для стандартного рендера). А на сайте Graphicall.org практически ежедневно выходят пользовательские сборки с тестовыми функциями либо оптимизациями под какую-либо машинную архитектуру.
Рядом с таким перспективным проектом не могли не развиваться и смежные: MakeHuman — генератор моделей людей — сейчас в стадии активной разработки; yaf(a)ray — "продолжение" YafRay, считавшегося в свое время чем-то вроде VRay для Блендера; LuxRender и Indigo — unbiased-рендеры, почти как пара Maxwell и FryRender из мира проприетарного ПО. Нельзя не сказать о таких проектах Блендер-сообщества, как Big Buck Bunny (BBB) и Yo Frankie! Первый проект — короткометражный трехмерный анимационный мультик, полностью сделанный с помощью свободного ПО — мультфильм, а также все материалы (модели, текстуры, сцены…) можно скачать с сайта www.bigbuckbunny.org. Второй — аркадная игра с персонажами из BBB, релиз которой к моменту написания этого материала, скорее всего, произошел. Смотрите сайт www.yofrankie.org.
Рис. 1. Кадр из BigBuckBunny
На этом считаю вводную часть законченной. Заинтересовавшимся советую скачать последнюю версию Блендера с сайта www.blender.org/download/get- blender/, а также проверить наличие установленного Python.
Интерфейс
Интерфейс Блендера отличается от интерфейса того же Макса и ему подобных. Радикально. Главное окно программы разбивается на так называемые окна (Windows) различной функциональности — вьюпорт, панели кнопок, временная шкала, редактор нодов, текстовый редактор и т.д. У каждого окна есть заголовок, в котором находится выпадающий список типов окон, и некоторое количество кнопок и меню, наличие которых зависит от типа окна (так, для окна Timeline в заголовке находятся кнопки управления анимацией). Кстати, и строка меню (с классическим File ->) является заголовком окна User Preferences — стоит оттянуть его вниз, как откроются различные опции настройки Блендера. Окно можно разбить на два новых либо объединить со смежным окном с помощью клика правой кнопки мыши на линии, разделяющей два окна — таким способом буквально за несколько кликов мышью можно кардинально изменить интерфейс, переходя к другим задачам — например, от моделирования к настройке материалов или анимации.
Рис. 2. Окна и их заголовки
Рис. 3. Разбиение окна
Два типа окон будут необходимы практически постоянно: 3D View и Buttons Window. Работу с ними рассмотрим на конкретном примере — сделаем грибок.
Моделирование
Наводим курсор на окно 3D View и жмем пробел, в появившемся меню выбираем Add — Mesh — Cylinder и снижаем число сегментов примерно до шести- десяти . В месте, где находится 3D-курсор (такой красно-белый кружок с четырьмя штрихами), появится цилиндр. Зажав среднюю кнопку мыши (в зависимости от настроек может понадобиться нажать еще и Shift), можно изменить вид наблюдения (быстро изменить вид можно с помощью дополнительной цифровой клавиатуры: вид спереди — 1, сбоку — 3, сверху — 7, от камеры — 0, а 5 переключает вид между ортогональным и перспективным видами). Итак, у нас есть цилиндр, который мы сейчас при помощи полигонального моделирования превратим в грибок. Для этого нужно перейти в режим редактирования — либо с помощью кнопки Tab, либо выбрать Edit Mode в выпадающем списке Mode в заголовке окна 3D View. Отображение модели слегка изменится, а в окне Buttons Window появятся новые кнопки. Обратите внимание на ряд пиктограмм в заголовке окна кнопок — это аналоги закладок — каждая из этих пиктограмм отображает соответствующие наборы панелей с кнопками: игровая логика (хоткей — F4), скрипты (без хоткея), материалы (F5), объекты (F7), редактирование (F9), рендер (F10). При моделировании основная работа проделывается с панелями редактирования.
Рис. 4. Создание болванки модели
Сразу после создания в режиме редактирования выделены все элементы модели: вершины, ребра, грани. Снимается это выделение кнопкой А (также этой кнопкой выделяется все), выделение одного элемента (вершины, грани, объекта…) происходит правой кнопкой мыши, стандартное "рамочное" выделение доступно после нажатия кнопки В. В режиме редактирования имеется три варианта работы: работа с вершинами, ребрами и гранями. Переключаться между ними можно с помощью сочетания Ctrl+Tab. Итак, выделив весь объект в режиме редактирования, растянем его по вертикали — масштабирование осуществляется по нажатию клавиши S, чтобы растянуть объект вдоль конкретной оси, необходимо нажать X, Y или, как в нашем случае, Z. В заголовке исчезнут все кнопки, и отобразится информация об оси и значении трансформации. Подобным образом происходит перемещение (кнопка G) и вращение (кнопка R). Итак, мы получим вытянутый цилиндр. Теперь с помощью операции разрезания добавим вершин на направляющих цилиндра для придания грибовидной формы. Для этого жмем кнопку K — выбираем Loop Cut (либо сочетание Ctrl+R) и наводим на направляющие цилиндра курсор мыши. Должно появиться кольцо ребер. Прокручивая колесико мыши, увеличиваем количество колец-разрезов до 4-6, жмем левую кнопку мыши — цилиндр будет разрезан заданное число раз. Снимаем выделение (клавиша А) и выделяем верхнее кольцо ребер — это можно сделать, выделяя по одной вершине (или ребру), зажав Shift, выделить рамочкой либо кликнуть правой кнопкой мыши с зажатым Alt по ребру, входящему в кольцо — все кольцо ребер будет сразу выделено. Операциями перемещения и масштабирования придаем цилиндру форму гриба. Кратко описанный выше пример приведен на четвертом рисунке.
Рис. 5. Buttons Window
Теперь у нас есть грубая болванка, отдаленно напоминающая гриб. На панели Link and Materials в Buttons Window в режиме объектов (выходим из режима редактирования) нажимаем кнопку Set smooth — переходы между полигонами будут сглаженными, а на панели Modifiers в выпадающем списке выбираем модификатор SubSurf, который сглаживает геометрию модели, разбивая полигоны на несколько меньших. В настройках этого модификатора можно указать степень сглаживания для просмотра во вьюпорте — Levels, и для рендеринга — Render Levels. Включение настройки Optimal Draw снизит нагрузку на видеокарту, отображая лишь основные линии геометрии.
После выполнения этих действий вас, скорее всего, не устроит качество модели — не страшно: вернитесь в режим редактирования, добавьте несколько дополнительных разрезов, отредактируйте положение уже существующих.
Рис. 6. Модель до и после доводки
Ну и напоследок несколько советов и замечаний:
. Сохраняйтесь! Быстрое сохранение — Ctrl+W.
. Не бойтесь эксперементировать; отмена действия — Ctrl+Z, повтор — Ctrl+Shift+Z или Ctrl+Y.
. Основные цифровые клавиши переключают слои отображения. Нажать несколько цифровых клавиш с зажатым Shift — значит, включить отображение сразу нескольких слоев. Клавиша M переносит объект на определенный слой.
. Удалите центральную вершину в основании цилиндра — это упростит редактирование ножки; X — удаляет выделенное.
. Переключаться между режимом отображения сетки и освещенного сплошного объекта можно с помощью выпадающего списка в заголовке окна 3D View или клавиши Z.
. Можно использовать точные значения масштабирования, переноса и вращения, вводя числовые значения после нажатия S, G или R соответственно. Если нажать при этих операциях Shift, то будет увеличена точность, если жать Ctrl — будет использоваться привязка к сетке.
. Отслеживать и вручную корректировать положение объектов в сцене можно с помощью небольшой панельки, вызываемой в окне 3D View по клавише N. Устанавливать 3D-курсор в конкретное место можно с помощью панели View Properties из пункта меню View в заголовке окна 3 View.
. Дополнительные операции полигонального моделирования вызываются клавишей W.
. Панели с кнопками в Buttons Windows можно масштабировать (колесиком мыши с зажатым Ctrl), выстраивать горизонтально, вертикально или произвольно (клик правой кнопкой мыши в Button Window), объединять или разъединять (drag'n'drop за заголовок панели) и сворачивать (клик по треугольнику в заголовке панели).
. Развернуть какое-либо окно на все программное окно можно с помощью Ctrl+UpArrow или Ctrl+DownArrow. Этими же сочетаниями возвращается предыдущий вид интерфейса.
. Ctrl+LeftArrow и Ctrl+RightArrow переключают интерфейс между 5 заранее заданными настройками: Animation, Model, Material, Sequence, Scripting. Эти же варианты можно выбрать из выпадающего меню заголовка окна User preferences.
. Настроенный интерфейс можно установить как стандартный стартовый сочетанием Ctrl+U.
. С помощью Shif+F можно управлять камерой игровыми WASD, зажатие колесика позволяет стрейфиться, вращение же колесика ускоряет или замедляет перемещение.
. Вот несколько сайтов на русском, посвященных Блендеру: www.blenderteam.net, blenderlearn.blogspot.com, blender3d.org.ua. А из зарубежных крупнейшим новостным сайтом по Блендеру является blendernation.com, а на montagestudio.org много качественного видео по полигональному моделированию.
На этот раз все. Продолжение следует.
Вопросы по материалу шлите на ящик: azazeo.ainamart@gmail.com
Дмитрий Табакеров aka Az Ainamart
Компьютерная газета. Статья была опубликована в номере 40 за 2008 год в рубрике soft