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 |
|
(二)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
4for id in range(len(work_items)):
partition_holder.addItemToPartition(work_items[id],id)
#index是划分任务的关键
partition_holder.addItemToPartition(work_items[id],id//2)
(四)常用Node
- Generic Generator
- 生成子任务
- 执行cmd命令
- 延时delay
- Wedge
- 生成variant属性及子任务
- File Pattern
- 抓取、输入文件
- Node Pattern
- 抓取Node名字、路径
- HDA Processor
- 调用HDA处理几何数据
- Invoke
- 调用SOP模块内Complie Block处理几何数据
- 相当于调用了一个匿名的HDA函数
- Environment Edit
- 创建环境变量
- 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/