高性能-材质动态变色分享

3D游戏中,材质变色是很常用的功能,无论是打击时闪白,还是各类魔法攻击,元素Debuff,都可以通过材质变色很好的表达。

这里使用了4种颜色改变方法。

  1. 边缘光混合
    image

  1. 直接相加
    image

叠加

  1. 灰度混合

灰色

  1. 直接修改

红色

  1. 描边颜色

描边

所有属性都增加了宏开关,可以增加新的属性

属性和颜色通过用材质的materialinstance进行修改

可以自定义新的shader和颜色

商店已免费上线,欢迎白嫖,大佬们请多多指教
https://store.cocos.com/app/detail/3603

16赞

谢谢大佬,学习马克

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

顶,顶,顶,顶,顶!

mak!!!

:ox:,感谢大佬

感谢分享.

感谢分享 :+1:t2:

感谢分享 感谢分享 :+1:t2:

大大大佬,感谢分享~

感谢付出,受益匪浅啊。

66666666666666!感谢分享

感谢大佬 :7:

感谢分享.

很实用,感谢分享

感谢分享!
请问有没计划支持 Instancing合批 ?


宝,instancing是支持的,需要使用烘焙动画,头盔需要使用挂点的方式。

失效的原因是请求了材质实例,导致instancing合批被打断了,这个要研究一下喵

Effect Syntax · Cocos Creator -> 自定义 Instanced 属性
我的实现方式是加一套合批下使用的参数:

  #if USE_INSTANCING // 合批时可以更改的参数
    in vec4 instanced_uv;
    in vec4 instanced_albedo;
    in vec4 instanced_blinkSec;//闪烁效果
    in vec4 instanced_sweepLightPosPer;// 扫光效果,扫光的进度百分比,可合批后动态控制扫光效果
  #endif

然后用文档中的方式进行修改, 是可以用的, 只是不知道是不是最优方案

3D的cases有这个方案,就是比较麻烦。


等我有空了,更新下

:heartbeat: