大数跨境

炫酷特效来袭!车辆动态换漆

炫酷特效来袭!车辆动态换漆 怿星科技
2019-07-05
3
导读:今天,小编给大家带来的是如何使用Kanzi工具中的shader特效实现车辆换漆。

今天,小编给大家带来的是如何使用Kanzi工具中的shader特效实现车辆换漆。开始之前先来欣赏一段小视频。



从以上视频可以看出,车辆换漆是从车身的不同区域开始,随机向四周扩散,直至后一种颜色的车漆完全覆盖掉前一种颜色为止。其原理为——通过对噪声纹理上某个颜色值采样,把采样的结果和控制换漆的阈值进行比较,如果小于该阈值,则使用第一种颜色的漆,否则采用第二种颜色的漆。


为了实现车辆换漆,我们需要用到以下核心代码:



注释:

1、BurnSpeed为换漆速度,通过余弦函数的转换,使噪声纹理的r值周期性的变化,以实现周期性动态换漆效果;

2、Diffuse1和Diffuse2为所换两种漆的颜色;

3、BurnMap为噪声纹理,本效果采用如下噪声纹理:



此外,为高保真模拟车辆在环境及光照中的效果,增强真实感,可在该效果中添加了相应的基本色、高光反射、环境纹理以及菲涅尔反射。


1)基本色实现代码如下:


2)高光反射:

以方向光为例进行高光反射的介绍。本例中采用了Blinn镜面高光反射,它可使物体受到的光照更加真实,且光照的高光效果会随观察的角度变化而变化。其计算原理为:在不使用反射向量下,应用半角向量来计算高光效果,而半角向量只需根据观察方向和光线方向就可计算,这样就不需要用到观察方向和反射方向的夹角了,详见下图Blinn模型原理:

通过以下代码可实现上述原理:

(PS:向量的点积越大,说明两者的夹角越小,代表物体离光照的轴线越近,因而光照也越强。)


3)环境纹理。实现代码如下:


4)菲涅尔反射。需要使用的公式如下:


菲涅尔反射是指当光线照射到物体时,一些光线会发生反射,一些则进入物体内部后发生折射或散射的光学现象。在使用上述公式时,可根据视线到点的方向计算出光对各点的反射强度。好比在看水面的时候,看近处能看见水底,看远处则由于强烈反射只能看到水面及反射光。

 

通过上述的效果叠加就可以得到逼真的车辆换漆效果了,有兴趣的小伙伴可以动手试试哦!



相关精彩推荐:

Shader之水波纹






怿星一意,专注车载

引领汽车科技新高度








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