星之卡比-机械星球 机械魔方shader思路
CSDN服务器崩了,图片待补。
视频如下
http://pan.baidu.com/s/1i4R97gT
图片说明:
a, 一个box, 自己旋转,然后颜色变换,在最右侧有高光, 然后内部有电路一样的东西似乎在流动。
b, 背后有一个动态光flare
c, 背后有一个多个方块fadeinFadeout效果。
思路一:旋转、动态光flare、背后的多方块fadeinFadeout效果都不是问题。难点是中间的那个光不停变换的怎么做。思路一就是我最开始的想法,通过程序做按照时间或者旋转角度作为输入做pixel控制。但是后来一想,这种方法太笨了,coding过于复杂,并且不利于artist调整。
思路二:使用两个差别比较大的Texture配合lerp()函数,然后配合计算时间(或者cube的旋转角度)做输入,计算pixel。这个approach比之前的好一些,但是还是面对需要做两个Texture,调整lerp的工作,最关键是不够直观。
思路三:其实也不算是思路,因为之后我又看到了一个同样的cube,但是是灰色的,从这个cube可以看到它会出现镜面高光(最右面的面)。我一下子想到了!这是一个典型应用了brdf(或者reflectionCube)做到的高光和颜色控制说白了就是通过输入Viewdir和Normal,算出Reflectdir,然后把Reflectdir归一化