初学houdini-发点小成果
maya吧
全部回复
仅看楼主
level 12
可乐爱多 楼主
2013年02月07日 03点02分 1
level 12
可乐爱多 楼主
以前看过个基础教程,用houdini建过一个萝卜,上个月算是正式开始学houdini。发现果然很强大,合理的构架,让很多效果变为可能。我目前学到POP的基础,就按顺序从SOP开始发做的练习吧。
首先是SOP,SOP在houdini里面是核心,相当于maya的shape节点,里面的每步操作都是节点完成的,基本都可以写入表达式,可以按每个点或者面控制操作(比如基础,选择面等)
这个效果是用houdini的分组节点为基础完成的,基本思路是利用分组节点把法线面向某个角度的面选出,然后挤压,再加上噪波和平滑完成的。而且houdini可以轻松的把一组节点封装起来,加上控制参数就是一个小插件了。
2013年02月07日 03点02分 2
level 12
可乐爱多 楼主
接下来学完了SOP的节点,就可以做更多的事了。
这个效果比想象中的花费了更多的时间,以前在ICE里面做过同样的效果,但是houdini的SOP自身没有ICE那样的解算模式,但是H12加入SOLVER,于是就可以迭代了(遗憾的是这个节点相当不稳定)。
原理是利用了H中一个叫RAY的节点,可以从一点向某个模型按一个方向求相交线。这个功能在maya里只能在API里实现。这样可以让地面按反向法线求出穿插的模型距离,然后得出下陷的距离,周围的点可以求出跟模型最近点的距离,然后用曲线控制两侧凸起的高度。
当然最终加入了很多细节的控制,比如两侧凸起的高度取决于下陷的深度。
可以利用曲线精确控制突起的形状,可以加上噪波增加细节
当然介个也做成了封装
2013年02月07日 03点02分 3
attcopy solver 配合vop算迭代吗?
2016年03月27日 05点03分
@K心碎天下O 其实和迭代还不一样,编程上有个专门的名词,我忘了是啥了。。。ICE里面分两种,一种是普通的ICE,另一种叫做SIMULATION ICE,跟SOLVER差不多。
2016年03月27日 11点03分
回复 可乐爱多 :ice是啥并不知道
2016年03月27日 11点03分
level 12
可乐爱多 楼主
先吃饭去,别插楼
2013年02月07日 03点02分 4
level 12
可乐爱多 楼主
剥落
利用spring节点做了个简单的剥落效果,不过这效果在maya里面用柔体也能实现,而且maya柔体有goal,本身就是结算模式,所以比houdini还要更方便一些。
2013年02月07日 03点02分 5
这个剥落用facet和sort,也可以做吧--
2015年09月02日 10点09分
在哪个地方才能添加spring呢?是在基本几何体节点里面添加吗?
2015年10月16日 07点10分
level 12
可乐爱多 楼主
基于SOP的卷浪
用SOP做这个效果还是有点麻烦的,因为在表达式中很难写出复杂的向量计算,所以海浪只能沿一个方向变形,但是可以自定义浪的形状,浪可以在表面上随意移动。
横向的浪的形状可以用一根曲线控制
2013年02月07日 03点02分 6
吧务
level 14
哈哈,可乐也开始接触houdini啦?
1,积雪那个我没这么做过,以前是在对象表面划分区域,然后scatter点,点拷贝metaball,如此做的。难点是需要确保角色运动时,点的相对位置不能改变。好处是积雪便于独立控制,不用局限于角色模型的拓扑
2,做脚印的方法大致分为POP法和SOLVER法,反正若想要在SOP中做递归(除了spring节点),要么POP,要么DOP。solver属于dop方式。
h12的SOLVER其实在之前也有,在以前的版本,可以在SOP中建立个DOP NETWORK,然后就在dop中用sop solver节点。h12的这个solver是把之前的那套东西封装了一下,在使用时更方便了。
3,spring这个效果也很有意思,cmivfx的那套教程也有讲解,可以做哈利波特7中伏地魔挂掉时的分解效果。它的速度真的很快,虽然用POP也能实现类似的效果,但速度差了太多。我还没有机会在实际项目中用spring。
2013年02月07日 03点02分 7
1,因为当时没学到metaball,所以脑子里没这概念。的确跟你说的一样我这种做法受限制于模型的拓扑,大象的鼻子积雪的效果就很怪。 2,这个是真不知道,等学到DOP试试DOP来做一版 3,因为就是单纯的学节点,学了节点再去想能做什么,还没看过范例的教程,乐琢给推荐几个呗[Love]
2013年02月07日 04点02分
回复 可乐爱多 :http://www.cmivfx.com/tutorials/view/506/Houdini+Embers+And+Ash,专门用houdini做溶解和消散的教程,已经有D版了,9iv提供收费下载,其他网站也可以找一找,应该能找到。但verycd好像没有这个。
2013年02月07日 14点02分
level 12
可乐爱多 楼主
到此基础的SOP基本学完,下面进入VOP。
VOP是给予每个点进行编辑,计算。和ICE基本一样,如果把每个点考虑成粒子的话也可以理解成跟TP很像。因为有ICE的基础,所以学VOP基本不费劲,想要什么功能就找节点就可以了。
下面的卷浪效果基本上是以这个视频的思路来制作的。这个效果想了很久,本来打算在ICE中实现的,现在发现在houdini中实现其实更容易一些。

