<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)菲涅尔反射。需要使用的公式如下:



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

      相关文章
      江苏快三计划网 197| 191| 873| 118| 556| 771| 16| 103| 541| 46| 331| 195| 59| 959| 439| 691| 625| 687| 361| 617| 555| 654| 340| 736| 166| 620| 339| 570| 359| 169| 561| 445| 432| 349| 852| 579| 273| 974| 226| 345| 332|