houdini 无论使用什么类型的渲染软件都使用脚本输出houdini的对象给渲染工具的形式。无论是mantra,renderman,mentalray
soho就是
每个rop节点都有个 soho_program 参数隐藏参数
比如mantra 类型的soho_program 是IFD.py
mentalray类型的soho_program是MI.py
3delight是rendman类型的 soho_program是RIB.py
使用输出 diskfile看看 test.rib 看看renderman 的rib语句
在没有灯光的情况下输出soho自动增加顶灯
这些如何进行的。
打开$hb/soho/python2.6/下的RIB.py输出程序看看
import time
import soho
import RIBapi
import RIBmisc
import RIBgeo
import RIBframe
import RIBparm
import RIBsettings
import RIBhooks
首先 导入一堆功能模块
时间 脚本输出对象 rib的应用接口 rib的杂项 rib几何体 rib的框架 Rbib的参数 Rib的设置 Rib的挂钩
这些都有一定功能的模块可以在soho目录下打开看看有哪些。rib.py在运行的时候要用到这些功能
Ri = RIBapi #使用RI这短名字控制Ribapi的功能
controlParameters = {
}
#初始化控制参数 controlParameters 集合 这是几个SohoParm类型数据的集合 SohoParm 这个类型的定义参考 soho.py
这个用于向soho发送控制命令让soho做集合中内容的事情具体做什么由这个集合来确定
看看。。这只是使用soho进行的正常功能
比如其他的rib的高级功能那个就要我们自己定义然后向soho发送命令。
这里的参数只有计时 ,相机,保留处理(确定哪些要渲染) ,然后是阴影贴图,环境贴图,主图,后台模式,是否继承属性
(⊙o⊙)…一般情况还能应付对于复杂的处理,那个就远远不够了。
比如使用点云二次照明模拟全局照明这是renderman的比较高级的功能。如何组合?
那么需要控制soho给rib发送
Option "user" “string iswhichpass” "PointCloud pass OccPt"
Option
Option "user" "string iswhichpass" "photon"
之类的说明给渲染器说这是一个预处理,它是 接缝吸收点云,还是色彩溢出点云,还是光子的预处理
有了这些预处理那么才有最终处理
如果一切都用raytrace 不用 prepass这些处理 那么等待你的可能是个无法忍受的渲染时间
我们也给shader增加了不同pass不同光线类型的处理。这里自然要使用iswihichpass这个自己定义的user option
所以是要扩展RIB.py定义自己的RIB.User.py是非常重要的。而且控制soho这绝对是个大麻烦。。需要学习很多的相关知识。
用这个RIB.user.py控制soho读入houdini对象及其标配属性,和多余的使用的渲染器特有的属性。
soho.py模块的应用描叙在 C:\Program Files\Side Effects Software\Houdini 11.0.658\houdini\soho下
联系客服