我正在使用GLKit爲iPhone開發一個OpenGL項目,並且需要一次繪製幾個不同的對象並獨立旋轉和轉換它們。幾乎所有我見過的GLKit例子都將渲染類(通常是GLKViewController)中的頂點/顏色/紋理數據放在一起。 我需要做的是創建單獨的類來保存對象數據,並從GLKViewController類簡單地調用對象的繪製方法。喜歡的東西:GLKViewController:使用GLKit設置獨立對象
-(void)glkView:(GLKView *)view drawInRect:(CGRect)rect{
[mycube draw:view];
}
-(void)glkViewControllerUpdate:(GLKViewController *)controller{
[mycube updateposition:controller.timesincelastdraw];
}
我應該如何去實現呢?我怎樣才能從一個單獨的類中繪製EAGLContext?有什麼我可以看看的例子嗎?謝謝。
這是一個很好的方法。但值得指出的是,它只是衆多可行的應用架構之一。要快速總結另一個:在我的一些應用程序中,我遵循類似於GLKEffects類的模式,其中部分場景管理GL資源並執行GL命令,但假定調用代碼將管理上下文。例如一個'Cube'類在'init'中設置了一個VAO並將其繪製在一個'draw'方法中,但它並不關心'EAGLContext'或着色器/ GLKEffects,因爲它假設你將它們設置爲當前狀態在調用'init'或'draw'之前。 – rickster
@rickster,這是我一直在做的方法。我正在設置當前上下文setCurrentContext:,然後在我要繪製的對象上調用draw方法,例如立方體。似乎對我來說正確的方法,感謝您的意見! –
Stuartsoft