我遇到了使用GLSL获取黑屏的问题。我在CPU上计算自己的投影矩阵和模型视图矩阵,当我只使用普通的GLSL代码时
void main() {
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
它似乎工作得很好。我将矩阵加载到openGL中,我的图像看起来很好。
但是,只要我在渲染部分尝试使用它:
glUseProgram(p);
//glUseProgram(0);
//These were calculated and loaded into openGL before and they work.
float mod[16];
glGetFloatv(GL_MODELVIEW_MATRIX, mod);
float proj[16];
glGetFloatv(GL_PROJECTION_MATRIX, proj);
glUniformMatrix4fv(projMatrixLoc, 1, false, proj);
glUniformMatrix4fv(viewMatrixLoc, 1, false, mod);
这在我的着色器中:
uniform mat4 modelview;
uniform mat4 projection;
void main() {
mat4 mvp = projection * modelview;
gl_Position = mvp* gl_Vertex;
}
我得到一个黑屏。我只是不知道我做错了什么