找回密码
 立即注册
查看: 320|回复: 0

沸腾魔药

[复制链接]
发表于 2022-4-22 10:08 | 显示全部楼层 |阅读模式
※ A站看到的一个教程,试着自己做了一个,这篇是锅里沸腾魔药的效果。
翻滚的液体

翻滚的页面可以视作一个以液面中心为圆心构成的正sin波叠加噪音。
先用houdini打个草稿,效果和代码如下:


https://www.zhihu.com/video/1500324767005249536
float r = chf("radius");

f@x = distance({0,0,0},@P);
f@thr = chf("thr");

if(abs(@x-r)<@thr){
    @P.y+=chf("height")*sin(chf("a")*@x*(1-@thr/@x)+chf("phase")*chf("speed"));
}制作过程中发现从Houdini导出模型到Unreal时,法线和定点色有些问题。
只是创建模型直接导出为FBX的话,虽然导入时可以选择unreal来计算法线,但模型本身是不会自带法线信息的,法线信息写入point或者prim也不正确,正确的做法是将法线写入vertex中,创建tube时,勾选add vertex normal即可获得正确结果。
顶点色写入point即可,注意顶部液面的边缘一圈也要包含在内。


材质

根据上述vex代码在unreal中用材质节点复刻即可。


法线需要自行计算。来我们再来回忆一下法线的计算。根据顶点在竖直方向上的位移offsetZ,通过以下计算——
( 1, 0, - offsetZ ) × ( 0, 1, 0 )
获得垂直于上述两个向量的向量,即法线向量。注意offsetZ要取反,否则法线朝向会反。


https://www.zhihu.com/video/1500325438077104128
最终效果



https://www.zhihu.com/video/1500325466233462784

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 20:51 , Processed in 0.088524 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表