hi !
I need to pass two parameters to my fragment shader, but I never get the right variable's values. So I tried to change the uniform to const variables like this :
and the shader works perfectly. Now if i try to do the same things with uniform :Code :/*******************/ /* FRAGMENT SHADER */ /*******************/ uniform sampler2D fishTex; //uniform float aspectRatio; //uniform float fishRadius; const float aspectRatio = 1.5; const float fishRadius = 0.5204475309; ...
And send the three values like this :Code :/*******************/ /* FRAGMENT SHADER */ /*******************/ uniform sampler2D fishTex; uniform float aspectRatio; uniform float fishRadius; ...
Code :glUseProgram(texProgram); GLint texVar = glGetUniformLocation(texProgram, "fishTex"); printf("fishTex : %d\n", texVar); glUniform1i(texVar, 0); texVar = glGetUniformLocation(texProgram, "aspectRatio"); printf("aspectRatio : %d\n", texVar); glUniform1f(texVar, 1.5); texVar = glGetUniformLocation(texProgram, "fishRadius"); printf("fishRadius : %d\n", texVar); glUniform1f(texVar, 0.5204475309f);
I get positive variable's identifier (with the printf) but the values inside the shader doesn't change. Maybe they stay to 0. I don't understand where is the problem. I have wrote another shader with three uniform sampler2D and it works ...



