2012-08-03 64 views
1

我目前在新iPad的GLKView下使用OpenGL ES 2.0。看起来,每当我调用glColor4f时,除了导致GL_INVALID_OPERATION错误之外,没有任何事情发生(即它不打印我想要的多边形)。然后,只要我尝试加载纹理,我收到此错误消息: Error loading file: The operation couldn't be completed. (GLKTextureLoaderErrorDomain error 8.)glColor4f停止使用GLKTextureLoader加载纹理

但在调用glColor4f之前,一切工作正常。下面是我的代码drawInRect:

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect 
{ 
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f); 
    glClear(GL_COLOR_BUFFER_BIT); 

    // Render the object with GLKit 
    self.effect.texture2d0.enabled  = NO; 
    self.effect.transform.modelviewMatrix = _defaultModelMatrix; 

    [self.effect prepareToDraw]; 

    // Render the grid 
    glBindBuffer(GL_ARRAY_BUFFER, _gridVertexBuffer); 
    glEnableVertexAttribArray(GLKVertexAttribPosition); 
    glVertexAttribPointer(GLKVertexAttribPosition, 2, GL_FLOAT, GL_FALSE, 0, 0); 

    glColor4f(1.0f, 0.0f, 0.0f, 1.0f); 
    glDrawArrays(GL_TRIANGLES, 0, TRIANGLES * 6); 

    glDisableVertexAttribArray(GLKVertexAttribPosition); 
    glBindBuffer(GL_ARRAY_BUFFER, 0); 
} 

如果任何人都可以提供帮助,我会非常感激。有些事情要指出。我尝试着色的对象存储在VBO中,并以白色呈现,尽管我试着将它着色为红色。

感谢

回答

1

glColor4f不是OpenGLES2.0命令(这是从GLES1.1)

你想要做的就是声明你的着色均匀称为“颜色”(或类似的东西),像通常使用任何着色器制服一样设置制服,并在写入像素之前将您的片段颜色与该制服相乘。

+0

谢谢,这真的有帮助! – 2012-08-04 03:44:06