Получить внутренние узлы в Blender Frame Node

Я хочу разобрать Cycles shader в своем Game Engine. У меня есть кадр, который является входом для шейдера GLSL в движке: введите описание изображения здесь Я хотел бы перебрать каждый из узлов внутри фрейма. Как? Я ничего не нашел в: https://www.blender.org/api/blender_python_api_2_78a_release/bpy.types.NodeFrame.html?highlight=frame

1 ответ

Решение

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

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

import bpy

mat_nodes = bpy.data.materials['Material'].node_tree.nodes
frame_node = mat_nodes['Frame']

frame_children = []
for n in mat_nodes:
    if n.parent == frame_node:
        frame_children += [n]
Другие вопросы по тегам