学习cocos2d-x 以来一直对里面的shader部分感兴趣,今天正好花了点时间来研究一下精灵的描边效果。
主要参考了子龙山人大神的TestCpp里面例子并结合自己的理解,实现相对比较简单。主要是根据引擎内部自带的shader相关代码来实现的。
好了废话不多说看代码:
1。首先需要打开CCShaderCache.cpp文件修改里面部分代码,添加我们描边的效果。
在此枚举值里面加入:kShaderType_LabelOutline
2。然后在 voidShaderCache::loadDefaultShaders() 函数里面加入:
p =newGLProgram();
loadDefaultShader(p,kShaderType_SpriteTextureOutline);
_programs.insert(std::make_pair(GLProgram::SHADER_NAME_SPRITE_TEXTURE_OUTLINE, p ) );
3。至于GLProgram::SHADER_NAME_SPRITE_TEXTURE_OUTLINE值的由来,
需要在CCGLProgram.h和CCGLProgram.cpp文件里面分别加入
static const char* SHADER_NAME_SPRITE_TEXTURE_OUTLINE;和

本文介绍了如何在cocos2d-x中为精灵添加描边效果,主要涉及修改CCShaderCache.cpp、GLProgram、ccShaders.h和ccShaders.cpp等文件,以及自定义片段着色器代码实现描边宽度和颜色控制。
最低0.47元/天 解锁文章
3754

被折叠的 条评论
为什么被折叠?



