- 0
- 0
- 0
分享
- 好莱坞“绝密”技术:水杯不漏
-
2023-08-20
Hello 我是Haru,距离上次投稿文章已经过去很久了。
本次为各位分享一个小尺寸流体的解算技巧。也是一个非常初级的案例
这边是预览视频 https://b23.tv/Sjee54Q(点击阅读原文可跳转)
先简单概括一下,基础好的同学可以跳过后面文章所有内容。
首先将杯子和杯子内区域的范围转成速度场。再用pop计算杯子内的粒子,同时使用pop fluid。再判断下水是否在杯子内。如果在杯子内就额外受到刚刚转的速度场的驱动。是不是很简单?
然后再分享一点心得
首先CG本就是作假的艺术,只要结果是我们需要的东西即可,不论是各种作假还是贴素材等方案。并不是说非要纠结一定要用什么什么技术去实现。实际创作过程中去纠结用啥方案是否真实比例这些并没有什么太大意义,毕竟Houdini是一个可以缩放物体的软件,总之一切以最终效果为主。
接下来是实际操作和hip文件
1、首先我们一套简单的sop操作做个容器,同时注意保留外壁,如果是外部模型那就分离一下即可
2、将模型外壁拿过来做个布尔 再用 vellumconstraints_grain 填充粒子。(用points from volume 也可以)这样粒子部分就设置好了
3、添加transform 简单k一个动画,再用extracttransform 得到 变换信息
4、接下来使用 collision source 节点输出sdf 在图中即为filecache1
同时我们需要注意一些设置将 substeps 设置为5,因为我希望解算的时候 substeps 是5
关于文件路径中我们填入Python表达式·pythonexprs("'%07.2f' %hou.frame()")·我们用这段代替 $F 或者$FF 输出后文件长这样 对于有python基础的小伙伴这应该很好理解。
5、设置好sdf之后我们 回到粒子和模型这里箭头标记处这里分别是用 extracttransform 得到的变换信息去驱动vellum填充好的粒子,再和带有变换的水杯模型 merge 到一起。再利用 collision source 计算一次速度信息。最后转成场
6、在上述设置做好之后我们建一个 pop network 步幅改为5 。和上面的碰撞缓存一致。蓝色区域全是正常常规操作。正常引入碰撞模型和sdf。重点是右上角三个
7、首先是 pop flouid 简单介绍一下就是他可以让粒子解算的时候提供类似水一样的形态在小规模液体下非常好用。
8、sop solver 这里是先在 dop 这里得到布尔水面时候的模型。记得用变换信息驱动一下
然后做个简单的组判断
再下面那个 popadvectbyvolumes1 就非常简单了我们引入上面做好的场。再把sopsolver1里判断出来的组给他填写进去,这样只有在水杯内的水会被额外驱动。
9、点击解算即可。后面按照速度提供个颜色即可
源文件链接:https://pan.baidu.com/s/1mq-BqbUGPp5eJHPQMpV8rg?pwd=klx1
全文完
-
阅读原文
* 文章为作者独立观点,不代表数艺网立场转载须知
- 本文内容由数艺网收录采集自微信公众号CG世界 ,并经数艺网进行了排版优化。转载此文章请在文章开头和结尾标注“作者”、“来源:数艺网” 并附上本页链接: 如您不希望被数艺网所收录,感觉到侵犯到了您的权益,请及时告知数艺网,我们表示诚挚的歉意,并及时处理或删除。