【UNITY SHADER】在UI模拟液面水面晃动和倒影
可以用在ui展示进度,最近的小米手机下载应用的时候桌面也是显示类似的效果。在ShaderToy找到了很漂亮的案例。
【UNITY SHADER】简单模拟海面
网格顶点没有很密集,不涉及tessellation函数,对移动端友好
顶点动画 用了3个Gerstner波,参考自教程catlike coding Waves
简单地根据顶点高度上色,模仿次表面散射
根据视角和法线夹角做简单的高光计算
用“湍流”噪声对法线扰动,使表面光斑更碎
【自定义Post Processing Volume】径向模糊(Radial Blur)
之前是把径向模糊应用与粒子系统中,这次把效果整合进Post Processing Volume,也是做成Renderer Feature的形式,通过Volume Component控制参数,自定义Volume的代码与之前LetterBoxing的写法基本一致,只需把Shader和Volume参数的定义修改一下。
【Unity Shader】基于屏幕空间贴花(Screen Space Decal)的地形裂痕效果
之前是给Skin Mesh Render做Decal,这次是针对静态的地形,不能再使用动态生成网格的方式,因为地形有可能非常大,面数非常多,动态生成网格需要逐顶点扫描,效率非常低,而且Decal有可能发生在多个地形物体之间,生成网格就需要先把这多个物体的网格合并,又多了一个网格操作环节十分划不来。
【Unity Shader】模拟水面包含折射与反射与波浪动画
最近研究了一下Unity官方的BoatAttack案例,他们模拟的海浪效果很厉害,用的是Gerstner波来模拟水面起伏和波峰的白浪还有浮力系统,还做加入了焦散效果(Caustics)和平面反射(Planar Reflection)。Unity 官方也提供了初步的水体着色教程,主要谈到了水体颜色的过渡以及基于两个噪声图的波浪动画。在此基础上我加入了反射和折射
【自定义Post Processing Volume】画面上下黑边遮幅(LetterBoxing)
上下黑边遮幅的镜头效果其标准称谓我也不确定,搜索了一轮姑且称为LetterBoxing(一种画面缩放策略),在游戏中常见用于播放过场动画时的镜头处理,带出一种信息:“当前是在播放动画/电影片段,玩家暂时无法操作”。
【Unity Shader】结界墙效果
交界高光+法线扭曲做一堵透明的墙,用作划分“战场范围”。
【Unity Shader】径向模糊
用作增添火光效果的镜头运动感,虽然在URP有motion blur的镜头特效可以用,但比起全局的动作模糊,“径向”模糊更适合突出火花的“迸发”。
【Unity Shader】裂缝效果
用depth mask给裂缝模型做着色,包裹住小兵使其可以整体或局部不可见。裂缝开启后加上一些粒子效果,做出小兵从裂缝中走出来的登场方式。
【Unity SRP】模糊的菜单背景
在LWRP中用Scriptable Render Pass来实现模糊场景的屏幕后特效。官方给出了PerObjectBloom,ToonOutline等等不少的示例可参考。不过SRP版本迭代得非常快,很多示例的写法很快就过时了,而且导入后还会经常碰到异常的效果,免不了调试一番。
【Unity Shader】2D火焰UV动画
用噪声图滚动做UV动画,非网格顶点动画,用在UI界面,或者给粒子系统做拖尾材质。比起帧动画更加可控可配置。
【Animation Rigging】Jiggle Chain实现树枝晃动+Shader动画实现花草晃动
参考主要来源是Unite Copenhagen 2019关于Extending the Animation Rigging的介绍,用到里面的Jiggle Chain代码。给low poly风格的树木用MAYA加上简单的骨骼,在unity中绑上Jiggle Chain,再用动画修改Jiggle Chain参数,模拟了简单的树枝晃动。