更多笔记和源码请访问公众号
关于材质系统/shader我就不再啰嗦了,论坛里很多大佬讲的很详细
CocosCreator升级到了2.3,材质系统也终于转正,去掉了《实验版》的title
shader是参考的大佬的项目:
https://github.com/wantnon2/EffectNodes-for-cocos2dx/tree/v3
转眼四五年过去了···
大佬应该是去做unity了吧,GitHub上的项目也没有再维护了
我做了六七年游戏,一直在用cocos,也算是老菜鸟了···
好了,废话不多说了,这里主要说一下2.3版本材质系统的注意事项
关于Effect的官方文档:
https://docs.cocos.com/creator3d/manual/zh/material-system/effect-syntax.html
没有色彩的世界是枯燥的,先让VSCode认识下Effect吧
在VSCode中搜索安装 Cocos Effect 插件:
2.3中对shader的语法要求更为严格,不过编辑器给出的错误提示也很清晰,大部分可以根据错误信息来更改
比如:
UBO后边必须要加分号:
HSL.effect - fs - 38: error EFX2209: missing semicolon after UBO ‘ARGS’ declaration
sampler2D必须在UBO外部声明
HSL.effect - fs - 36: error EFX2208: sampler uniforms must be declared outside blocks.
UBO内部不应出现 vec3 成员
HSL.effect - fs: error EFX2204: uniform vec3 a_position: please use 1, 2 or 4-component vectors to avoid implicit padding
UBO内部不允许任何会引入 padding 的成员声明顺序
HSL.effect - fs: error EFX2205: UBO ‘ARGS’ introduces implicit padding: 12 bytes before ‘a_position’, consider re-ordering the members
如果遇到其他无法调合的错误,也可以留言,一起交流
毕竟是脱离了实验版的材质嘛,还增加了很多功能:
更多精彩,自己发现吧~
最后给大家推荐一个教程:
https://learnopengl-cn.github.io/
ps:源码需在公众号回复:HSL