2012-08-03 67 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