因为在使用 shders 和 GLKit 呈现的默认模板中。
您应该删除 GLKit 代码。
例如
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
glClearColor(0.65f, 0.65f, 0.65f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBindVertexArrayOES(_vertexArray);
// Render the object with GLKit
[self.effect prepareToDraw]; // GLKit used default shaders
glDrawArrays(GL_TRIANGLES, 0, 36); // render with GLKit
// Render the object again with ES2
glUseProgram(_program); // enable shader
// set parametres
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0, _modelViewProjectionMatrix.m);
glUniformMatrix3fv(uniforms[UNIFORM_NORMAL_MATRIX], 1, 0, _normalMatrix.m);
glDrawArrays(GL_TRIANGLES, 0, 36); // render with Sahder, because glUseProgram(_program);
}
在 setupGL 你可以找到 [self loadShaders];