Робототехника интересна тем, что это синтез многих направлений — программирование, конструированием, математика, физика и так же есть моделирование. В том году, ко дню Космонавтики мы делали небольшой пост про моделирование корабля Восток-1 с помощью OpenSCAD, в этот раз — продолжим традицию, и попробуем на практике — Blender. Навык моделирования — лишним не будет.
Blender — это кроссплатформенная, бесплатная система для 3д моделирования (+анимация), и так же в ней возможно «рендерить» модели.
Создание 3д моделей, тем более космических кораблей — это не простая задача, и могут уйти месяцы. Но мы воспользуемся уже готовыми 3д моделями корабля Восток-1 (расскажем где они находятся), и создадим простую 3д сцену.
Модели корабля Восток-1
Во первых, расскажем об источнике моделей — они выложены на github — их автор Славутинский Виктор — создавал их для авиа-симулятора FlightGear, за его работу — большое спасибо.
Установка Blender
С установкой Blender никаких проблем не должно быть, с официальной страницы скачивается дистрибутив для вашей ОС — распаковывается, и запускается.
Импорт AC3D в Blender
Файлы моделей для FlightGear в формате AC3D (*.ac) — нам необходимо импортировать их в Blender. Для этого есть плагин Blender-AC3D.
Установка плагинов заключается в копировании папки в папку с плагинами, мне потребовалось скопировать папку «io_scene_ac3d», в папку моего дистрибутива «blender-2.76b-linux-glibc211-x86_64/2.76/scripts/addons/». После этого необходимо активировать плагин, для этого (после перезапуска Blender) выбираем меню «File» — «User Preferences ...» — на вкладке «Addons» в поле поиска набираем ac3d — и отображается наш плагин, ставим напротив него «крыжик» — с этого момента плагин становится доступным (если мы хотим чтобы он всегда подключался — нажимаем на кнопку «Save User Setting»).
Теперь мы можем импортировать модели в формате *.ac — выбираем «File — Import — AC3D».
Модели Восток-1
Модели находятся в папке Models, в соответствующих (говорящих) под-папках:
ControlHandle Effects Exhausts GasHandle Illuminators LeftPanel LeftSwitchPanel MainPanel Parachutes RightPanel RightSwitchPanel Seat Spacecraft Vzor
Например, это результат рендеринга в Blender файла LeftPanel/Vostok-1-Left-Panel.ac:
Или MainPanel/Vostok-1-Main-Panel.ac:
Там смоделирован полностью Восток-1, от ракеты, до спускаемого аппарат, и кабины космонавта.
Со временем, для упрощения работы — все файлы будут переведены в формат Blender, и размещены здесь Vostok-1-blender.
Сцена
Тестовая сцена, что использовалась для рендеринга нашей картинки выложена на github (файл Vostok-1-scene.blend), и после её открытия вы увидите
Процесс создания
Для создания сцена необходимы 3 элемента:
- 3д объект
- фоновая картинка
- освещение
3d объект нашего космического аппарата Восток-1 можно взять сразу в формате Blender (файл Vostok-1.blend там же). Фоновая картинка была импортирована с помощью плагина «Import Images as Planes» (по-умолчанию он выключен, его надо найти в списке Add-ons — и активировать). Появляется соответствующая функция:
В этом случае — картинка становится объектом «панель» с которой удобно работать и размещать на 3д сцене.
Основные операции
Вкратце коснемся базовый действий при работе со сценами в Blender (для самых начинающих).
Во первых это ориентирование в пространстве — для этого нажимается средняя клавиша мыши, и происходит перемещение точки обзора.
Работа с объектами: выделение объекта — права клавиша мыши (но все советуют переделать её на левую).
С выбранным объектом — можно производить действия:
- перемещение [G]
- вращение [R]
- масштабирование [S]
Как правило, это делается через клавиатуру — нажимаются соответствующие клавиши — и модель переходит в соотв. режим. Можно указывать данные для перемещения, вращения — сразу на клавиатуре, выбрав соотв. ось (x, y, z).
Например, если вы откроете сцену по-умолчанию — там сразу будет выбран куб (это видно слева внизу, где кстати видны и оси), и нажав на клавиатуре, последовательно следующие клавиши «g y 3 Enter» — мы сместим его по оси Y на 3 клетки. А эта комбинация «r y 45 Enter», повернёт его вокруг оси y на 45 градусов:
Далее удобной функцией является работать в координатах объекта — для этого надо два раза нажать на название оси — визуально будет подсвечена ось, либо в глобальной системе координат, либо локальной, например повернуть вокруг оси z (куба) на 45 градусов: «r z z 45 Enter»:
Планы просмотра
С помощью клавиш на правой цифровой панели можно переключать виды — 0,1,2,3…
0 — это вид с камеры, то, что будет рендериться (отображается рамкой та зона сцены, что будет захвачена):
Рендер
Для запуска рендера — нажимаем на клавишу F12 — Blender начнёт отрисовывать сцену с помощью Cycles Render. Esc — остановка. F3 — сохранение результата (картинки).
Качество рендеринга зависит от количества Samples — чем их больше — тем более реалистичная сцена будет, но тем дольше будет происходить рендеринг.
Этот ключевой элемент настраивается в блоке Render — это иконка «Фотоаппарат» — справа в панели инструментов:
и есть возможность выбрать из выпадающего списка «Preview» или «Final», или выставить вручную значение «Samples Render» — я рендерил на значении 200. Для качественных результатов — увеличивают значение.
Элементы
Все элементы на сцене — составляют иерархию, и её можно видеть в правом верхнем окне:
Мы видим, что у нас есть:
- Camera — с помощью камеры мы получаем картинку
- Sun — это источник освещения — что создёт эффект Солнца на нашей 3д модели
- Sun.001 — это источник света — что создаёт эффект отражения света от Земли
- Vostok-1 — это родительский объект для нашей модели корабля Восток-1
- earth_from_space — это панель с текстурой картинкой Земли — для получения эффекта нахождения в космосе
Освещение
Основным источником света на нашей сцене — является Солнце. Для изменений параметров — выбираем этот элемент в иерархии элементов, и нажимаем на панели инструментов на иконке «Солнце»:
Здесь можно изменять — размер «Солнца» — «Size» — чем меньше — тем меньше угловой размер источника света. И так же Strength — определяет силу света.
Изменяя эти параметры — можно менять уровень освещения модели Солнцем.
Так же у нас есть фоновое освещение, это настраивается на вкладке «World» (иконка Земля):
И нажимая на Color:
видим, что в нашем примере фоновое освещение выставлено на уровне — 0.005
Поворот 3д-модели
Для работы с моделью — выбираем элемент Vostok-1 на иерархии элементов, и можем перемещать или поворачивать (например, для изменения разного угла падения света), делаем это с помощью клавишных команд: «R», далее ось — («x», «y», «z») — вокруг которой хотим повернуть (нажимаем два раза — если это ось относительно объекта) — и далее двигая мышку — можем видеть сразу изменения — «Enter» — для подтверждения изменений или «Esc» для отмены.
Эксперименты
Конечно, это лишь простая сцена, но даже здесь можно варьировать разные параметры, и смотреть, что получится
Благодарности
Ещё раз хочется выразить благодарность Славутинскому Виктору — за его титаническую работу по 3д моделированию Восток-1. Так же благодарность Михаилу Шаблину — что поддержал меня в этом начинании, и уделил время на мои вопросы.
Дальше
Конечно — это лишь мала часть возможностей Blender, не рассмотрена анимация, работа с текстурами, работа с видео, звуком и т.п.
Русскоязычные ресурсы для самостоятельного изучения Blender:
- Курс по основам Blender 2.7+
- Видео-курсы “3D-мультфильм с нуля” (Артур Шамшадинов и Co)
- вышла русскоязычная (оригинальная, не переводная) книга по Blender: «Прахов А.А. Самоучитель Blender 2.7»
Автор: MakeItLab