Houdini PDG学习笔记

(一)Python Processor

1.常见属性类型

  • pdg.attribType.Int
  • pdg.attribType.Float
  • pdg.attribType.String
  • pdg.attribType.File
  • pdg.attribType.Geometry
Geometry
  • 存储Houdini几何信息
  • 只能被支持处理Geometry类型的节点使用,例如Invoke和Geometry Import
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #返回int , float , str or pdg.File类型
    item.attribValue(name)

    #字典查询,获取数值
    attrib = item[name][0]

    #设置属性
    item.setIntAttrib(name,value)
    item.setFloatAttrib(name,value)
    item.setStringAttrib(name,value)

    item.hasAttrrib(name)

    #设置文件属性
    file = pdg.File("test.hip", "file/hip", 0, True)
    item.setFileAttrib("hip", file)

    #获取上节点输出文件
    file = item.inputResultData[0]

    #添加文件路径到输出结果
    item.addResultData(file.path,"file/hip",0,True)

2.pdg.Node

1
2
3
4
5
6
7
#获取节点
self
item.node

#获取节点属性
self[name].evaluateString()
item.node[name].evaluateString()

(二)Hscript Expression

1.@属性

  • @attribname 获取属性
  • @attribname.component 获取分量,可以是xyz或者012
  • 例如:@pdg_input.0 @pdg_input.1 @pdg_output.0
内置属性
  • @pdg_input
  • @pdg_index
  • @pdg_output

2.pdg函数表达式

  • pdgattrib(attribname,index)//获取属性
  • pdgattribs(attribname,index)//字符串
  • pdginput(index,”file/tag”,0)//获取输入
  • pdgoutput(index,”file/tag”,0)//获取输出

(三)Partition

  • Partition by Index 默认按index排列组合生成子任务,合并属性
  • Wait for All 将所有任务合并成一个
属性合并
  • First Value
  • Append To Array
  • Unique Values
  • Max Min Avg Mode
  • Python Partition
    1
    2
    3
    4
    for id in range(len(work_items)):
    partition_holder.addItemToPartition(work_items[id],id)
    #index是划分任务的关键
    partition_holder.addItemToPartition(work_items[id],id//2)

(四)常用Node

  1. Generic Generator
    • 生成子任务
    • 执行cmd命令
    • 延时delay
  2. Wedge
    • 生成variant属性及子任务
  3. File Pattern
    • 抓取、输入文件
  4. Node Pattern
    • 抓取Node名字、路径
  5. HDA Processor
    • 调用HDA处理几何数据
  6. Invoke
    • 调用SOP模块内Complie Block处理几何数据
    • 相当于调用了一个匿名的HDA函数
  7. Environment Edit
    • 创建环境变量
  8. OP Notify
    • 执行上面任务后,唤醒其他模块内节点Recook或者按钮pressButton
    • 相当于回调函数

(五)File IO

  • Text Output
  • CSV Input
  • CSV Output
  • Json Input //Deserialize Workitem
  • Json Output
  • XML Input
  • SQL Input
  • SQL Output

(六)总结:PDG奥义

  • 生成指令:生成各种子任务,设定属性,生成指令
  • 执行指令

Houdini PDG学习笔记
https://automask.github.io/wild/2021/11/25/log/P_Houdini_PDG/
作者
Kyle Zhou
发布于
2021年11月25日
许可协议