|
※ 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(&#34;height&#34;)*sin(chf(&#34;a&#34;)*@x*(1-@thr/@x)+chf(&#34;phase&#34;)*chf(&#34;speed&#34;));
}制作过程中发现从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 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|