Народ, а как найти ноды в шейдер эдиторе?? потеряла в
бесконечном поле))
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”.
После выполнения данного кода в материал будут последовательно добавлены все доступные ноды.
$begingroup$
My material node is missing in the viewer. No matter how much I mouse around, I can’t find it or add shaders to it. If I delete it, and add another material, it’s still missing.
Shady Puck
8,7156 gold badges31 silver badges61 bronze badges
asked Jun 7, 2016 at 1:41
$endgroup$
$begingroup$
Pressing numpad . (the period/full stop next to 0) will bring the selected node/s into the centre of the view.
Pressing the Home key brings all nodes into view. That is it will centre all nodes within the view and also zoom in or out so that all nodes are visible.
answered Jun 7, 2016 at 11:25
samblersambler
54.7k3 gold badges52 silver badges186 bronze badges
$endgroup$
$begingroup$
Just found my answer. Ctrl + F in the Node Editor brings up a search menu.
Shady Puck
8,7156 gold badges31 silver badges61 bronze badges
answered Jun 7, 2016 at 1:46
Kate SongKate Song
1511 gold badge1 silver badge4 bronze badges
$endgroup$
$begingroup$
Try pressing A to select all, and pressing numpad period to zoom in selected.
answered Jun 7, 2016 at 1:43
eromoderomod
2,59618 silver badges36 bronze badges
$endgroup$
You must log in to answer this question.
Not the answer you’re looking for? Browse other questions tagged
.
Not the answer you’re looking for? Browse other questions tagged
.
О сайте
На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.
Контакты
Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:
Email:
info@blender3d.com.ua
Следите за нами
Подписывайтесь на наши страницы в социальных сетях.
На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.
Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.
Содержание コンテンツ
Blender 2.77 — практика 实践
- Рендеринг
- Game Примеры создания простых моделей для игр и самих игр, и материалов для игр. После изучения этой главы Вы будете способны создавать игры средней сложности.
- Render Примеры использования движка Cycles Render с кратким описанием. В конце изучения этой главы Вы сможете быстрее разбираться в нодах.
- Игровая логика и программирование
- Game Logic Примеры настройки игровой логики в Blender. В конце прочтения этой главы Вы будете уметь создавать свою игровую логику.
- Python практика Решение задач на Python с использованием Blender. После прочтения данной главы Вы приобретете навыки написания скриптов.
Blender 2.49 — теория 이론
Старый Blender Содержит информацию о Blender 2.49. После прочтения данной части книги Вы сможете назвать основные плюсы и минусы Blender 2.49.
Blender 2.77 & 3DsMax 이론
Blender & 3DsMax Сравнение Blender, 3DsMax, Sweet Home и Art Of Illusion. После прочтения этой главы Вы будете немного знать о различиях этих программ.
Программирование 이론
- Python Этот раздел посвящен языку программирования Python и его использованию в Blender. После ее прочтения Вы будете немного ориентироваться в написании скриптов в Blender.
- OSL Здесь рассказывается о написании шейдеров на языке OSL.
- Немного об OpenGL Этот раздел посвящен библиотеке OpenGL. Послее его прочтения Вы будуте способны программировать на OpenGL.
- Введение в GLSL Немного о языке шейдеров GLSL. После его прочтения Вы сможете читать простые программы на этом языке.
- Основы Web технологий Здесь рассказывается о JS, Ajax и JSON. После изучения этого раздела Вы сможете легче ориентироваться в нодах, предназначенных для сети, в Blend4Web.
Дополнительное 이론
Постобработка изображений
- Постобработка изображений Немного о постобработки изображений. После прочтения этой главы книги Вы будете более осведомлены об эффектах, которые можно применять для изображений.
Музыкальное сопровождение
- Music Список песен и мелодий, которые могут помочь насладиться процессом работы в Blender.
CTRL+ALT+U |
CTRL+U |
SHIFT+S |
CTRL+Q |
A |
R |
G |
S |
SHIFT+D |
ALT+D |
CTRL+NUMPAD+ |
CTRL+NUMPAD- |
SHIFT+L |
SHIFT+G |
ALT+M |
F |
CTRL+ALT+SHIFT+C |
SHIFT+S |
D |
T |
I |
Shift+B |
B |
C |
Одни из главных классов Python: bpy.ops | bpy.data | bpy.types.ID
Расположение элементов интерфейса
Ссылки на материалы |
---|
|
Возможно, Вас заинтересует следующее: |
|
Общий принцип[править]
- Самым последним нодом всегда должен быть «Material Output».
- Результирующий цветовой нод должен быть подключен к сокету «Surface» или любому другому нода «Material Output».
- Результирующий нод, предназначенный для имитации мелких смещений, должен быть подключен к сокету «Displacement» нода «Material Output».
Основные ноды[править]
Shader[править]
Нод | Описание | Свойства |
---|---|---|
Diffuse BSDF | Создает матовый материал |
|
Glossy BSDF | Создает отражающий материал |
|
Glass BSDF | Создает зеркальный материал |
|
Anisitropic BSDF | Создает отражающий материал |
|
Transparent BSDF | Создает прозрачный материал |
|
Refraction BSDF | Создает преломляющий свет материал |
|
Translusent BSDF | Создает материал, позволяющий проходить через него свет |
|
Velvet BSDF | Создает тканеподобный материал |
|
Toon BSDF | Создает материал с мультяшным бликом |
|
Subsurface Scattering BSDF | Создает материал с рассеиванием под поверхностью объекта |
|
Ambient Occlusion BSDF | Создает материал с подчёркнутыми тенями |
|
Volume Absorption BSDF | Создает «грязный» материал |
|
Volume Scatter BSDF | Создает облакоподобный материал |
|
Emission BSDF | Создает светящиеся материал |
|
Texture[править]
Нод | Описание | Свойства |
---|---|---|
Image Texture | Создает новую текстуру |
|
Wave Texture | Создает материал с волнами |
|
Brick Texture | Создает кирпичный материал |
|
Color[править]
Нод | Описание | Свойства |
---|---|---|
MixRGB | Смешивает 2 цвета |
|
Input[править]
Нод | Описание | Свойства |
---|---|---|
RGB | Позволяет устанавливать цвет |
нет свойств |
Value | Позволяет установить значение (просто число) |
|
Object Info | Позволяет получить данные об объекте |
нет свойств |
UV Map | Позволяет выбрать какую UV карту использовать для текстуры |
нет свойств |
Converter[править]
Ноды для работы с RGB[править]
Карта смещения — обычная черно-белая текстура. Чем белее цвет в данной точке, тем сильнее в данной точке имитируется смещение.
Нод | Описание | Свойства |
---|---|---|
RGB to BW | Преобразует цветное изображение в черно-белое |
нет свойств |
Separate RGB | Разбивает изображение на 3 отдельных составляющих (RGB) |
|
Combine RGB | Соединяет три разделенных компонента RGB в единое изображение |
|
Invert | Инвертирует все цвета изображения |
|
Ноды для работы с векторными данными[править]
Нод | Описание | Свойства |
---|---|---|
Separate XYZ | Разбивает вектор на 3 отдельных составляющих (XYZ) |
|
Combine XYZ | Соединяет три разделенных компонента XYZ в единое изображение |
|
Шейдеры компоновщики[править]
Нод | Описание | Свойства |
---|---|---|
Mix Shader | Смешивает 2 входных шейдера |
|
Add Shader | Объединяет 2 входных шейдера |
нет свойств |
Фреймы[править]
Фрейм — обычное окно, предназначенное для группировки остальных нодов.
- Чтобы поместить ноды в него переместите ноды над ним, или (если они уже над ним), то подвигайте ноды, чтобы они были помещены в фрейм.
Настройка всех нодов[править]
Окно настройки внешнего вида нодов находится справа.
- Name — идентификатор нода для Blender.
- Label — отображаемый пользователю заголовок вверху нода.
- Чтобы у нода был специфический цвет следует установить галочку рядом с Color, а ниже выбрать ему цвет фона.
- Label Size — размер текста в пунктах.
- Shrink (только для фрейма) — подгонять ли его размер под положение крайних нодов (чтобы у фрейма был всегда минимальный размер).
Соединение нодов[править]
Сокет — кружочек.
- Серые сокеты передают числовую информацию.
- Фиолетовые сокеты передают векторную информацию.
- Желтые сокеты передают цветовую информацию.
- Зеленые сокеты предназначены для подключения нодов как результирующих для проведения с ними некоторых операций как с готовыми.
- При соединении сокетов разных цветов данные преобразуются из одного формата в другой.
- Если необходимо из одной кривой (соединяющей ноды) вывести другую, то используйте точку Reroute (из точки можно будет тянуть еще кривую к нодам).
Группы нодов (*)[править]
Blender позволяет группировать ноды — создавать их группа да так, чтобы содержимое групп было не видно пока пользователь ее не редактирует.
- Для группировки нодов с Shift выделите нужные ноды, затем нажав Shift+A из меню выберите Group -> Make Group.
- Далее Вы сразу переместитесь в режим редактирования группы.
- В режиме редактирования группы фон становится зеленоватым и появляются специальные ноды Group Input и Group Output.
- Нод Group Input содержит все сокеты, с помощью которых Вы сможете менять результат, который будет получаться при взаимодействии нодов в группе. Кратко говоря, этот нод предоставляет возможность указать параметры, которые пользователь сможет задавать выйдя из режима редактирования группы.
- Group Output — нод, который указывает какие параметры вернет группа, то есть какие параметры сможет пользователь использовать после того, как в группе обработались входные данные и получились выходные.
- Для добавления входных параметров просто подсоедняйте кривые к пустому кружочку у Group Input.
- Также и для добавления тех выходных данных, которые пользователь сможет использовать с помощью выходных сокетов группы, также присоединяйте кривые к пустому сокету (кружочку) у Group Output.
- 4.Обратите внимание, группы тоже можно группировать до бесконечности.
Входные и выходные сокеты групп[править]
Настроить входные сокеты (параметры) группы можно в окне Interface слева.
- Под надписью Inputs располагаются имена всех входных сокетов для группы.
- А под надписью Outputs — имена всех выходных сокетов группы.
- Выбрать сокет для дальнейшего его редактирования можно щелкнув по его имени в одном из списков Inputs или Outputs.
- Есть возможность также и добавить новый сокет нажав на кнопку «+» в одном из списков. В каком щелкнули добавить — в том и добавится сокет.
- Для удаления выделенного сокета следует нажать на крестик, который находится сразу под этими двумя списками.
- Для удобства можно расположить сокеты в любом порядке в любом списке.
- Нажимая на стрелочку справа от списков, направленную вверх Вы переместите сокет вверх.
- Если же нажмете на стрелочку, указывающую вниз, то сокет передвинется в вниз.
- Заметьте, что входные и выходные параметры группы будут отображаться в таком же порядке, в каком они расположены в списках Inputs и Outputs.
- И, наконец, дважды щелкая по имени сокета можно вводить ему новое имя, хотя то же самое можно делать изменяя его имя через ввод в поле Name.
Параметры сокетов[править]
Все параметры сокетов настраиваются в окне Interface.
Цветовой сокет[править]
У цветового сокета (передающего цветовые данные) есть только один изначальный параметр — цвет.
Векторный[править]
У сокета передающего векторные данные есть изначальное значение в виде вектора — его трех координат.
Скалярный (математический)[править]
У сокета передающего числовые данные изначальным значением является число.
- А параметры Minimum и Maximim позволяют указать в каком диапазоне могут быть установлены числа у данного сокета.
Шейдер[править]
У сокета передающего шейдер нет параметров.
Параметры видимости лучей[править]
Blender предоставляет возможность настройки видимости лучей для каждого из объектов индивидуально в окне Cycles Settings.
- Отключив или включив галочку у Camera Вы можете сделать невидимым или видимым объект для камеры. (Но его влияние на окружающую среду все равно будет заметно.)
- Diffuse — все диффузные лучи исходящие от объекта либо исчезнут либо станут видимыми.
- Glossy — все глянцевые лучи (отражающие) исходящие от объекта либо исчезнут либо станут видимыми.
- Volume Scatter — лучи объемного рассеивания либо смогут воздействовать на объект, либо станут невидимыми.
- С помощью Shadow можно убирать или делать видимой тень у объекта.
Комбинации клавиш[править]
Комбинации клавиш | Описание |
---|---|
Ctrl+G | Группировка нодов |
Alt+G | Разгруппировка нодов |