Hi,
I’m tryin to execute a basic shader, but applying shader on the object makes it disappear. I have pasted the code below, Can anyone help me point out whats wrong in the code?
CODE:
Sprite * ball1 = Sprite::create(filename.png);
_gameContainer->addChild(ball1);
ball1->setPosition(100.f, 100.f);
shaderProgram = GLProgram::createWithFilenames("shaders/vertex.vsh", "shaders/pixel.fsh");
shaderProgram->link();
shaderProgram->updateUniforms();
shaderProgram->retain();
shaderProgram->addAttribute(GLProgram::ATTRIBUTE_NAME_POSITION, GLProgram::VERTEX_ATTRIB_POSITION);
shaderProgram->addAttribute(GLProgram::ATTRIBUTE_NAME_COLOR, GLProgram::VERTEX_ATTRIB_COLOR);
shaderProgram->addAttribute(GLProgram::ATTRIBUTE_NAME_TEX_COORD, GLProgram::VERTEX_ATTRIB_TEX_COORD);
ball1->setGLProgram(shaderProgram);
#vertex.vsh
attribute vec4 a_position;
attribute vec2 a_texCoord;
uniform mat4 u_MVPMatrix;
ifdef GL_ES
varying mediump vec2 v_texCoord;
else
varying vec2 v_texCoord;
endif
void main()
{
gl_Position = u_MVPMatrix * a_position;
v_texCoord = a_texCoord;
}
#pixel.fsh
ifdef GL_ES
precision mediump float;
endif
varying vec2 v_texCoord;
uniform sampler2D u_texture;
void main()
{
gl_FragColor = vec4(1.0,1.0,1.0,1.0);//texture2D(u_texture, v_texCoord);
}
All helps are highly appreciated…