<i id="0njld"></i>

  1. <rp id="0njld"></rp>

    <cite id="0njld"><noscript id="0njld"></noscript></cite>
  2. <cite id="0njld"><tbody id="0njld"><label id="0njld"></label></tbody></cite>
      <source id="0njld"><menuitem id="0njld"><em id="0njld"></em></menuitem></source>
      <video id="0njld"><menuitem id="0njld"><legend id="0njld"></legend></menuitem></video><b id="0njld"><tbody id="0njld"></tbody></b>
       
      炫酷特效来袭!车辆动态换漆
      来源: | 作者:王蕾 | 发布时间: 2019-07-05 | 1024 次浏览 | 分享到:
      今天,小编给大家带来的是如何使用Kanzi工具中的shader特效实现车辆换漆。开始之前先来欣赏一段小视频。
      从以上视频可以看出,车辆换漆是从车身的不同区域开始,随机向四周扩散,直至后一种颜色的车漆完全覆盖掉前一种颜色为止。其原理为——通过对噪声纹理上某个颜色值采样,把采样的结果和控制换漆的阈值进行比较,如果小于该阈值,则使用第一种颜色的漆,否则采用第二种颜色的漆。
      为了实现车辆换漆,我们需要用到以下核心代码:



      注释:
      1、BurnSpeed为换漆速度,通过余弦函数的转换,使噪声纹理的r值周期性的变化,以实现周期性动态换漆效果;
      2、Diffuse1和Diffuse2为所换两种漆的颜色;
      3、BurnMap为噪声纹理,本效果采用如下噪声纹理:



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



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



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


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

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




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



      菲涅尔反射是指当光线照射到物体时,一些光线会发生反射,一些则进入物体内部后发生折射或散射的光学现象。在使用上述公式时,可根据视线到点的方向计算出光对各点的反射强度。好比在看水面的时候,看近处能看见水底,看远处则由于强烈反射只能看到水面及反射光。
      通过上述的效果叠加就可以得到逼真的车辆换漆效果了,有兴趣的小伙伴可以动手试试哦!

      相关文章
      高德平台注册 395| 285| 30| 402| 357| 729| 164| 280| 912| 33| 58| 603| 339| 653| 30| 674| 959| 121| 150| 278| 765| 769| 901| 265| 661| 698| 933| 140| 953| 870| 564| 514| 918| 740| 145| 652| 61| 667| 530| 232| 421|