Dov'è l'Alpha Convert Node in Python?

Aug 19 2020

Non voglio che il mio alpha venga premoltiplicato durante il salvataggio delle immagini. In Blender puoi usare il compositore Alpha Convert Node per convertire da Premultiplied a Straight. Non riesco a trovare questo nodo nell'API Python .

Risposte

3 brockmann Aug 19 2020 at 20:13

CompositorNodePremulKey

Puoi trovare un elenco completo dei tipi di nodi del compositore disponibili qui:https://docs.blender.org/api/current/bpy.types.CompositorNode.html.

alpha_convert = tree.nodes.new(type='CompositorNodePremulKey')
alpha_convert.mapping = 'PREMUL_TO_STRAIGHT'

Tuttavia, a volte è piuttosto difficile da capire poiché i nomi non corrispondono realmente. Suggerirei di creare manualmente il nodo nel compositore e stamparlo typesulla console per avere un'idea:

import bpy

class NodeOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "node.simple_operator"
    bl_label = "Simple Node Operator"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.type == 'NODE_EDITOR'

    def execute(self, context):
        space = context.space_data
        node_tree = space.node_tree
        node_active = context.active_node
        
        print (node_active.type)
        return {'FINISHED'}

def register():
    bpy.utils.register_class(NodeOperator)

def unregister():
    bpy.utils.unregister_class(NodeOperator)

if __name__ == "__main__":
    register()

Oppure usa l' Node.bl_rnaattributo che restituisce la struttura effettiva (da cui copiare il nome):

>>> node_active.bl_rna
<bpy_struct, Struct("CompositorNodePremulKey")>

Correlati: controllo del compositore da python