LEGO Voxel Effects in Houdini

技术分享 2019-08-08 01:44
697
收藏0
该文章无任何隐藏内容或工程文件
0.gif
花了很久时间试了GIF和视频,最后还是觉得GIF的质量是相对能自己稍微把控的,企鹅视频被压缩的惨不忍睹,但是两者效果都...所以动图就看个感觉吧
个人感觉由于范围大,镜头拉远,box的size显得有点儿小了,再加上不是很看得清,LEGO感没有那么强, anyway...
进入正题:
道理上依旧很简单
1, 你有一个预备好的目标物体,Geo也好,volume也好。
2, 做一个大于等于这个目标体积范围的点的三维空间阵列,通过类似于Group in object, 将多余点删掉。
3, 用计算好大小的box(或其他,如果你想有别的效果),instance到前步骤的点上,完成。
需要分情况讨论,有Geo的和没有的(例如Pyro)。
后者比较特殊,我们先说。
★ Pyro的解算就不赘述了,我们设想我们已经有了smokecache

1.webp.jpg
1, 点阵列
2.webp.jpg

box上接cache,就保证了大小和pyro框体bounding box的大小一致,因为volume本身就是voxel数据的阵列,我们需精确每一个点对应pyro的一个voxel,这样才可取到voxel中的相应data,取得方法稍后再说,先说用box来生成对应点阵列的设置。
3.webp.jpg

a, primitive type为Points
b, 细分中的表达式是去到volume的res:
volumeres("../smoke_cache/",0, 0)此为x轴的
这样便保证点和voxel一一对应。
2, attribute from volume
4.webp.jpg

在这里把density传给Cd(别的属性也可以),

5.webp.jpg
然后根据Cd的值删除多余的点
3, instance
box2是替代物
6.webp.jpg

因为点阵列和Pyro的voxel是一一对应的,所以替代物的大小也要和一个voxel的大小对应。

7.webp.jpg
scale设置成和Pyro的division size(0.1)就可以,因为这里用了polybevel,所以取略大值得0.11
4, 其他 自由发挥

8.webp.jpg
颜色我用了temperature和vel做了mix后加ramp, attributedelete删除了vel,因为有vel没有orient,instance物体会转向,这在O2J一例中提到过了,最后的vertex,Cusp Normal修了下法线。

完成。

★ 然后再简单说一下有Geo的情况,包括直接的几何体或者是fluid包裹粒子产生的几何体。之所以和Pyro区别,原因在于他们都有或者可以产生实体的Geo。因此最大区别在于删除多余点的,也就是上边第2步。不用像Pyro这样要保证volumeRes的一致,大小密度可以随意调节,然后Group in object 就可以了



「随缘打赏,获取文件」

评论 0高级模式

还没有人发表评论,来第一个发言吧!

楼主信息