Creator 1.5.2 shader 多重纹理样例

#先来个GIF图瞅瞅

#基本原理

###shader基础教程
http://blog.csdn.net/zh13544539220/article/details/48113403

###单图shader原型来自
http://forum.cocos.com/t/creator-shader/36388

###多图shader教程
http://www.cnblogs.com/kenkofox/p/4077142.html

#大体流程

###绑定纹理
CC_Texture0 (creator自动绑定)
CC_Texture1 (自己通过引擎内部没有开放的api进行绑定,整个过程比较煎熬,多亏@panda的耐心指导 和 @zilong的画龙点睛)

###使用纹理
把CC_Texture1,通过uniform sampler2D 传给 FragmentShader

###然后就可以在FragmentShader中使用
texture2D( texture1, uv)

###不足
无法绑定CC_Texture1的attribute ,在计算UV的时候需要很多辅助换算(需要修改引擎底层)
texture1只能为单图

#最后来个大家喜欢的:样例工程!
支持所有平台
shader_multi_pic.zip (328.9 KB)

撒花@panda@zilong

9赞

正好在头疼怎么传 sampler2D 的时候,楼主出现了。
感谢分享!楼主大爱。

:+1::+1::+1::+1::+1::+1:

android上有没问题啊,我在android上跑有很奇怪的问题

楼主你好,我有一个问题想请教一下,问题是这样的,当有两个节点同时使用这个脚本时,后面绑定纹理的会覆盖掉之前绑定的纹理,请问有什么解决方案吗?
我有两张不同精灵帧

现在我把他们作为纹理参数,分别绑定给两个挂了flash脚本的节点
第一个节点


第二个节点

然后其他的代码我没有做任何更改,我只是在片段着色器中直接把传进来的非默认纹理作为图像的输出

然后我在界面上就会看到这样的效果

正常情况的话应该是两个精灵要显示对应的图片
没有报错,引擎用的是1.9.3,在web平台