def make_generate_mipmaps(stage, node_group, node): stage['command'] = 'generate_mipmaps' # TODO: support reroutes link = nodes.find_link(node_group, node, node.inputs[1]) targetNode = link.from_node stage['params'].append(targetNode.inputs[0].default_value)
def make_bind_target(stage, node_group, node, constant_name, currentNode=None, target_index=1): if currentNode == None: currentNode = node stage['command'] = 'bind_target' link = nodes.find_link(node_group, currentNode, currentNode.inputs[target_index]) currentNode = link.from_node if currentNode.bl_idname == 'NodeReroute': make_bind_target(stage, node_group, node, constant_name, currentNode=currentNode, target_index=0) elif currentNode.bl_idname == 'GBufferNodeType': for i in range(0, 5): if currentNode.inputs[i].is_linked: targetNode = nodes.find_node_by_link(node_group, currentNode, currentNode.inputs[i]) targetId = targetNode.inputs[0].default_value # if i == 0 and targetNode.inputs[3].default_value == True: # Depth if targetNode.inputs[3].is_linked: # Depth db_node = nodes.find_node_by_link(node_group, targetNode, targetNode.inputs[3]) db_id = db_node.inputs[0].default_value stage['params'].append('_' + db_id) stage['params'].append(constant_name + 'D') stage['params'].append(targetId) # Color buffer stage['params'].append(constant_name + str(i)) elif currentNode.bl_idname == 'TargetNodeType' or currentNode.bl_idname == 'ImageNodeType' or currentNode.bl_idname == 'Image3DNodeType': targetId = currentNode.inputs[0].default_value stage['params'].append(targetId) stage['params'].append(constant_name) elif currentNode.bl_idname == 'ShadowMapNodeType': targetId = currentNode.inputs[0].default_value stage['params'].append(targetId) stage['params'].append(constant_name) elif currentNode.bl_idname == 'DepthBufferNodeType': targetId = '_' + currentNode.inputs[0].default_value stage['params'].append(targetId) stage['params'].append(constant_name)