各位大佬请教一个关于cocos shader的问题

qq_33739641 2019-11-08 12:03:44
最近小弟在研究cocos shader方面的知识 刚入门 碰到问题自己又无法解决 斗胆请教各位大佬
我原本自己写了一个shader程序 无法运行看不到纹理 后来我又把网上某位大佬的例子 抄了过来 还是无法看到纹理 心中甚是疑惑特来请教:

下面这是大佬的例子 也没有报错就是纹理显示不出来
创建精灵:
auto sprite = Sprite::create("HelloWorld.png");
if (sprite == nullptr)
{
problemLoading("'HelloWorld.png'");
}
else
{

sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
this->addChild(sprite);
shaderNode(sprite);
}

这是方法
void HelloWorld::shaderNode(Node* node)
{
GLProgram* program = GLProgramCache::getInstance()->getGLProgram("testShader");
if (program == nullptr)
{
program = GLProgram::createWithFilenames("test.vert", "test.frag");
GLProgramCache::getInstance()->addGLProgram(program, "testShader");
}
GLProgramState* programState = GLProgramState::getOrCreateWithGLProgram(program);
programState->setUniformVec4("u_grayParam", Vec4(0.2f, 0.3f, 0.5f, 1.0f));
node->setGLProgramState(programState);
}

顶点着色器
attribute vec4 a_position;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
void main()
{
gl_Position = CC_PMatrix * a_position;
v_texCoord = a_texCoord;
}

片元着色器
varying vec2 v_texCoord;
uniform vec4 u_grayParam;
void main()
{
vec4 texColor = texture2D(CC_Texture0, v_texCoord);
texColor.rgb = texColor.r * u_grayParam.r + texColor.g * u_grayParam.g + texColor.b * u_grayParam.b;
gl_FragColor = texColor;
}


...全文
168 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33739641 2019-11-08
  • 打赏
  • 举报
回复
大家有没有qq群 活跃点的大神什么的多多益善 我一个人 闭门造车 太难了
qq_33739641 2019-11-08
  • 打赏
  • 举报
回复
解决了 解决了 原来查到底层link的时候失败了 原因是资源没找到 尴尬 代码没问题 可以正常运行

721

社区成员

发帖
与我相关
我的任务
社区描述
Cocos2d-x相关内容讨论专区
社区管理员
  • Cocos2d-x
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