Pro OpenGL ES for iOS

(singke) #1

CHAPTER 1: Computer Graphics: From Then to Now (^23)
GLKMatrix4 modelViewMatrix = //6
GLKMatrix4MakeTranslation(0.0f, 0.0f, -1.5f);
modelViewMatrix = //7
GLKMatrix4Rotate(modelViewMatrix, _rotation, 1.0f, 1.0f, 1.0f);
modelViewMatrix = //8
GLKMatrix4Multiply(baseModelViewMatrix, modelViewMatrix);
self.effect.transform.modelviewMatrix = modelViewMatrix; //9
// Compute the model view matrix for the object rendered with ES2.
modelViewMatrix =
GLKMatrix4MakeTranslation(0.0f, 0.0f, 1.5f); //10
modelViewMatrix =
GLKMatrix4Rotate(modelViewMatrix, _rotation, 1.0f, 1.0f, 1.0f);
modelViewMatrix =
GLKMatrix4Multiply(baseModelViewMatrix, modelViewMatrix);
_normalMatrix = //11
GLKMatrix3InvertAndTranspose(GLKMatrix4GetMatrix3(modelViewMatrix),
NULL);
//12
_modelViewProjectionMatrix = GLKMatrix4Multiply(projectionMatrix, modelViewMatrix);
_rotation += self.timeSinceLastUpdate * 0.5f; //13
}



  • (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
    {
    glClearColor(0.65f, 0.65f, 0.65f, 1.0f); //14
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


glBindVertexArrayOES(_vertexArray); //15


// Render the object with GLKit.


[self.effect prepareToDraw]; //16


glDrawArrays(GL_TRIANGLES, 0, 36); //17


// Render the object again with ES2.


glUseProgram(_program); //18


glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0,
_modelViewProjectionMatrix.m);
glUniformMatrix3fv(uniforms[UNIFORM_NORMAL_MATRIX], 1, 0, _normalMatrix.m);


glDrawArrays(GL_TRIANGLES, 0, 36); //19
}

Free download pdf