2013年02月07日 04点02分 8
有ICE基础的,学VOP确实游刃有余啊。http://schnellhammer.net/blog/2010/06/uniform-scattering-in-houdini/,这个作者将ICE的平均分布点的算法直接用VOP在houdini实现了。
2013年02月07日 14点02分
很有意思,不过houdini不是有smooth节点么?跟这个原理一样吧?多次迭代修正位置,不过如何保证吸附在物体上是个问题。
2013年02月08日 02点02分
@可乐爱多 请问可乐大神,你是通过什么途径学习houdini的?自学or教程?我自学了一段时间了,差你好多截。你好厉害。
2016年01月05日 09点01分
level 12
可乐爱多 楼主
首先自定义浪的中心点和向前和向上轴向(也可以用物体法线作为向上轴向),然后求出横向和纵向的距离,并且进行规整划。
纵向距离
横向距离
基本的思路是根据权重以自定义中心点为圆心旋转。
分出颜色储存在点上,供将来渲染时可以调用。
当然横向的形状也是可以自定义。
2013年02月07日 04点02分 9
level 12
可乐爱多 楼主
可以控制浪的卷曲程度,中心点延浪方向和向上方向的偏移,卷曲程度,横向纵向的权重,衰减。总的来说可以把浪调成任意的形状。
2013年02月07日 04点02分 10
level 12
可乐爱多 楼主
该完成的完成了,剩下的就是动画师的工作了
因为提供了很多的参数,所以算法也很复杂,主要的步骤都花在了自定义轴向相关的计算上。这里就不一一说了。这个小插件可以用在任意轴向,任意曲面的物体上。
2013年02月07日 04点02分 11
level 12
可乐爱多 楼主
这些都是控制浪形状的参数。因为VOP的速度要比SOP快得多,可以做出非常复杂的计算,所以做出这个插件其实比想象中花的时间更少,而且比之前那个计算简单的基于曲线的变形器更快。
通过实现这个效果,充分理解到VOP SOP的强大,比ICE更灵活,不只局限于单一点的数据流,可控性也好。类似的自定义变形器houdini应该都可以轻松的解决。
2013年02月07日 04点02分 12
level 12
可乐爱多 楼主
为了进一步熟悉VOP,所以我在SOP里面做了一个渲染器(当然是很简陋的)。以前看过一个老外用ICE实现这个效果,不过他只到了贴图。我当时想的是把基础的渲染器算法全都在VOP中实现一遍。
先看看效果:
blinn+final gather+oc实现
SSS
2013年02月07日 04点02分 13
level 12
可乐爱多 楼主
下面是原理的分布讲解
首先是平面,这个平面上的每一个点的颜色信息就相当于我们的屏幕中的像素颜色。然后根据每个点的点法线在VOP中与需要渲染的物体相交,并提取交点的相关属性。如图:
如果对法线进行控制就可以控制摄像机的焦距,不过我这里没有做更改,就是相当于正交摄像机。
现在就可以采集到场景的颜色信息,并存放到grid的点颜色上。
2013年02月07日 04点02分 14
level 12
可乐爱多 楼主
在进一步做,加入视线角度,求与灯光反射之间的夹角,就可以得到高光层。
反射就稍微复杂一点,在交点位置,根据视线与法线的夹角,再次与模型求交,取颜色和亮度信息。
2013年02月07日 04点02分 16
level 12
可乐爱多 楼主
下一步是稍微麻烦一点的效果,OC和FINAL GATHER,这里我不打算再用扫描线原理的算法,而是用点云算法来做。(因为一直用MR,从来没用过点云,所以一直想尝试一下)
OC和FINAL GATHER的原理基本类似,现在模型上分点(云),这里用的是scatter节点。
然后每个点设定一个角度范围内,随机旋转法线与模型相交获取颜色,距离,和光影属性,这里用的是for节点做循环
2013年02月07日 04点02分 17
从没用过hounidi,没想到for竟是个节点,几乎是可视化编程了,决心转投hounidi了,但不知for速度如何?HD中是否有:队列、树、表等节点?
2013年02月08日 15点02分
点云策略是对的,把问题的视见复杂度,转化成空间均置的函数,肯定优化的,好比MR中的globillum accuracy N R补救策略,要是还有MR的contrast控制采样的节点就更好了,不知HD有否?
2013年02月08日 15点02分
据说for节点是多线程的速度还不错,树的话,vop里面的点云应该是基于树的,能不能自定义不清楚。目测可以添加固定数量的float数组,多维的好像不行。 我也只学了几周,很多功能不是很清楚,可以@乐琢 来解答一下。
2013年02月08日 15点02分
回复 yl3d1976 :而且现阶段的实验还只是把数据储存在点信息上。以后能不能顺利地把数据转移到渲染上还是未知数。 快学houdini吧,真的是特别好玩。
2013年02月08日 15点02分
level 12
可乐爱多 楼主
把这三个属性回传给模型,然后通过这三个属性,通过简单的计算就可以求出oc和final gather
oc
FG
2013年02月07日 04点02分 18
level 12
可乐爱多 楼主
留几个参数控制叠加,把几层加起来的结果:
提高网格的细分精度到400*300,也就是相当于渲染一张400*300分辨率的图片:
2013年02月07日 04点02分 19
level 12
可乐爱多 楼主
SSS效果--我没有测试表面SSS效果,而是直接使用了体积点云来做SSS(这个以前一直无法实现,比如毛发的次表面散射)。
先在物体内部填充点,然后获取表面的光影信息。
然后在VOP里面用pc open导入点云,根据点法线的反方向获取周围点的平均值(点数量越多,SSS效果越强)
把点云数据传回给物体
实际看一下效果,这里是一个背光无SSS的场景
然后根据得出的SSS数据乘以SSS颜色(自定义)加上颜色得到的结果
到此为止,算是把渲染器内部的常用算法依次实现了一遍(抗锯齿还没做),houdini的VOP系统很强大。虽然这个例子没什么实际用途,但是做完以后对VOP SOP算是熟练掌握了,而且通过VOP可以实现很多自定义算法,将来在渲染的时候也可以通过采样属性导入SHOP。
通过VOP,只要有想法,就可以实现很多的东西。而且其实效率也很高。上面几个效果基本都是半天就做出来了,VOP海浪和渲染器做了两天(但是算法在脑子里想了很久)。
接下来该学POP了,现在能想到的是利用POP的粒子把渲染器的光子照明做出来,所以,待续了[抖胸]
上面几个效果的OTL如果各位有兴趣可以到我的百度空间下载
http://hi.baidu.com/colaido
2013年02月07日 04点02分 20
确实h11以前都是流行点云的sss方式。h11以后,在材质中多了个什么physical sss节点,根据简单的测试,速度还是挺快的,不必生成点云。当然了,出于商业级别的考虑,它仍然支持将点云输出并保存在磁盘上的方式。
2013年02月08日 08点02分
因为刚学,所以对以前的方式不了解。h11的点云是体积点还是表面点?12里面有一个sss scatter,看了一下还是表面点。表面点的方式有一个缺陷就是局限于据布点的法线。而像毛发这样的物体,他的次表面散射是近似于整体的方式。 而且普通的sss也会受到模型是否封闭的影响(mr是这样的)
2013年02月08日 10点02分
回复 可乐爱多 :不确定,印象中是表面的点。可以先输出一次,然后用file节点导入进来(支持.pc格式),应该就能看出来是基于体积的还是基于表面的了。
2013年02月08日 11点02分
level 8
可乐叔不是以前发了这个么[惊讶]
2013年02月07日 05点02分 21
之前在空间上发过,在这里整理一下一起发一下[抖胸]
2013年02月07日 05点02分
1 2 3 4 尾页