Alpha Convert Node ใน python อยู่ที่ไหน

Aug 19 2020

ฉันไม่ต้องการให้อัลฟ่าของฉันถูกนำมาใช้เมื่อบันทึกภาพ ในเครื่องปั่นคุณสามารถใช้Alpha Convert Node ของคอมโพสิตเพื่อแปลงจาก Premultiplied เป็น Straight ฉันไม่สามารถดูเหมือนจะหาโหนดนี้ในหลาม API

คำตอบ

3 brockmann Aug 19 2020 at 20:13

CompositorNodePremulKey

คุณสามารถดูรายการประเภทโหนดคอมโพสิตทั้งหมดที่มีได้ที่นี่:https://docs.blender.org/api/current/bpy.types.CompositorNode.html.

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

อย่างไรก็ตามบางครั้งมันก็ยากที่จะคิดออกเนื่องจากชื่อไม่ตรงกันจริงๆ ฉันขอแนะนำให้สร้างโหนดในคอมโพสิตด้วยมือและพิมพ์typeลงในคอนโซลเพื่อรับแนวคิด:

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()

หรือใช้Node.bl_rnaแอตทริบิวต์ที่ส่งคืนโครงสร้างจริง (เพื่อคัดลอกชื่อจาก):

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

ที่เกี่ยวข้อง: การควบคุมคอมโพสิตโดย python