Вращение текстуры нодами

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

Нод Mapping, совмещающий в себе инструменты перемещения, вращения и изменения масштаба текстуры, покрывает большинство задач текстурирования. Однако часто его возможностей недостаточно. Его основной недостаток в том, что он позволяет задавать значения для регулировки только в определенных полях внутри самого нода. Эти поля не имеют выходов наружу и к ним нельзя подсоединить связи от других нодов дерева.

При помощи связки других нодов можно реализовать нужный функционал, лишенный недостатка нода Mapping. Рассмотрим, как построить связку нодов для вращения текстуры вокруг оси Z объекта на случайную величину.

Читать далее «Вращение текстуры нодами»

Еще один способ сделать резьбу в Blender

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

Читать далее «Еще один способ сделать резьбу в Blender»

Создание плавающей панели в аддонах Blender

Для размещения элементов пользовательского интерфейса при разработке аддонов Blender кроме обычных панелей (N/T/Properties) и их подпанелей можно использовать и так называемые плавающие панели – появляющиеся на экране в произвольном месте при нажатии пользователем определенного сочетания клавиш или при совершении им какого-либо действия. Простейшим примером таких панелей является панель, появляющаяся при нажатии клавиши f6 сразу после добавления в сцену какого-либо объекта (shift+a).

API Blender предоставляет разработчикам возможность создавать подобные панели для своих аддонов. Рассмотрим процесс создания плавающей панели на примере всплывающего окна с сообщением типа “Messagebox”.

Читать далее «Создание плавающей панели в аддонах Blender»

Создание труб и проводов в Blender с помощью кривых

Моделировать тонкие протяженные объекты вроде труб и проводов при создании сцен приходится достаточно часто – в интерьерных сценах, научных, технических или фантастических. Одним из самых простых и удобных способов создания подобных объектов – использовать кривые (curves).

Основным достоинством кривых является простота управления и редактирования: в любой момент можно менять форму кривой, передвигать ее точки, добавлять новые и удалять лишние. Плюс, работать приходится не с большим количеством точек меша, а, что гораздо удобнее, всего с одной-двумя точками кривой. Расчет сцены для рендера с кривыми так же производится быстрее, чем с мешами.

Читать далее «Создание труб и проводов в Blender с помощью кривых»

Установка Blender на сервер Debian (Linux)

Одной из интересных особенностей Blender является то, что графический интерфейс пользователя UI совершенно не является необходимым для его работы. Можно установить Blender на операционую систему без графической оболочки и успешно рендерить свои сцены. Обычно подобная установка Blender требуется для организации различного рода рендер-ферм.

Для примера рассмотрим установку Blender на серверную операционную систему Debian.

Читать далее «Установка Blender на сервер Debian (Linux)»

Рендер тени на прозрачном фоне

Часто бывает необходимо получить рендер какого-либо объекта с отбрасываемой им тенью на прозрачном фоне. Такая задача возникает если требуется реалистично встроить 3D-объект в фотографию или же при использовании полученного изображения в качестве спрайта в компьютерной игре.

В Blender нет специального шейдера, так называемого “Shadow catcher”, как в 3D Studio Max, который, оставаясь прозрачным, отображал бы тень. Однако добиться желаемого результата все же возможно.

Рассмотрим, как можно получить рендер тени на прозрачном фоне средствами Blender:

Читать далее «Рендер тени на прозрачном фоне»

Борьба со ступенчатостью при сохранении градиента в JPG

Простой градиентный фон может значительно улучшить восприятие итоговой картинки. Например, сердечко на градиентном фоне заметно выигрывает у того же самого сердечка, размещенного на белом фоне.

Однако, если подобное изображение требуется сохранить в формате JPG, градиент из плавного часто становится ступенчатым, что сильно портит впечатление от рисунка. Этот неприятный эффект называют “banding”. Можно ли как-то его побороть?

Читать далее «Борьба со ступенчатостью при сохранении градиента в JPG»

Копирование отдельного модификатора на несколько объектов

Для сложных объектов иногда бывает необходимо добавить определенный модификатор на каждую составляющую его часть. Самый простой способ – последовательно перебрать все части объекта и добавить нужный модификатор на каждую. Но если объект состоит из множества частей, это займет уйму времени.

Рассмотрим способы, которыми можно значительно облегчить эту работу:

Читать далее «Копирование отдельного модификатора на несколько объектов»

Вы все еще начинаете с дефолтного куба?

На секунду задумайтесь – в каком количестве реальных сцен вы действительно что-то создали, использовав этот самый дефолтный куб?

Удаление дефолтного куба

