这是一篇基础的 houdni 教程,它所包含的内容很有限,把学习内容都搬上来就成 了 HELP.所以我把他定义成一篇 带你入门的教材. 目的是希望国内能有更多的 人去了解和使用这款工具. 只有使用的人多了才有更多交流和互相学 习的机会. 但是,这绝对不是手把手之手册.如果最基本的那些操作你都不愿意去看 ,那就..... 这将是一篇又臭又长的文章 ,望大家漫漫等待序 每款动画 软件都有着他 们悠久 的历史,houdini 也一样. 不用去一一罗列,只要说十几年前的那部终结者 II,你一 定会记得那水银人的精彩特效.就是用 houdini 完成的.在之后十几年里,houdini 一直在电影特效领域占有着很重要的地位.不但因为它总在为使用者提供着强大 的各种大小工具,而且一直紧跟着时代的步伐,sidefx 的开发团队持续的在对一些 已经过去式的部分进行着重新的规划. 再次就是 houdini 是一款开放性极高的平 台,很容易的嵌入到 Team work flow 中 而 houdini 在国内一直是处女地.鲜有人 愿意或者是持之以恒的去使用它,其实即便在国外,houdini 的使用群也是很集中 的.原因是关于 houdini 的教程实在是很少,再次就是它的 GUI 的不友善,往往有人 打开半天尽不知从何下手,再次就是 houdini 相比 maya,max 等会更早的接触到 一些....的运用如果你想学好 houdini,你需要具备或赶紧去学习哪些知识而不至 于半途而废呢? 1:确定自己是一个有着其他软件丰富运用经验的人,这样你至少 对要做什么有些了解. 2:尽量把学会的软件操作忘记.那些对与 houdini 不合用,有 空可以侃侃 SHAKE,NUKE 这样的 node tree, 3:如可能,学习一些类 C 的知识,你 是一 MEL Advance,或者是 TCL/TK 高手,或者你已经开始使用 python,那许多环 节将变的容易学习,因为 houdini 支持类 Cshell 的 Hscript, TCL/TK. python 3 种 途径, 4:如已经把高中数学忘光了,那么请回去把至少三角函数,向量运用复习好, 5:如对他的向量语言(VEX)感兴趣,一些计算机图形学的基础知识是要去看的,不
需完全明白,但是要做到用起来知道到哪里去找, 6:如你是一个 renderman user 或者馒头瑞 user,那不需要重新学习,因为 houdini 无缝支持 prman,馒头瑞, (过 去还公然支持 bmrt,Entropy,现在米有了) 7:如想学习 mantra.而你恰恰是一位 renderman user, 那 么 2,3 天 你 就 能 完 全 搞 定 他 , 但 如 果 不 是 , 建 议 回 去 把 renderman 从头开始学 8:如果你对 L_system 或者 metaball 或者 isosurface 有 深层兴趣.......去查询资料吧注:千万别认为可以从 help 中找到所有你要的
houdini 分 OBJ SOP SHOP VOP POP DOP COP CHOP ROP 几大模块 之所以都有 OP,实际就是 operate & parameter (操作器和参数) 的缩写。 这些模块分别操作 sharp 层 ) OBJ(object 物体 transform 层) 而
SOP(Geometry
SHOP(shader 材质 )
VOP(图 形化编写 vex & rsl 工具) COP(后期合成) CHOP(channel
POP(particle) DOP(dynamics 动力学) 编辑)
ROP(渲染输出).默认是在 object 根路径上,alt+9 显示 tree list 可观
查看路径结构
这些模块都是完全独立的,你可以从任何的一个模块中通过创建 OPnetwork 重复 调用其他模块,彼此之间没有绝对父子关系(注:不是创建模块本身,而是创建可以 独立调用模块功能的 OPnetwork 接口,按回车键可进入 OPnetwork 创建该模块 功能网络结构)任何模块的 OPnetwork node 都可以看成是一个文件夹.而文件夹 里要是没有文件,那么文件夹本身也没有意义,当然你可以把文件内容或者整个文 件夹复制剪切到任何 同类型 路径. tree list 则就可以把他看成系统中路径和
文件列表.如果你经常需要做编译工作.一定知道如该路径并没有设置到 PATH 中,
也可编译, 但是必 须 要 cd 进 入该 路 径.HOUDINI 的内环 境使用脚本 , 同样必 须 opcd /path/ 进入该路径,才可以正确操作.. 比如建立一个 CHOPnetwork,他本身 不具有明显意义,按回车键进入子结构才可调用 CHOP 模块所提供的 function node.而在这个 CHOPnetwork 里你又可以建立一个比如 COPnetwork.调用该 COPnetwork 的 内 容 就 变 成 了 访 问 当 前 目 录 的 子 目 录 . 原 本 的 引 用 ch('/obj/model/myCHOPnetwork1/SUBCOPnetwork_1/ramp_1/rgbr') 就 可 以 缩写为 ch('../SUBCOPnetwork_1/ramp_1/rgbr') 但有个列外. 就是在 object
模块下并不能够创建 SOP,但是在 SOP 下却能建立 object, object 模块 operate 的只是做搬运和定义(照明,镜头,骨骼串联等基础信息,),object 的 operate 是由 SOP 模块的工具或者在 SOP 中调用的其他的模块工具所搭建的,选择某 object operate 按回车键直接进入该 operate 的子 SOPnetwork 可观看该 operate 是如 何构件的 那么在具体的操作时.我们又如何去定义操作的象征意义呢?------后期 软件,SHAKE,NUKE,DF,那些 node tree.houdini 是很纯粹的 node tree. 对某个 节点进行操作,只要建立某功能节点.将两个接点相连即可.有些甚至不需要 view 视图的目标选择,甚至不需要显示,这在很大程度上节约了 时间,因 为有时候往往 某些节点的运算是很漫长的.如果你愿意,甚至在操作中完全不显示任何层级,只 要在调用时告诉 node 我需要调用哪个模块哪个路径哪一层就 OK 了. (如何选 择.在节点上都有一些蓝色或者紫色的按钮,自己尝试一下) 明天继续
一些容易混乱的而你必须正确的操作
1: 除了 ROP.所有模块都有 VIEW 视图.
所以当你从一个模块转到另一模块时,感觉 UI 没什么改变,实际不是,你可以很容 易的从 UI 的颜色分辨出来 VIEW 视图默认就象 MAYA 的 UI 一样,一些菜单以
条状隐藏了.你必须点击显示他们.以 SOP 的 VIEW 视图为列
2: 按 TAB。 出现该模块功能菜单。 选取你要的操作,
在一些情况下。 在 Network
Editer 面版上操作和在 view 视图中进行该操作的结果是有不同的. 比如 :进入 SOP.在 Network Editer 面版上建立 sphere,你会发现在 VIEW 视图内产生球,但 并不是选择模式.而直接在 view 视图中进行该操作则 sphere 为选择模式,并出 现 handle, 示手柄 . 注意,只是选择模式不同,你可以点击左侧显示手柄的按狃来切换显 3: 选择节 点 , 在 VIEW 视 图内 按 ENTER 进 入 当 前 节 点 编辑 模 编辑模式时 UI 底部出现蓝色提示信息 4: U
式.ESC 结束当前编辑模式. 进入父集,I 进入子结构.
5: 在节点或者 VIEW 视图物体或者 handle 附近按右 注 : 在 Network Editer 比 较 重 要 的 选 项 : spreadsheet Type Projectise Ctrl+
键,出现其快捷属性列表 animatable Parameter 右 键 出 现当 前视 图编辑 列表 , Collapse select into subnet
注 : 在 Network Editer 比 较 重要的 选项 : creat network box from select 其实有
很多很多很有意思的 选项和功能. 我这 里只列举最基本最常用的 哪些模块可以 在开始先不看 DOP ROP CHOP COP VOP
三 最最 基本 的 节 点
我 们 往往 从 object 开 始 , 其 中最 最最常 用 的就 是
Geometry.几乎所有几何造型动画都在 Geometry 里完成, 你可以在 object 模块 下渲染,也可以在进入 SOP 渲染, 是一个 FILE 节 点 , I 或者回车进入 Geometry 节点子结构,默认
( 注意 , 进 入子 结 构你 现 在所做的 transform 和 object 在 SOP 下按 TAB.呵呵.
Geometry 提供的 transform 是 local world 的关系).
出现一屏的节点,你一定昏了.别急,几乎所有的模块都有那么多
因为 SOP 是
普通情况下造型动画的模块,所以首先了解 SOP 是重要的.那么我们先从哪里开 始呢?这些节点你是首先要会操作的 1 transform (不用解释了) 2 edit 手动编辑 表面位移 注意操作一次就会结束 edit.不要再去创建新的 edit 节点,Q 可以重复 极其重要的节点,是对点,法线等表面信息的操作,默认
上次节点操作 3 point
情况下创建或倒入的物体是没有颜色,材质 UV,法线信息的,必须添加 point 来创 建这些信息.并且对 particle 信息的修改也可在这里操作
4 group
几乎很多模块都有 group 节点,它可以对点,面进行 group 操作,group
信息可以自定义也可以让 DHOUDINI 自己动 态生成, group 是重中之重,使用 group 可以操作出极其复杂的效果,很多逆向递归的操作也往往借助 group. 而且 group 的信息一直向下或者向上传递,在几乎所有 node 的参数中都有 group 选 项,你可以只对 group 内容进行操作修改 5 copy 最常用的节点. 很多人喜欢
将 particle 信息和 metaball 进行 cop.产生动态化的 metaball 组,同时 copy 包括 大部分的功能节都可以对 input info 进行修改,因此变化性更为大. 6 Merge (不用 解释了吧 :) ) 7 POP network 我经常直接在 SOP 下建立 POP network.这样
显的更直观.我对 particle 的操作只要在 SOP 路径下的 POP network 下层做修改 就可以了, 其中 point 和 group 几乎成了所有场景复杂内容都会包含的节点,下 面这个场景我为大家由浅入深的建立了几个 OBJECT,让大家对基本的操作有所 明了
那么有没有最基本的或者显而易见的模块协作的列子呢?由于HOUDINI
所提供的功能更象积木而不是积木搭建的成品, 因此制作效果或者模块协作变的 很多样.我这里用图文举一种协作方式 四 问题 1: 有 象 M AY A 里的 add attr 的 功 能 吗 ? 答:
attribcreate node 负责为 input node tree 增加属性,在下层节中可用$NAM E来调用 2: 为什么HOUDINI没有支持FBX? 答: H
OUDINI的CHOP是一个强大的 channel 外部和内部读取平台,你可以 使用编写*.chan 文件从MAYA中将动画信息导入并传递给物体.因此不需要 FBX 注: 网络上有些类似的工具.我也有自己编写的MAYA-HOU 3: HOUDINI中能动态读取每点信
DINI的工具, 将在后面上传 息吗? 点数信息 答:
在 POP 中,$ID就是粒子ID.在SOP中,$PT就是 4: 那么$PT就是点的ID吗? 答: 不完全是,实
际上在很多情况下$PT会随着 input info 的改变而改变,因此他是动 态 的. 5: point /add normal 有什么主要的功能 答: 许多与点有关
的操作都会参考 normal vector , 当 使用 copy node 将 一个物体 copy 到 refrence node 的点上时,物体的默认方向取决与 normal ; 么 mantra 很慢 6: 为什
答: 实际上 mantra 并不比 prman 慢.但是由于他是一款
内置渲染器,所以考虑兼容性问题,在一些地方产生谬余就很正常,mantra 提 供了和 rib 相似的 场 景描述机制IFD, 编辑 IFD可以自定义 场 景信息 7: 为什么将 metaball 的数量复制多就很慢? 答: 在不需要编辑 pre
-info 的情况下,通常并不使用 metaball+copy 的方式,而是使用 isooffset, 8: 为什么输出I3D文件如此之慢? 答: 默认SIZE为128^3;
即XYZ三方向各采128样点,128^3=2097125
继续问题
1:什么功能是 houdini 独有的
答:实际上对于 RD 而言.没有什
么现有功能是 HOUDINI 可以独有的.但是对于一般 USER 来说.一些功能还是很 具有诱惑性的 粒子相互碰撞功能 何形态的 GROUP 功能 缝转换功能 1:自由控制的变形球功能. 4 :粒子相互吸引功能 2: L_SYSTEM 机制 5: 每点控制功能 3: 6: 任
7: 数据重写功能(逆向传递)
8: VEX---RSL 无 11:
9:ISOSURFACE 参 数 模型
10: 点阵 化模型功能
自由形体的肌肉系统 化 编 写 VEX 能 ............
12: 快速的任何数据类型的运动修改功能 14: DIGITAL ASSET 还有很多不一一列举
13: 图形
16: 数 据 转 换 类 型 功 二: 可以像 MAYA 那样编写
自己的 UI 吗?
答 .MAYA 写 ELF, 而 HOUDINI 不需要特别的去编写.可以使 而你是一位精通 TCL/TK 的话.可自己编写属于自己
用自定义面板完成, 的 UI
HOUDINI 提供了 DIGITAL ASSET 功能,可以快速方便的将复杂的 三: HOUDINI 怎样进
操作整合为自己的工具包,并且可以快速的修改. 行网 络协 作 ?
答 : 通 过 NETWORK NODE 可以直接与工作 组 的成 员 在 四 :HOUDINI 可以设置项目文件夹吗? 答:
HOUDINI 内环境下协作.
可以: 而默认 的情况下只要 将图片等文件和场 景文件放在一个路径 下 ,HOUDINI 可以通过$HIP 自动查找 五:HOUDINI 有像 MAYA 那样的层功能吗? 答:
HOUDINI 本 身 是 NODE TREE. 很 像 后 期 软 件 , 所 以 层 管 理 很 容 易 , 另 外 . HOUDINI 提供了强大的场景历史机制 TAKE.可以在一个场景内在不同的场景 历 史间自由切 换 , 而渲染任务也可以在 TAKE 层级 间自由切 换组 合 六:
HOUDINI 的后期 COP 强大吗?
答: 由于 HOUDINI 的输出格式的兼容性不好, HOUDINI 输出 TGA 兼容型比 较 好 七:是不是 NUKE 兼容 HOUDINI
因此经常使用 COP 进 行 预测试
HOUDINI 输出其他格式可通过 NUKE 转换 比较好?
答:NUKE 的开发公司 D2 同时也是世界上最早开始使用 HOUDINI 的 八: HOUDINI 的角色动画功能和 MAYA 比
公司之一,因此兼容型是很好的 较怎么样
答:HOUDINI 的角色动画功能在近几个版本在流程上有了明显改善,
但是不要以为 HOUDINI 的角色动画机制是鸡肋,他的强大和克控型是极其出色 的。 九:HOUDINI 的粒子系统和 MAYA 比如何 答:十万八千里 十:
HOUDINI 能做什么特殊的变形动画?
答: 不同拓扑间的变形动画, , , , ,]
关于文件互倒
我个人基本不会把 HOUDINI 的再倒回 MAYA 去.不是不能倒. 如何把 MAYA 的动画信息倒入 HOUDINI? 答:
而是因为自己觉得不划算,
模型使用OBJ或者IGES可以完整的将多边形或者曲面模型倒入HOUD INI, 但是在一些情况下曲面模型表面参数将有细微变动, 需要使用 caven 和 fuse 整理 动画文件可以 编写*.chan 文件..chan 作为HOUDINI
的 chanell 编辑模块CHOP的读取格式是非常容易读懂的. 不需要特殊的编译, 使用任何的文本工具就可以打开观看. 只要将动画信息按名称分列记录就可以了, 然后在CHOP中倒入即可. (现在在家,等一下会传上范列) .同样,材质UV 信息也可以完整的倒入到HOUDINI中,摄象机的 transform 信息是和MA YA基本一致,但是 option 有些不一样.换算公式为 tan(( Maya 摄象机
angle view) / 2 ) = (Houdini aperture) / (2 *( Houdini focal length) ) 关 于水银人 方法有很多,可以分别做头动画和手伸出动画,不需要一体,分
别点阵化, 然后分别COPY OP
METABALL,合并后两者自然融合关于P
可以说, HOUDINI的粒子系统是商业软件中非常优秀的,这里就 1:发射器:source (需要
不罗嗦了.那么哪些NODE是最最基本的呢? 指定 来 源 ),locate
2: spit 再发射,相 当 与MAYA中的 emit from ,,,,
3: force ,wind. HOUDINI中多种场的控制都在一起,并没有象MAYA 那样分开 4: creep 相当与MAYA中的 goal, 6:group 5: color (也可以在
SOP中定义 point 来控制)
*.chan 文件格式如下假设为某物体点动画列为一类型每贞数据. 行为数据类型排 列(注意:在这里我假设数据类型排列为 point1/tx point1/ty point1/tz point1/tx point2/ty...... 实际并没有强行规定数据排列方式, 你也可以全部为 tx 数据,
只要在CHOP中改动即可
关于L
-SYSYTEM
什么是 l_system ?
几乎任何一种经典理
论出现都会伴随着经典模型的出现,比如[blinn77] [WARN83]..等等,受首 次提出 l_system 近似理论的是1905年 von 提出的,并且给出了经典雪花曲 线[KOCH05] 而直到1968年的 lindermayer 提出了字符串重写机 l_system 的核心概念就是
制.之后以其名字缩写称这中机制为 l_system
重写,即使用预先规定的规则使某个物体不段重复复 写初始物体以达到复杂形 体.它有些特征,比如对称,自相似,重复延展等等.其中很典型的列子就是D OL_system.设定 a,b, 规则为 a=ab,b=a, a 为初始公理. 每次派生都由规则定
义,即 a->b, b->ab.得到如下 aba abaab
a
a b
a b a a b a b a 这很象乌龟的壳,
因此将这样的字符串解释为
"龟"“turtle” .起定义为三元组(x,y,a),(x,y) F - 径直增加 /
为龟坐标.a 为龟头指向. 并给定步长与增量. 设置如下 一步长 f 空径直增加一步长 \ 右旋转某度数 + 左倾 斜某度 数
右倾 斜某度 数
左旋转某度数
. . . . . 在HOUDINI中可以建立完全属
于自己的L_system 形态.进入SOP,建立L_system.在最后的 rules 面 版. Premise 初始公理 Rules 规则清空左右内容, 我们开始在
Premise 内写F-F-F-F. 并且将 valuse/angel 设为90. 出现正方型曲线, 我们很容易可以分析:径直增加一步长,右倾斜某度数,再径直增加一步长,再 右倾斜某度数.然后我在Rules 中定制重写规则,F=F-F+F.出现奇特 的自重复图形, 分析规则F=F-F+F替代到公理F-F-F-F中,即第一 次派生为(F-F+F)-(F-F+F)-(F-F+F)-(F-F+F) , 我 们 可以定义很多的R ules .分 别 替代 进 公理.比如 R ules 1 Rules1 A=F-FF+FF-F+F A=///BA-//FF+FF-F+FB R ules 2 B=+A B=A Premise Premise FAB FFAB
Rules2
那么如何分形?
在 L _ system 中 可 以 使 用 [ ] 将 当 前 字 符 串 装 入 饯 来 实 现 分 型 , 如 Premise A=-FFFB FF[B]F[A]FF R ules 1 B=F+F-F+F-FF R ules 2
分析 Premise : 径直增加一步长, 径直增加一步长, 分型B, 这样我们 Premise Rules3
再径直增加一步长,分形A,再径直增加一步长,径直增加一步长 可以得,通过定义分型我们可以建立复杂的叉树结构.如 FFFACFF Rules1 A=[B]////[B] Rules2 B=&//FFFA
C=////FF[B[B[BD]]
Rules4 D=FC
ISO SURFACE
函数方程的等容积模型(你可以把它想象成具体表现点容积
的工具) 它和什么有关?可以读取 I3D 数据, I3D 可视化. (I3D就是 3d texture file,不是3D纹理贴图, 通俗的讲就是一个3D空间的点的容积集合) 和 ISO O FFSET很接近 如何写 function? 建立 ISO SURFACE ,默认就是一个
球. 方程式为$X^2+$Y^2+$Z^2-1 就是圆方程 X^2+Y^2+Z^2=r^2, 1就是 r, 这里隐含掉了=0,ISO SURFACE function 需要指定3纬XYZ,可以是等方 程. 也可以是不等方程。 也可以是判断式. 这样椭圆也可以从$X^2+$Y^2+$Z^2-1 变化得$X^2+($Y^2)/3+$Z^2-1 (minBound -1 -3 -1 maxBound 1 3 1) 因为
ISO SURFACE 表现等容积模型,因此可以把模型想象成在一定范围内的数据 的 集 合 . 由 此 变 化 我 们 可 以 剪 切 圆 得
if( (($X<0)||($X>1)||($Y<0)||($Y>1)||($Z<0)||($Z>1)),$X^2+$Y^2+$Z^2-1,$X^2+ $Y^2+$Z^2+1) 接 下 来 我 们 写 一 个 方 块 既 if 再次变 程
( ((-1<$X)&&($X<1)&&(-1<$Y)&&($Y<1)&&(-1<$Z)&&($Z<1)) ,1 , 0) 化 方
if(((-1<$X)&&($X<1)&&(-1<$Y)&&($Y<1)&&(-1<$Z)&&($Z<1)),noise($X,$Y,$Z ),0) 再 次 加 入 时 间 变 化 得
if(((-1<$X)&&($X<1)&&(-1<$Y)&&($Y<1)&&(-1<$Z)&&($Z<1)),noise($X*10+($ T-1),$Y*10,$Z*10+$T),0) 奶酪状的模型出现了: ) (ISO SURFACE 可以写
出很多有意思的复杂几何体, 但是最多的用处还是用来转换I3D.但是个人用 下来ISO OFFSET的几率更多些)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。