关于Sprite的setShaderProgram后坐标改变的问题

spr->setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR));
为什么使用后,原图型的坐标会发生变化?
弄了很久还是没弄懂,请问是BUG还是要设置其他的属性?附上添加前后的图片,注意手指的坐标

我发现了
ccShader_PositionTextureColor_noMVP_vert.h 类中定义:gl_Position = CC_PMatrix * a_position;
而ccShader_PositionTextureColor_vert.h 类中定义:gl_Position = CC_MVPMatrix * a_position;

矩阵的概念还是很模糊的,内部怎么处理暂时还没找到,CC_PMatrix 为原坐标,而CC_MVPMatrix 则会变动坐标

GLProgram::setUniformsForBuiltins函数中设定了:

CC_PMatrix为 :
kmGLGetMatrix(KM_GL_PROJECTION, &matrixP);


CC_MVPMatrix 为:
kmMat4 matrixMVP;
kmMat4Multiply(&matrixMVP, &matrixP, &matrixMV);

而里边是怎么传值的就查不到了

LZ你找到解决问题的方法了么,,我这边也遇到这种问题了

http://www.cocoachina.com/bbs/read.php?tid=197691&page=2#961738 我试参照这个写的,我解决问题了

楼主能加我QQ吗 请教几个问题,QQ958491837 谢谢啦

楼主,差距题外话,请问你截图中这种未开启地图显示为灰色,是怎么实现的呢,不是用的多张图片叠加的吧?

经在下潜心研究几天摸出来的解决方法:
http://evamango-blog.logdown.com/posts/243059-quick-cocos-32-methods-to-make-object-gray