关于shader清除问题

使用cocos2dx 3.3版本,Sprite3D当中,如果设置了自定义的shader,如何还原?
直接在sprite里
this->setGLProgramState(GLProgramState::getOrCreateWithGLProgram(GLProgramCache::getInstance()->getGLProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP)));
会产生变形,请问是怎么回事

求助,总不能移除再初始化sprite把,2d应该没事,3d的如何恢复默认shader?

只能自己写个默认shader了,另外官方的默认shader估计是没有区分前景透明色,我看ccShader_PositionTextureColorAlphaTest.frag里确实把a值小于CC_alpha_value 镂空了。
如果透明色没有discard的话,那透明贴图会吧后面的颜色当作透明色来绘制。本来3d性能就有限,美术为了减少顶点经常使用透明贴图,默认shader是不是改一改,哪怕区分2d和3d也可以阿