Hi Everyone,
I have a code that renders a model. It works perfectly with GLSL 1.40 on NVidia, but, when rendered the scene on Intel HD 3000 (driver version 9.17.10.2867) nothing works. The intel hd 3000 is a primary card in the OS (Windows 8 64 bit).
After spending hours in debugging and goggling I found that the following code behaves a bit differently:
Code :CRenderEngine::__ModelMatrixUniformLocationId_Color = glGetUniformLocation(CRenderEngine::__ShaderProgramId_Color, "ModelMatrix"); CRenderEngine::__ViewMatrixUniformLocationId_Color = glGetUniformLocation(CRenderEngine::__ShaderProgramId_Color, "ViewMatrix"); CRenderEngine::__ProjectionMatrixUniformLocationId_Color = glGetUniformLocation(CRenderEngine::__ShaderProgramId_Color, "ProjectionMatrix");
ShaderProgram is initialized correctly (since it is the first program with value 1).
For NVidia chip, values for locations are 0,1,2,
But for Intel chip they are: 23855104, 23789568 and 23724032, which seems a bit not logical. glGetError gives GL_NO_ERROR.
Fragment Shader:
Code :#version 140 in vec4 ex_Color; out vec4 out_Color; void main(void) { out_Color = ex_Color; }
Vertex Shader:
Code :#version 140 in vec4 in_Position; in vec4 in_Color; out vec4 ex_Color; uniform mat4 ModelMatrix; uniform mat4 ViewMatrix; uniform mat4 ProjectionMatrix; void main(void) { gl_Position = (ProjectionMatrix * ViewMatrix * ModelMatrix) * in_Position; ex_Color = in_Color; }
Thanks everyone for help in advance!!