Немного, правда? Но все равно, каждый раз создавая чистую сцену, вы нажимаете: x – delete. Снова и снова. Давайте уже наденем белые перчатки фокусника и раз и навсегда избавимся от этого бесмыссленого действия:

Читать далее «Вы все еще начинаете с дефолтного куба?»

Совмещение цветного рендера с “гипсовым”

Для эффектной демонстрации своих работ хорошим приемом является показ рядом с цветным рендером еще и “гипсового” (Clay render) – подчеркивающего объем, освещение, топологию моделей, а так же, в случае фотореалистичного рендера, хорошо показывающего “тридешность” сцены. Еще более эффектным приемом может стать совмещение этих двух рендеров в одном изображении.

Совмещенный рендер

Читать далее «Совмещение цветного рендера с “гипсовым”»

Символьные ссылки, как средство повторного использования кода при разработке аддонов Blender

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

Использование символических ссылок при разработке аддонов
Использование символьных ссылок при разработке аддонов

Python, в соответствии с правилами импорта пакетов, предоставляет возможность подключать модули следующими способами:

Читать далее «Символьные ссылки, как средство повторного использования кода при разработке аддонов Blender»

Создание многофайлового аддона

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

Blender на уровне Python поддерживает модульную систему компоновки кода, что позволяет разносить логические части аддона по отдельным файлам, после чего подключать их для использования там, где необходимо. Даже если вы ни разу не задумывались об использовании модулей, создавая скрипты или аддоны, вы с ними уже сталкивались – любой код, сохраненный в файл *.py, представляет из себя отдельный самостоятельный модуль. Просто ваш аддон состоял всего лишь из одного модуля. Сложные же аддоны могут состоять из нескольких десятков подключенных модулей.

Мультифайловый аддон
Мультифайловый аддон

Читать далее «Создание многофайлового аддона»

Как отследить ошибку, если Blender закрывается вместе с консолью

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

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

Запуск Blender из интерпретатора командной строки cmd
Запуск Blender из интерпретатора командной строки cmd

Для запуска Blender из интерпретатора командной строки нужно:

  1. Запустить сам интерпретатор (“Пуск” – Выполнить – cmd)
  2. В окне cmd ввести полный путь к установленному Blender. Например: C:\"Program Files"\blender-2.78a-windows64\blender.exe

Часть пути, если в нем есть пробелы, нужно заключить в двойные кавычки – как “Programm Files” в примере.

В поисках идеальной сферы

С моделированием сферических поверхностей мы сталкиваемся достаточно часто. Казалось бы, сфера – самый простой объект для моделирования и любой графический редактор, и в том числе и Blender, предоставляет по умолчанию сферу в наборе основных примитивов – остается лишь добавить ее в сцену. Однако, действительно ли так просто создать на самом деле красивую сферу?

8
8

Читать далее «В поисках идеальной сферы»

Создание панелей для размещения интерфейса пользователя (UI) в аддонах Blender

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

Весь доступный интерфейс пользователя Blender располагается на панелях, три из которых используются в работе чаще всего. Это T-панель – открывается и скрывается по нажатию клавиши t, N-панель – открывается и скрывается по нажатию на клавишу n, и панель свойств Properties – вызывается в главном меню любого окна выбором его типа как Properties.

API Blender предоставляет возможность определить свою пользовательскую панель для размещения кнопок вызова функционала аддона в любой из этих главных панелей.

Читать далее «Создание панелей для размещения интерфейса пользователя (UI) в аддонах Blender»

Создание аддона для Blender

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

Пользовательский аддон в Blender
Пользовательский аддон в Blender

Читать далее «Создание аддона для Blender»

Подключение внешней IDE PyCharm для написания скриптов в Blender

Для написания скриптов на языке Python в Blender уже имеется встроенный текстовый редактор. Однако по своим возможностям он значительно уступает специально разработанным для написания кода IDE. Во встроенном редакторе Blender отсутствует грамотный автокомплит, не очень удобная подсветка, нет возможности организовывать проекты – всех тех вещей, которые определяют скорость и легкость написания кода. Однако совсем не сложно для написания скриптов в Blender подключить и использовать  внешнюю IDE.

Внешняя IDE для написания скриптов в Blender
Внешняя IDE для написания скриптов в Blender

Читать далее «Подключение внешней IDE PyCharm для написания скриптов в Blender»

Создание резьбы

Для создания резьбовых соединений в Blender проще всего воспользоваться плагином, например Bolt Factory, который идет в стандартной комплектации. Однако возможностей плагина не всегда хватает, да и наложение Subdivision Surface на созданную модификатором резьбу дает не очень красивый результат. Впрочем, резьбу не сложно создать вручную.

