Принципиальные схемы в Blender. FreeStyle

P.S. Месяц назад (вроде уже год пролетел и я всё же решился опубликовать, вдруг это кому-то пригодится.) решил написать короткую статью о рисовании схем в Blender, но в процессе написания подумал, что нужно чуть больше углубиться в Freestyle. Статья разрослась и так получилось, что не успел закончить, а потом и вовсе забыл про неё и вот сегодня увидев в черновиках решил опубликовать, плюс добавить немного информации о графиках.ВведениеВспомнил сегодня о способе создания чертежей с помощью FreeStyle, и подумал, почему бы не применить его в рисовании электронно-принципиальных схем (Вспомнил, что когда то в детстве видел вроде таких схем к советской радиоаппаратуре).747a31f67a59ee00250995a703012936.png

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

Для того чтобы начать, понадобится собственно Blender, последнюю версию которого можно скачать с офф. сайта (хотя я надеюсь что читатель знаком с основами данного ПО и Blender уже установлен).

Для начала я немного расскажу о рендере FreeStyle, он не так давно был интегрирован в Blender, но как отдельный плагин существовал ранее.

FreeStyle Данная часть больше рассчитана на новичков, поэтому если вы знакомы с Blender и FreeStyle, то можете смело её пропускать.FreeStyle — нефотореалистичный 1 рендер. В основном его применяют для создания 2D графики, аниме.

Если кто плохо знаком с Blender, то я рекомендую для начала выставить следующие настройки:

* По умолчанию к подсказкам Blender отображаются Python ссылки, которые нужны в основном для тех, кто пишет скрипы. Отключим их, что бы не мешались.Запускаем блендер, далее File → User Preferences…, и на первой вкладке Interface снимаем галочку с Show Python Tooltips.

ee03c187f61fc696000d3eee3b340697.png(Вторая половина рисунка лишь для того что бы показать всплывающую подсказку)

* Теперь включим локализацию всплывающих подсказок.Переходим на вкладку System, ставим галочку на International Fonts, нажимаем Tooltips, Настоятельно не рекомендую переводить весь интерфейс, некоторые слова невозможно дословно перевести, и часто смысл переведённого слова просто непонятен или теряется.

c732d66a7bd5bd1c587abcc3b2aee669.png

Закрываем окно настроек, переходим на вкладку Render, ставим галочку на FreeStyle

75de76e71ca8caade3b0d149324a8e1a.png По умолчанию некоторые настройки уже сделаны, и если нажать F12 или Render → Render ImageТо стандартный рендер отрисует нам 3D картину, а FreeStyle рассчитает грани и поверх изображения выведет нужные линии.

9b4440ef214fb8fe419c36d916ce3743.png

Теперь задача следующая, есть куб 9 граней которого нам видны, 3 скрыты.Требуется белым цветом выделить видимые грани, толщина линий 10 px. Скрытые грани прочертить оранжевыми, почти прозрачными (допустим на 80%) штрих пунктирными линиями, толщиной 1.5 px. Внешний контур заштриховать, «размашистой», волнистой линией толщиной в 1.5 px.

Итак задача поставлена, начнём.

Выделяем куб в окне 3D вида, переходим на вкладку Materials, выбираем чёрный цвет для куба. Так будет лучше видно выделенные границы, а сам куб будет в роли заливки.

ed7b63d77ab0c5ef3c23d152d2fccd1a.png Cледуем на вторую вкладку Render Layers к настройкам.

d6ca7f6953192aca6a23a286e2686ff3.png Открываем пункты Freestyle Line Set и Freestyle Line Style, которые нужны для настройки отображения линий и стиля линий соответственно.Для удобства переименуем пункт «LineSet» в «Visible» пункты a, b рисунка. Здесь мы настроим отрисовку видимых граней. В пункте Visibility нажимаем на кнопку Visible ©. По умолчанию она активна. Теперь изменим цвет линии и толщину. Делается это в пункте Freestyle Line StyleНажимаем Color (d), выбираем белый цвет, нажимаем Thickness (e) и в поле Thickness: выставляем значение 10.000

16c265ac554a12a2d8bd0eb9892810a3.png Нажимаем F12 и смотрим на результат. Обратите внимание на углы, особенно на выделенный нижний.

4103540d343f8836c0321073cf9fcdce.png У нас не состыковка вышла, т.к. углы линии прямые, для того что бы этого избежать в Freestyle Line Style ищем кнопку Strokes и в свойствах Caps: выбираем круговое перекрытие Round Кстати имя линии тоже можно назначить.

e69c53ed99f84ed7905e0f3b1bd06791.png F12. Так гораздо лучше.

d240c8013b7a3e315636c9e73e1a47ca.png Добавим новую линию в набор линий нажатием на +По аналогии с предыдущими линиями называем их «Hidden», только на этот раз выбираем в пункте в место Visibility, Hidden. Настройкой Visibility мы говорим рендеру, какие грани следует отрисовывать, в данном случае мы указали те, которые скрыты. Меняем цвет линии в Color на оранжевый, задаём толщину линии в Thickness, выставляем 1.500.b0f0d8977c01d4215db7eeb779327f95.png Теперь в разделе Stroke активируем пункт Dashed Line так как показано на рисунке. В этом пункте мы выставляем длину промежутков в пикселях. Первый промежуток — штрих (14 px), второй — разрыв (7 px), третий — штрих (3 px), четвёртый — разрыв (7 px). Два последних не используем, поэтому выставляем длину промежутка равной 0 px, т.е. пятый — штрих (0 px), шестой — разрыв (0 px).

