Как найти ноды в shader editor blender

$begingroup$

I move around in shader editor panel and become too far away from the nodes. I tried to go back to the nodes but can not find them. Any method or hot key to locate nodes in the shader editor “Black Sea”?

asked Mar 18, 2020 at 3:26

Rayman's user avatar

$endgroup$

$begingroup$

Press the Home key to show all nodes.

answered Mar 18, 2020 at 4:21

Electric_Wizard's user avatar

$endgroup$

1

$begingroup$

Method 1: Press F3 then type in: «Find Nodes»

Method 2: In Shading editor panel Select > Find Nodes

quellenform's user avatar

quellenform

28.9k5 gold badges32 silver badges112 bronze badges

answered Jul 21, 2022 at 3:11

Yu Zen Wang's user avatar

$endgroup$

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

$begingroup$

enter image description hereEverytime I hold scroll on my mouse to move, it like somehow teleports down and I have to scroll up again. THis time, it was WAY WORSE, as it went too far down and now I can’t find my nodes

asked Feb 7, 2021 at 6:19

M4GN3TIC _'s user avatar

$endgroup$

2

$begingroup$

You can use the Home button or press A to select all of your nodes and then use Numpad . to frame selected.

enter image description here

answered Feb 7, 2021 at 6:26

Allen Simpson's user avatar

Allen SimpsonAllen Simpson

12.9k2 gold badges13 silver badges54 bronze badges

$endgroup$

2

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

Чик-чирик-

Народ, а как найти ноды в шейдер эдиторе?? потеряла в

бесконечном поле))

russian

software

blender

17:46 12.01.2022


2

ответов

Похожие вопросы

Получить все доступные шейдерные ноды в виде списка можно по их типу.

Для начала, добавим в сцену любой объект, например – куб, создадим для него материал и удалим из него все ноды. Сюда, в этот материал, мы выведем все имеющиеся в Blender ноды шейдеров.

Получить все доступные типы шейдерных нодов можно с помощью структуры “bpy.types”. В ней хранится список всех доступных в API Blender типов объектов, в том числе и нодов.

Выполнив команду

dir(bpy.types)

# ‘ANIM_OT_clear_useless_actions’, ‘ANIM_OT_keying_set_export’, ‘ANIM_OT_update_animated_transform_constraints’, ‘Action’, …

мы получим список имен всех доступных в API типов объектов.

Все типы нодов шейдеров наследуются от типа “ShaderNode”. Следовательно, для того, чтобы получить из общего списка только типы нодов, нужно проверить не наследуется ли конкретный тип от “ShaderNode”.

Проверку наследования одного типа от другого можно выполнить при помощи команды

issubclass(_CHECK_TYPE_, _PARENT_TYPE_)

она вернет True, если тип _CHECK_TYPE_ наследуется от типа _PARENT_TYPE_.

Функция “issubclass” сравнивает типы а не их текстовые представления, которые мы получили с помощью функции “dir”. Чтобы получить сам тип по его текстовому имени воспользуемся тем, что в Python любой тип является одновременно и атрибутом модуля, в котором он описан. Следовательно, получить тип, описанный в “bpy.types” можно с помощью команды:

getattr(bpy.types, _TEXT_TYPE_)

Имея список типов нодов, можно добавить в текущий материал сами ноды по их типу.

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

import bpy

node_tree = bpy.context.object.active_material.node_tree

Зададим начальные значения для расположения нодов.

location_x = 0

location_y = 0

Пройдем по всем возможным типам объектов API:

for type in dir(bpy.types):

    real_type = getattr(bpy.types, type)

и если тип наследуется от “ShaderNode”

if issubclass(real_type, bpy.types.ShaderNode):

добавим нод этого типа в нодовое дерево, задав для него ширину и смещение.

node = node_tree.nodes.new(type)

node.width = 250

node.location = (location_x, location_y)

location_x += 300

if location_x > 3000:

    location_x = 0

    location_y -= 600

Финальный код:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

import bpy

node_tree = bpy.context.object.active_material.node_tree

location_x = 0

location_y = 0

for type in dir(bpy.types):

    real_type = getattr(bpy.types, type)

    if issubclass(real_type, bpy.types.ShaderNode):

        try:

            node = node_tree.nodes.new(type)

            node.width = 250

            node.location = (location_x, location_y)

            location_x += 300

            if location_x > 3000:

                location_x = 0

                location_y -= 600

        except:

            pass

Часть кода, добавляющего нод в нодовое дерево, заключим в блок try – except, чтобы предотвратить ошибки при попытках создать абстрактный нод, не имеющий представления, например тот же “ShaderNode”.

После выполнения данного кода в материал будут последовательно добавлены все доступные ноды.

Blender Artists Community

Loading

Понравилась статья? Поделить с друзьями:
  • Как найти длину дуги кривой интегралом
  • Как найти утерянный айфон без симки
  • Как найти положение файла
  • Как правильно составить икигай
  • Горизонтальные асимптоты как найти калькулятор