P.S. Месяц назад(вроде уже год пролетел и я всё же решился опубликовать, вдруг это кому-то пригодится.) решил написать короткую статью о рисовании схем в Blender, но в процессе написания подумал, что нужно чуть больше углубиться в Freestyle. Статья разрослась и так получилось, что не успел закончить, а потом и вовсе забыл про неё и вот сегодня увидев в черновиках решил опубликовать, плюс добавить немного информации о графиках.
Введение
Вспомнил сегодня о способе создания чертежей с помощью FreeStyle, и подумал, почему бы не применить его в рисовании электронно-принципиальных схем (Вспомнил, что когда то в детстве видел вроде таких схем к советской радиоаппаратуре).
Сразу оговорюсь, что данный способ не подходит для рисования сложных схем, выполнять такую работу в Blender дольше, чем в предназначенном для этого редакторе.
Для того чтобы начать, понадобится собственно Blender, последнюю версию которого можно скачать с офф. сайта (хотя я надеюсь что читатель знаком с основами данного ПО и Blender уже установлен).
Для начала я немного расскажу о рендере FreeStyle, он не так давно был интегрирован в Blender, но как отдельный плагин существовал ранее.
FreeStyle
Данная часть больше рассчитана на новичков, поэтому если вы знакомы с Blender и FreeStyle, то можете смело её пропускать.
FreeStyle — нефотореалистичный 1 рендер. В основном его применяют для создания Рисованной графики, аниме.
Если кто плохо знаком с Blender, то я рекомендую для начала выставить следующие настройки:
* По умолчанию к подсказкам Blender отображаются Python ссылки, которые нужны в основном для тех, кто пишет скрипы. Отключим их, что бы не мешались.
Запускаем блендер, далее File -> User Preferences..., и на первой вкладке Interface снимаем галочку с Show Python Tooltips.
(Вторая половина рисунка лишь для того что бы показать всплывающую подсказку)
* Теперь включим локализацию всплывающих подсказок.
Переходим на вкладку System, ставим галочку на International Fonts, нажимаем Tooltips, Настоятельно не рекомендую переводить весь интерфейс, некоторые слова невозможно дословно перевести, и часто смысл переведённого слова просто непонятен или теряется.
Закрываем окно настроек, переходим на вкладку Render, ставим галочку на FreeStyle
По умолчанию некоторые настройки уже сделаны, и если нажать F12 или Render -> Render Image
То стандартный рендер отрисует нам 3D картину, а FreeStyle рассчитает грани и поверх изображения выведет нужные линии.
Теперь задача следующая, есть куб 9 граней которого нам видны, 3 скрыты.
Требуется белым цветом выделить видимые грани, толщина линий 10px. Скрытые грани прочертить оранжевыми, почти прозрачными (допустим на 80%) штрих пунктирными линиями, толщиной 1.5px. Внешний контур заштриховать, «размашистой», волнистой линией толщиной в 1.5px.
Итак задача поставлена, начнём.
Выделяем куб в окне 3D вида, переходим на вкладку Materials, выбираем чёрный цвет для куба. Так будет лучше видно выделенные границы, а сам куб будет в роли заливки.
Cледуем на вторую вкладку Render Layers к настройкам.
Открываем пункты Freestyle Line Set и Freestyle Line Style, которые нужны для настройки отображения линий и стиля линий соответственно.
Для удобства переименуем пункт «LineSet» в «Visible» пункты a,b рисунка. Здесь мы настроим отрисовку видимых граней. В пункте Visibility нажимаем на кнопку Visible (с). По умолчанию она активна. Теперь изменим цвет линии и толщину. Делается это в пункте Freestyle Line Style
Нажимаем Color (d), выбираем белый цвет, нажимаем Thickness (e) и в поле Thickness: выставляем значение 10.000
Нажимаем F12 и смотрим на результат. Обратите внимание на углы, особенно на выделенный нижний.
У нас не состыковка вышла, т.к. углы линии прямые, для того что бы этого избежать в Freestyle Line Style ищем кнопку Strokes и в свойствах Caps: выбираем круговое перекрытие Round Кстати имя линии тоже можно назначить.
F12. Так гораздо лучше.
Добавим новую линию в набор линий нажатием на +
По аналогии с предыдущими линиями называем их «Hidden», только на этот раз выбираем в пункте в место Visibility, Hidden. Настройкой Visibility мы говорим рендеру, какие грани следует отрисовывать, в данном случае мы указали те, которые скрыты. Меняем цвет линии в Color на оранжевый, задаём толщину линии в Thickness, выставляем 1.500.
Теперь в разделе Stroke активируем пункт Dashed Line так как показано на рисунке. В этом пункте мы выставляем длину промежутков в пикселях. Первый промежуток — штрих (14px), второй — разрыв (7px), третий — штрих (3px), четвёртый — разрыв (7px). Два последних не используем, поэтому выставляем длину промежутка равной 0px, т.е. пятый — штрих (0px), шестой — разрыв (0px).
Переходим в раздел Alpha, в поле Base Transparent изменяем Alpha, вписываем значение 0.200, это как раз 20%, т.е. на 80% линии будут прозрачны.
F12. Вот что получилось.
Остался последний пункт, выделить внешний контур (на рисунке ниже закрашено красным)
Откройте окно 3D редактора, выделите куб и нажмите Tab для перехода в режим редактирования. Что бы лучше было видно грани нажмите Z. Для того что бы перейти в режим выделения рёбер нажмите на соответствующую пиктограмму.
Теперь правой кнопкой мыши, зажав Shift выделите нужные рёбра. Нажмите Ctrl+E и из выпадающего меню выберите пункт Mark Freestyle Edge. Таким образом мы отмечаем рёбра которые хотим использовать в наборе. Выходим из режима редактирования Tab.
Наш куб всё ещё выделен, поместим его в группу Ctrl+G Переименуем группу в cube_group. Для этого можно использовать боковую панель 2, либо следом за Ctrl+G нажать F6 и ввести название.
Группы очень полезны, к примеру если у нас есть два куба на которых мы отметили рёбра через Mark Freestyle Edge, и нам требуется что бы рёбра первого куба были синими, а на второго красными, то просто раскидываем на разные группы. Позже в настройках набора линий я покажу где выставляется группа для набора линий.
Добавляем третий набор линий в список линий. Дадим ему имя, к примеру «Wave»
Отожмём кнопку Visibility, и нажмём Group. Снимаем все галочки кроме Edge Mark и добавляем набор в группу cube_group
Переходим к настройки стиля линий. Вновь меняем цвет линии в Color на красный, задаём толщину линии в Thickness, выставляем 1.500. Теперь во вкладке Geometry добавляем 2 новых модификатора, Sinus Displacement и Spatial Noise. Как из названия видно, первый нужен для того, что бы создать из прямой волну, второй для добавления шума.
Выставляем настройки модификаторов примерно так же как на рисунке ниже…
Рис.5
F12
Должно выйти примерно так.
Пожалуй это всё, о чём я хотел рассказать про FreeStyle
В дополнение тут можно скачать файл проекта.
Подготавливаем сцену
Открываем новый проект. Удаляем куб ( для этого выделяем его и нажимаем X). Выделяем камеру, и в окне Properties3, изменяем значения положения камеры на X: 0, Y: 0, Z: 10, значения поворота выставляем все в 0
Схема у нас плоская, поэтому в настройках камеры на вкладке Data выставляем режим Ortographic.
Масштабируем захватываемый объём камеры с помощью Ortographic Scale я поставил 14.
Нажимаем на цифровой клавиатуре 04 для переключение на просмотр из камеры.
Устанавливаем 3d курсор в центр экрана, для этого жмём пробел, в появившемся меню пишем «snap», и из оставшегося списка выбираем Snap Cursor to Center
Добавим плоскость. Shift+A выбираем Mesh -> Plane
Не снимая выделения, отмасштабируйте плоскость до нужных размеров нажатием клавиши S.
Нажмите Tab для перехода в режим редактирования. Затем W, выбираем Subdivide. В левой боковой панели2 выставите значение Number of Cuts в 20, в место неё вы можете использовать всплывающее окно по F6.
Должна появиться сетка как на рисунке ниже.
Не снимая выделения с рёбер нажмите Ctrl+E и из выпадающего меню выберите пункт Mark Freestyle Edge.
Выходим из режима редактирования Tab.
Наша плоскость всё ещё выделена, поместите её в группу Ctrl+G. Переименуйте группу в plane_group.
Во вкладке настроек материала, задайте синий цвет для плоскости.
Во вкладке настройки мира установите параметры как на рисунке.
Можно переместить источник света чуть правее и увеличить его яркость до 2х, пункт Energy вкладки Data.
Включите Freestyle на вкладке render, и настройте набор линий на вкладке render layers
Нужно закрепить за набором группу «plane_group», установить значение Edge Mark, выбрать белый цвет линий, выставить прозрачность в 50%, и толщину линий в 0.5px.
F12, должно получится вроде этого.
Теперь добавим тёмные, чуть заметные линии. Продублируйте плоскость Shift+D, расположив её ниже первой.
Войдите в режим редактирования, затем W, выбираем Subdivide, изменяем Number of Cuts на 2.
Ctrl+E -> Mark Freestyle Edge.
Измените группу плоскости на вкладке Object на backplane_group, либо сначала удалите продублированную плоскость из группы путём комбинации Shift+Ctrl+Alt+G и создайте новую Ctrl+G.
Настройте набор линий. Закрепите за набором группу «backplane_group», установите значение Edge Mark, выставите прозрачность в 80% (0.200), и толщину линий в 0.5px.
Продолжение следует...
Примечания
1) Нефотореалистичность здесь следует воспринимать как особенность
2) Если у вас отсутствует левая панель «Tool Shelf», то воспользуйтесь горячей клавишей T для вызова.
Файл примера.
Автор: Zeeeee