单节点

blender的单个节点,单从ui上来说,由以下几个部分构成

  1. 显示节点名字或标签的头部
  2. 输入接口
  3. 输出接口
  4. 除接口位置的节点面板

多节点

扩展到数个节点,则又多了几个选项

  1. 两个节点间接口的有效链接
  2. 两个节点中接口的无效链接(红色)
  3. 三个节点,禁用(mute)中间节点后,出现的隐式链接

节点树

回到节点树,或者说节点组,我们又多了个输入和输出的节点接口,这是当整个节点树作为组的时候所具备的属性

让我们从数据层面理一理:
当我们要访问一个节点树的时候,可以从context.space(当前鼠标所在区域)或者data(blender文件数据)来访问
如:
bpy.context.space.node_tree
bpy.context.space_data.edit_tree (只读)

访问节点树内的节点,我们也有这两个方向,context鼠标位置或者是data,这里暂时先讨论data的方式,之后涉及到屏幕绘制时,再补充context的部分。节点依附于节点树,所以我们需要获得节点树后才能访问节点

  1. # 使用方法来访问
  2. node_tree = bpy.data.node_groups.get('节点树名字')
  3. if node_tree: node = node_tree.nodes.get('节点名字')
  4. # 直接访问,当节点树/节点不存在会报错
  5. # node_tree = bpy.data.node_groups['节点树名字']
  6. # node = node_tree.nodes['节点名字']