2011-02-18 80 views
0

我開始瞭解OpenGL發展,特別是使用Mac OS X和可可和/或CGL API的,所以我會使用這些類的例子,但我的問題更多的是設計,而不是特定的實現。這裏的情況:使用OpenGL創建MVC範例的最佳方法?

我有一個「場景」的對象,可以包含或引用的數據來表現自己,並回應了「渲染」繪製消息本身,而無需任何轉換。

我有一個NSViewNSOpenGLView對象,該對象創建openGLContext和pixelFormats,調整視圖大小,並根據傳遞給它的任何轉換更新ModelView和Projection。該視圖對象還包含一個相機struct,它是openGL轉換的基礎。

我有一個控制器對象,它是一個對象NSResponder,並響應於用戶輸入。

我不知道這是不是最好的安排;在這種情況下,'模型'應該是場景,我認爲控制器應該在模型和視圖之間調解動作,但是如果視圖每次要繪製視圖時都發送[[controller scene] render],這似乎很奇怪。

而且我不知道如果「相機」最好的地方是在視圖中。我是否應該擁有場景對象還包括照相機,並讓它響應來自當前傳遞給視圖的控制器的UI輸入?

或者這是錯誤的做法完全?我正在試圖將一些東西轉化爲MVC,但這並不意味着它。我很好奇人們在OpenGL中使用哪種設計模式。

回答

1

我以你描述的方式看待它。視圖旨在控制視點和投影,因此保留攝像機參考是合乎邏輯的。另一方面,場景對我來說是一個純數據容器,不會觸及渲染方法,與您的模型相反。

相關問題