Константы
В Blender есть три математические константы, которые можно вводить в любое поле в виде их текстового представления и сразу получить число.
Эти константы:
- pi – число “Пи” = 3.1415…
- e – число Эйлера = 2,7182…
- tau – число “Тау” = 6.2831…
В Blender есть три математические константы, которые можно вводить в любое поле в виде их текстового представления и сразу получить число.
Эти константы:
В Blender 2.8 нодовый дисплейс в рендер-движке Cycles был изменен со скалярного на векторный. Если просто подсоединить черно-белую карту высот на вход Displace нода MaterialOutput, как это делалось в Blender 2.7, она не даст нужного результата.
Для того, чтобы нодовый дисплейс в Blender 2.8 рассчитывался корректно, нужно преобразовать карту высот в вектор с помощью двух нод: CombineXYZ и VectorDisplacement. Карту высот нужно подключить на вход Y нода CombineXYZ, а его выход Vector соединить со входом Vector нода VectorDisplacement. После чего соединить выход Displacement нода VectorDisplacement со входом Displacement нода MaterialOutput.
На официальном сайте Blender доступен для скачивания “релиз-кандидат №1” Blender 2.80.
Обновление BlS (Blender Interplanety Storage) до версии 1.7.0.
Однако BIS все же акцентируется на чистых процедурных материалах.
Если в панелях интерфейса аддона присутствует поле, значение которого меняет что-то в нодовом дереве, при изменении значения в этом поле нодовое дерево каждый раз перекомпилируется. Если пользователь меняет значение в таком поле зажав и двигая мышкой, слишком частая перекомпиляция нодового дерева приведет к заметным подвисаниям Blender.
Проблему лагов можно решить, используя декораторы для отложенного обновления нодового дерева.
Автор кода: Skarn
Декоратор для отложенного обновления нодового дереваRead More »
Класс для удобного создания нодов по их типу.
Автор кода: Skarn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
class NodeTreeBuilder: def __init__( self , node_tree : bpy.types.NodeTree , x : float = -200 , y : float = -200 , delimeter : float = 300 ): self._x = x self._y = y self.tree = node_tree self.delimeter = delimeter self.purge_tree() def purge_tree(self): for node in self.tree.nodes: self.tree.nodes.remove(node) def add_node( self , node_type : str , node_name : str , column : int , row : int , node_descr : str = "" ): node = self.tree.nodes.new(node_type) node.name = node_name node.label = node_descr if node_descr else node_name node.location = (self.delimeter * column + self._x, -self.delimeter * row + self._y) return node |
Простейший способ пикселизировать текстуру, не важно процедурную или растровую, – взять цвет одного пикселя текстуры и заполнить им область с нужной высотой и шириной, определяющими разрешение пикселизации.
Возьмем для примера простую процедурную текстуру градиента от красного цвета через зеленый к синему.
Для того, чтобы пикселизировать данную текстуру попробуем немного поманипулировать с векторами.
В официальном твиттере Blender анонсирован выход “релиз-кандидат” версии 2.80 на 11 июля.
Также указано, что выход финальной релизной версии будет через одну-две недели после релиз-кадидата.