cocos2dx-3.x:骨骼动画描边(spine)
来源:互联网 发布:2017年正能量网络热词 编辑:程序博客网 时间:2024/06/04 18:42
在网上查了很久,一直都没有找到骨骼动画描边的方法,cocos自身带的shader中有个给Sprite描边的方法,看了很久,都没有用上,内心甚是纠结,最后查了好久源码,发现spine中有个方法“setShaderProgram”,我开开心心的带入,发现,是每一块骨骼都给我描边了,厦那间整个人都不好了,最后决定自己写一个,
一,原理
通过shader,给每个像素点重新赋值
二,步骤
1.先把整个spine变成统一颜色
2.在重新放在刚刚变成统一颜色的spine上面一个spine,这样就能描边啦
问题来了,怎么样吧spine变成统一的颜色呢?好吧,这是个难点。
三.详细说明
参考cocosdemo中的sprite描边方法,重写fsh文件
调用方法如下
this->skeletonNode = SkeletonAnimation::createWithFile(CCString::createWithFormat("spine/%s.json", m_spine)->getCString(), CCString::createWithFormat("spine/%s.atlas", m_spine)->getCString(), 1.0f);this->skeletonNode->setAnimation(0, "stand", true);this->skeletonNode->setPosition(Vec2(0, 0));this->addChild(this->skeletonNode, 2);//////////////////////////////////////////////////////////////////////////auto fileUtiles = FileUtils::getInstance();auto fragmentFullPath = fileUtiles->fullPathForFilename("example_Outline.fsh");auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);auto glprogram = GLProgram::createWithByteArrays(ccPositionTextureColor_vert, fragSource.c_str());Vec4 color(0.0f, 1.0f, 0.0f,1.0f);this->skeletonNode->setShaderProgram(glprogram);this->skeletonNode->getGLProgramState()->setUniformVec4("u_outlineColor", color);this->skeletonNode->setShaderProgram(glprogram);//////////////////////////////////////////////////////////////////////////auto skeletonNode1 = SkeletonAnimation::createWithFile(CCString::createWithFormat("spine/%s.json", m_spine)->getCString(), CCString::createWithFormat("spine/%s.atlas", m_spine)->getCString(), 0.95f);skeletonNode1->setAnimation(0, "stand", true);skeletonNode1->setPosition(Vec2(0, 5));this->addChild(skeletonNode1, 3);fsh文件:
varying vec2 v_texCoord;varying vec4 v_fragmentColor;uniform vec4 u_outlineColor;void main(){ vec4 accum = vec4(0.0); vec4 normal = vec4(0.0); normal = texture2D(CC_Texture0, vec2(v_texCoord.x, v_texCoord.y));gl_FragColor = u_outlineColor*normal.a; }
效果图:
0 0
- cocos2dx-3.x:骨骼动画描边(spine)
- 菜鸟也能学cocos2dx 3.0 骨骼动画spine
- cocos2dx 使用spine制作骨骼动画
- quick-cocos2d-x spine 骨骼动画(1)
- quick-cocos2d-x spine 骨骼动画(2)
- cocos2dx-2.0.6 spine骨骼动画的实现
- Spine(2D骨骼动画)
- Spine 骨骼动画
- cocos2dx-3.x spine换装
- 骨骼动画 Spine的使用(With Cocos2d-x)
- Cocos2d-x游戏开发之骨骼动画详解-Spine
- Cocos2d-x游戏开发之骨骼动画详解-Spine
- Cocos2d-x游戏开发之骨骼动画详解-Spine
- Cocos2d-x的骨骼动画Spine和Armature
- 使用Spine软件制作骨骼动画供Cocos2d-x使用
- cocos2d-x中spine骨骼动画的应用
- Cocos2dx中的Spine骨骼入门
- Spine制作骨骼动画的视频教程-spine,spine,spine
- hdu 2553 N皇后问题(回溯)
- Windows下Qt和Qwt的安装
- ACM start
- [24]递归
- 环境变量的配置
- cocos2dx-3.x:骨骼动画描边(spine)
- android打开各种文件setDateAndType
- Java获取系统时间的四种方法
- JS封装函数打造横向滑动的图片切换效果
- 2015 / 11 / 8 号日结 kvc的简单使用
- Deep learning:一 (基础知识_1)
- hibernate 缓存...
- Android WebView 加载网页添加进度条
- IOS开发技术之合理利用类的类别