不知道有没有人看到这个效果会眼熟。这个只是将openg es编程指南里面的多重纹理效果移植到cocos2d上面来。但是,本文多了一个可以设置亮度纹理位置和大小的方法。
这种效果可以用来模拟手电筒吧。
就是利用了shader,读取两块纹理,然后通过一定的算法计算出叠加后的色值,最后渲染出来。
我们了解到,渲染sprite的类是TriangleCommand,这个类只能渲染多个三角形,并且只能渲染一块纹理。因此,我们要使用CustomCommand来渲染两块纹理。
我们在CustomCommand的执行回调里面写这样的代码:
//Load the mv
_glProgramState->apply(_modelViewTransform);
cocos2d-x学习笔记——双重纹理透明特效
本文介绍了如何在cocos2d-x中实现双重纹理透明特效,通过自定义Command渲染两块纹理并利用shader进行颜色叠加。讲解了不能使用SpriteBatchNode的原因,并分享了遇到的关于矩阵变换的问题及解决方案。附有代码下载链接。
摘要由CSDN通过智能技术生成