大数跨境

Shader之水波纹

Shader之水波纹 怿星科技
2019-02-22
3
导读:炫酷的UI界面在智能驾驶座舱中已然成为了一个趋势,Kanzi的出现使得很多难以实现的效果成为可能,而Shad

炫酷的UI界面在智能驾驶座舱中已然成为了一个趋势,Kanzi的出现使得很多难以实现的效果成为可能,而Shader则是实现这些炫酷效果的关键所在,今天要向大家介绍的是其中一个效果:水波纹。


水波纹原理

在许多网络游戏所呈现的精美画面中,一般都会添加波光粼粼的水波纹效果,完美地模拟了真实场景,给游戏玩家一种身临其境的感觉,如下图所示。

这种波纹效果并不是叠加而成的,而是通过波纹位置的图像向外拉伸后的效果,而这种拉伸的强度是按照类似Sin函数的波形进行拉伸的。通过一个Sin值,可以把线性的输入变化成波形的输出,这样就可以实现水波纹的模拟效果了。


水波纹在Kanzi中的实现

通过像素采样时UV坐标增加一个偏移值来达到拉伸的效果,我们可以把这个偏移值作为三角函数的输出,形成不同的拉伸效果,从而给人以水波纹的感觉。   


Shader中的Fragment Shader:对每个像素的UV坐标做Sin函数的偏移,达到水波纹的效果。


使用Shader处理前的原始图片效果如下:

使用Shader处理后的效果如下图所示:图片出现明显的弯曲变形效果


水波纹动起来

接下来让小编施展一些魔法让水波纹动起来。哔 – 没想到吧,其实这个魔法就是引入动画让偏移量随着时间动态调整。在这里小编引入了一个外部参数Time,  对Time变量做动画来控制水波纹的移动。

好了,来看看最终的效果,是不是感觉很神奇呢。赶紧关注我们吧,后续我们还会有更多关于Shader实现效果的分享哦,敬请期待!


相关精彩推荐:

Kanzi之文字一二事

蒙板缓存(Stencil)渲染技术在Kanzi中的应用

HMI敏捷开发秘笈—技术设计师

Kanzi实现模糊效果原理及方式

Kanzi Studio的混融原理与透明效果

动效/动画让HMI设计事半功倍【上篇】

动效/动画让HMI设计事半功倍【下篇】

干货贴:解锁Kanzi 3D渲染




怿星一意,专注车载

引领汽车科技新高度






【声明】内容源于网络
0
0
怿星科技
让智能汽车研发更高效!
内容 428
粉丝 0
怿星科技 让智能汽车研发更高效!
总阅读795
粉丝0
内容428