如何在Cocos2d-x 3.0中使用opengl shader?

坐标变化的解决了,将附件gray.vsh 中的CC_MVPMatrix 改为 CC_PMatrix 即可

好像只有Sprite的有效果。其他的貌似不行呢

我为什么会报这个错误啊,cocos2d: cocos2d: ERROR: 0:18: Regular non-array variable ‘CC_Texture0’ may not be redeclared

这个报错已经解决了,//uniform sampler2D CC_Texture0; 注释掉这句就ok了:867:

我想问的是这样设置了以后如何恢复呢?

grey.fsh

varying vec4 v_fragmentColor;
varying vec2 v_texCoord;

void main()
{
vec4 v_orColor = v_fragmentColor * texture2D(CC_Texture0, v_texCoord);
float gray = dot(v_orColor.rgb, vec3(0.299, 0.587, 0.114));
gl_FragColor = vec4(gray, gray, gray, v_orColor.a);
}

3.2恢复

target->setGLProgram(GLProgramCache::getInstance()->getGLProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP));

请问 如果要移除这个shader怎么处理呢?把位置矩阵改为CC_PMatrix后 添加shader的位置是没问题了 但是我再执行一个ShaderPositionTextureColor_noMVP用于移除shader的时候 图片消失了 不知道是不是坐标位置不对 怀疑可能跟设置shader的时候修改了CC_PMatrix有关

求3.0恢复方法

可以再解释一下吗? 3.2里没找到 setGLProgram 这个方法啊 另外 GLProgramCache 也没找到,可以多解释一下吗?

我只想说,位置会偏移。拿你的代码到3.1版本。一点效果都没。吭:15:垃圾引擎,有钱了肯定要换掉!!!!!!!!

yiersansiwuliuqibajiushi

vs 2013 运行后直接就: std::out_of_range at memory location 0x0021E4D4. 怎么回事 shader求解??

附件怎么下载下来是.php的

谢谢分享@@@@@@@@

请问shader在目前相对主流的手机cpu/gpu上性能如何?用多了会不会造成客户端对硬件要求提高很多呢?

我使用cocos2d-x 3.2 直接崩溃了

:14: :14: :14:

:11::11::11:

用这个setGLProgramState()