7e67cc3e03e7477fbd0e749958e85819.png Переходим в раздел Alpha, в поле Base Transparent изменяем Alpha, вписываем значение 0.200, это как раз 20%, т.е. на 80% линии будут прозрачны.

F12. Вот что получилось.

4ca53eaecdb55fff1dce7a4b418bc47b.png Остался последний пункт, выделить внешний контур (на рисунке ниже закрашено красным)

035c824370682747a5ef41e533d3aee6.png Откройте окно 3D редактора, выделите куб и нажмите Tab для перехода в режим редактирования. Что бы лучше было видно грани нажмите Z. Для того что бы перейти в режим выделения рёбер нажмите на соответствующую пиктограмму.

f458e22c06213ce4475b67dc3777527c.png Теперь правой кнопкой мыши, зажав Shift выделите нужные рёбра. Нажмите Ctrl+E и из выпадающего меню выберите пункт Mark Freestyle Edge. Таким образом мы отмечаем рёбра которые хотим использовать в наборе. Выходим из режима редактирования Tab.Наш куб всё ещё выделен, поместим его в группу Ctrl+G Переименуем группу в cube_group. Для этого можно использовать боковую панель 2, либо следом за Ctrl+G нажать F6 и ввести название.

4dd7ec19fab1fbda16c62bbee2013440.png Группы очень полезны, к примеру если у нас есть два куба на которых мы отметили рёбра через Mark Freestyle Edge, и нам требуется что бы рёбра первого куба были синими, а на второго красными, то просто раскидываем на разные группы. Позже в настройках набора линий я покажу где выставляется группа для набора линий.

Добавляем третий набор линий в список линий. Дадим ему имя, к примеру «Wave»

b6715b798cc0474842b1fcce173c58a4.png Отожмём кнопку Visibility, и нажмём Group. Снимаем все галочки кроме Edge Mark и добавляем набор в группу cube_groupПереходим к настройки стиля линий. Вновь меняем цвет линии в Color на красный, задаём толщину линии в Thickness, выставляем 1.500. Теперь во вкладке Geometry добавляем 2 новых модификатора, Sinus Displacement и Spatial Noise. Как из названия видно, первый нужен для того, что бы создать из прямой волну, второй для добавления шума.Выставляем настройки модификаторов примерно так же как на рисунке ниже…

c8c26fa97b2e0a0a51afd772883ebb8d.png Рис. 5F12Должно выйти примерно так.

5c5a6263fb4dbf1f42506bb2859ef050.png Пожалуй это всё, о чём я хотел рассказать про FreeStyle

В дополнение тут можно скачать файл проекта.

Подготавливаем сцену Открываем новый проект. Удаляем куб (для этого выделяем его и нажимаем X). Выделяем камеру, и в окне Properties3, изменяем значения положения камеры на X: 0, Y: 0, Z: 10, значения поворота выставляем все в 0Схема у нас плоская, поэтому в настройках камеры на вкладке Data выставляем режим Ortographic.Масштабируем захватываемый объём камеры с помощью Ortographic Scale я поставил 14.Нажимаем на цифровой клавиатуре 04 для переключение на просмотр из камеры.Устанавливаем 3d курсор в центр экрана, для этого жмём пробел, в появившемся меню пишем «snap», и из оставшегося списка выбираем Snap Cursor to Centerda476f066ec991f47b1929be4552218c.png

Добавим плоскость. Shift+A выбираем Mesh → Plane

e336a0237aba3ddacc3737d979202329.png Не снимая выделения, отмасштабируйте плоскость до нужных размеров нажатием клавиши S.Нажмите Tab для перехода в режим редактирования. Затем W, выбираем Subdivide. В левой боковой панели2 выставите значение Number of Cuts в 20, в место неё вы можете использовать всплывающее окно по F6.Должна появиться сетка как на рисунке ниже.

dc537ddca335d31f1b8d5374ecd328d3.png

Не снимая выделения с рёбер нажмите Ctrl+E и из выпадающего меню выберите пункт Mark Freestyle Edge.Выходим из режима редактирования Tab.Наша плоскость всё ещё выделена, поместите её в группу Ctrl+G. Переименуйте группу в plane_group.Во вкладке настроек материала, задайте синий цвет для плоскости.Во вкладке настройки мира установите параметры как на рисунке.

98bf17b0a9fa3cf3a6430c30d61458aa.png Можно переместить источник света чуть правее и увеличить его яркость до 2х, пункт Energy вкладки Data.

Включите Freestyle на вкладке render, и настройте набор линий на вкладке render layersНужно закрепить за набором группу «plane_group», установить значение Edge Mark, выбрать белый цвет линий, выставить прозрачность в 50%, и толщину линий в 0.5 px.

a429ee7defb4ee5de6bb4a991dbc4e46.png

F12, должно получится вроде этого.

2f6e1dd2434697a6043c5973a897cbe1.png

Теперь добавим тёмные, чуть заметные линии. Продублируйте плоскость 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.5 px.

dd55202fbb016d307fc6f55cfa629349.png Продолжение следует… Примечания 1) Нефотореалистичность здесь следует воспринимать как особенность2) Если у вас отсутствует левая панель «Tool Shelf», то воспользуйтесь горячей клавишей T для вызова.Файл примера.

© Habrahabr.ru