2013-11-12 6 views
0

Итак, я пытаюсь перенести мой код openGLES 1.0 в OpenGLES 2.0 (GLKit). Основная концепция - вы можете ходить в трехмерном пространстве.iOS: OpenGL 2.0 ES перемещается вокруг объекта

То, что я борюсь с движется вокруг объекта на основе моей позиции камеры (получил контроль проволокой вверх и т.д.)

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect { 

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 

    self.baseEffect.transform.modelviewMatrix = GLKMatrix4MakeLookAt(eye[0], eye[1], eye[2],center[0], center[1], center[2], 0.0, 1, 0.0); 
    [self.baseEffect prepareToDraw]; 

    self.cube.effect.transform.modelviewMatrix = self.baseEffect.transform.modelviewMatrix; 
    self.cube.effect.transform.projectionMatrix = self.baseEffect.transform.projectionMatrix; 

    // Used to scale stuff based on screen res 
    static float roation = 0; 
    self.cube.rotation = GLKVector3Make(0, roation, 0); 
    [self.cube drawWithRotationWithRenderMode:RenderTexture]; 

    [self handleTouches]; 
} 

бит я застрял с это рендер куба на основе камеры (I считаю, мне нужно что-то вроде setIdentyM

- (void)drawWithRotationWithRenderMode:(RenderMode)renderMode 
{ 
    [EAGLContext setCurrentContext:APP_DELEGATE.context]; 

    float alpha = 1; 
    float doNotRender = NO; 

    GLKMatrix4 current = GLKMatrix4Identity; 
    current = GLKMatrix4Translate(current, position.x, position.y, position.z); 
    current = GLKMatrix4Scale(current, scale.x, scale.y, scale.z); 
    self.effect.transform.modelviewMatrix = current; 
+0

Так что я думаю, что моя камера работает, я просто нужно знать, как Полагаю, что объект стоит на X, y, z. Насколько похожи вызовы Android OpenGL? – Burf2000

ответ

0

Это оказался вопрос, где baseEffect не инициализировать, прежде чем она используется :(

Смежные вопросы