上一节讲了车的动画,展示视角切换,以及车的自动旋转,虽然看起来是些不相关的功能,但是因为我把一些代码写在了一个脚本里面,讲的比较杂,好在都是一些独立的小功能啦~~这一节再讲一个小部分。
**
车身做一个颜色渐变shader
**
首先介绍一款unity插件,Car Paint Shaders Asset,如果需要的话,http://www.taidous.com/forum.php?mod=viewthread&tid=43357&highlight=Car%2BPaint%2BShaders%2BAsset,就算用不着,也可以学习一下,效果挺好的。
例如
细节也很真实;即使是放大观察细节也很只是,用于大屏展示会很合适,如图
具体不用多说,感兴趣的话可以下载看看,挺有参考价值的。
下面说一下如何实现车身渐变,关键代码其实很简单
//两个颜色的混合比例由_Center决定,动态改变_Center的值,可以形成渐变的效果
float d = _Center + input.x;
float s = abs(d);
d = d/s;
//中间做一个过渡带
float r=10;
float f = saturate(s/r);
d *= f;
d = d/2 + 0.5;
finalColor= lerp(finalColor,secondColor,d);
外部程序控制动态改变_center值即可,效果如下
gif有点小,效果执行有点快了,但是大概效果就是这样实现的。
值得注意的地方,因为我用的车不是一个整体,所以如果渲染速度慢下来可以看见并不是完全从上到下渲染的。所以根据实际车的模型,从前到后,从左到右,可以自行选择渲染方向。