2
glGetUnfiormLocation 호출을 실행하는 동안 문제가 발생했습니다. ATI 그래픽 카드를 실행하는 학교 컴퓨터에서 프로젝트를 작성하는 동안 프로그램은 완벽하게 작동합니다. 그러나 nvidia 카드를 실행하는 학교 컴퓨터를 사용하면 glGetUniformLocation을 호출하면 -1이 반환됩니다. 여기 glGetUniformLocation은 nvidia 카드에서 -1을 반환합니다.
//c++ side
glLinkProgram(ShaderIds[0]);
ExitOnGLError("ERROR: Could not link the shader program");
ModelMatrixUniformLocaion = glGetUniformLocation(ShaderIds[0], "ModelMatrix");
ViewMatrixUniformLocation = glGetUniformLocation(ShaderIds[0], "ViewMatrix");
ProjectionMatrixUniformLocation = glGetUniformLocation(ShaderIds[0], "ProjectionMatrix");
ExitOnGLError("ERROR: Could not get the shader uniform locations");
그리고
는 나를 포기하지 말아야 -1 유니폼의 최적화에 따라, 그들은 모두 사용하기 때문에,로, 내가 말할 수있는 건 버텍스 쉐이더layout(location=0) in vec4 in_Position;
layout(location=1) in vec4 in_Color;
layout(location=2) in vec2 in_Coord;
uniform mat4 ModelMatrix;
uniform mat4 ViewMatrix;
uniform mat4 ProjectionMatrix;
varying vec2 v_UVCoord;
out vec4 ex_Color;
void main(void)
{
gl_Position = (ProjectionMatrix * ViewMatrix * ModelMatrix) * in_Position;
gl_PointSize = in_Coord.x;
ex_Color = in_Color;
v_UVCoord = in_Coord;
}
입니다 속성입니다. 이 문제에 대한 어떤 통찰력이라면 크게 감사하겠습니다.