Резьбовые соединения
Резьбовые соединения

Создадим высокополигональную резьбу, подходящую для рендера любого крупного плана.

Читать далее «Создание резьбы»

Заполнение объема насыпанием

Часто в процессе моделирования встречается задача заполнить чем-нибудь определенный объем. Например это может быть банка с зернами кофе, сахарница с кусками сахара, мешочек с драгоценными камнями, коробка с винтами и гайками, ваза с конфетами, вариантов очень много.

Банка, заполненная предметами
Банка, заполненная предметами

Все это можно сделать и вручную. Создавать копии заполняющих объектов и располагать друг над другом в случайном порядке. Однако при таком подходе слишком много сил и времени уходит на постоянные проверки, чтобы объекты не пересекались друг с другом и со стенками заполняемого объекта. Чтобы облегчить себе работу, можно воспользоваться инструментом Rigid Body – аналогом твердотельной симуляции в Blender.

Читать далее «Заполнение объема насыпанием»

Использование драйверов в нодах

В дереве нодов, созданном для разделения сторон модели планеты на “дневную” и “ночную”, присутствует один момент – при изменении положения источника освещения, его новые координаты нужно каждый раз заново указывать в нодах вручную. При быстрой настройке сцены это очень неудобно. Устранить данный недостаток можно, подключив систему “драйверов” Blender.

Использование драйверов в нодах
Использование драйверов в нодах

Читать далее «Использование драйверов в нодах»

Разделение сторон планеты на “дневную” и “ночную”

У каждой планеты, в виде “из космоса”, существует две стороны: “дневная” – освещенная светом Солнца, и противоположная – “ночная”, на которую свет не попадает.

Разделение сторон Земли на "дневную" и "ночную"
Разделение сторон Земли на “дневную” и “ночную”

При моделировании сцены с планетой, не сложно добиться такого эффекта в освещении. Достаточно оставить в сцене только один источник света и расположить его с нужной стороны. Однако, полученный результат будет совсем не так хорош, как настоящие фотоснимки из космоса. Чтобы достичь большего сходства, на “ночную” сторону моделируемой планеты стоит положить соответствующую текстуру, с затемненной поверхностью и яркими огоньками – светом ночных мегаполисов.

Читать далее «Разделение сторон планеты на “дневную” и “ночную”»

Наложение текстуры на планету

Правильное наложение текстур на планеты, при создании космического 3D пейзажа, играет одну из ключевых ролей. Если текстура наложена криво, “едет” или на ней заметны четкие швы в местах стыков – хорошей картинки никогда не получится. В Blender есть удобный способ корректно расположить текстуру на поверхности планеты.

Текстура, корректно наложенная на планету
Текстура, корректно наложенная на планету

Читать далее «Наложение текстуры на планету»

Моделирование игрального кубика

Создание модели шестигранного игрального кубика – так называемой “кости” или “дайса”. Модель создается только “геометрией” и подойдет для рендера любого крупного плана.

Игральные кости созданные в Blender
Игральные кости, созданные в Blender

Читать далее «Моделирование игрального кубика»

Создание собственной студийной HDRI средствами Blender

Следом за принятым решением улучшить рендер с помощью HDRI, обычно сразу же встает вопрос – где ее взять? Можно конечно обратиться за помощью к Google-картинкам, однако далеко не все изображения, из найденных, авторы позволяют использовать без ограничений. Как быть? Выход прост – сделать собственную HDRI своими руками. Для этого в Blender есть все инструменты.

Студийная HDRI, созданная в Blender
Студийная HDRI, созданная в Blender

Читать далее «Создание собственной студийной HDRI средствами Blender»

Запекание карты displace с геометрии

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

Баскетбольный мяч без микрорельефа (слева и по центру) и с микрорельефом (справа)
Баскетбольный мяч без микрорельефа (слева и по центру) и с микрорельефом (справа)

Наложить рельеф на мяч можно разными способами. Самый достоверный – полностью следовать геометрии реального мяча. Однако на поверхности баскетбольного мяча располагается от 10 до 35 тысяч мелких выступов, собственно и создающих его рельеф. Сделать такое моделированием можно, но итоговая модель будет весить очень много и сильно нагружать систему при рендере.

Наилучшим решением будет имитация рельефа мяча с помощью карты “дисплейса”. Но где взять необходимую текстуру? Можно детально смоделировать небольшой кусочек поверхности мяча с рельефом, после чего “запечь” с него карту рельефа для дальнейшего наложения на целую модель.

Читать далее «Запекание карты displace с геометрии»