• 在写ACT游戏--当前版本v1.1.0

可以用在ui展示进度,最近的小米手机下载应用的时候桌面也是显示类似的效果。在ShaderToy找到了很漂亮的案例。

网格顶点没有很密集,不涉及tessellation函数,对移动端友好
顶点动画 用了3个Gerstner波,参考自教程catlike coding Waves
简单地根据顶点高度上色,模仿次表面散射
根据视角和法线夹角做简单的高光计算
用“湍流”噪声对法线扰动,使表面光斑更碎

之前是把径向模糊应用与粒子系统中,这次把效果整合进Post Processing Volume,也是做成Renderer Feature的形式,通过Volume Component控制参数,自定义Volume的代码与之前LetterBoxing的写法基本一致,只需把Shader和Volume参数的定义修改一下。

之前是给Skin Mesh Render做Decal,这次是针对静态的地形,不能再使用动态生成网格的方式,因为地形有可能非常大,面数非常多,动态生成网格需要逐顶点扫描,效率非常低,而且Decal有可能发生在多个地形物体之间,生成网格就需要先把这多个物体的网格合并,又多了一个网格操作环节十分划不来。

最近研究了一下Unity官方的BoatAttack案例,他们模拟的海浪效果很厉害,用的是Gerstner波来模拟水面起伏和波峰的白浪还有浮力系统,还做加入了焦散效果(Caustics)和平面反射(Planar Reflection)。Unity 官方也提供了初步的水体着色教程,主要谈到了水体颜色的过渡以及基于两个噪声图的波浪动画。在此基础上我加入了反射和折射

上下黑边遮幅的镜头效果其标准称谓我也不确定,搜索了一轮姑且称为LetterBoxing(一种画面缩放策略),在游戏中常见用于播放过场动画时的镜头处理,带出一种信息:“当前是在播放动画/电影片段,玩家暂时无法操作”。

交界高光+法线扭曲做一堵透明的墙,用作划分“战场范围”。

用作增添火光效果的镜头运动感,虽然在URP有motion blur的镜头特效可以用,但比起全局的动作模糊,“径向”模糊更适合突出火花的“迸发”。

用depth mask给裂缝模型做着色,包裹住小兵使其可以整体或局部不可见。裂缝开启后加上一些粒子效果,做出小兵从裂缝中走出来的登场方式。

在LWRP中用Scriptable Render Pass来实现模糊场景的屏幕后特效。官方给出了PerObjectBloom,ToonOutline等等不少的示例可参考。不过SRP版本迭代得非常快,很多示例的写法很快就过时了,而且导入后还会经常碰到异常的效果,免不了调试一番。

用噪声图滚动做UV动画,非网格顶点动画,用在UI界面,或者给粒子系统做拖尾材质。比起帧动画更加可控可配置。

参考主要来源是Unite Copenhagen 2019关于Extending the Animation Rigging的介绍,用到里面的Jiggle Chain代码。给low poly风格的树木用MAYA加上简单的骨骼,在unity中绑上Jiggle Chain,再用动画修改Jiggle Chain参数,模拟了简单的树枝晃动。

12/17