我开始了解OpenGL开发,特别是使用Mac和Cocoa和/或CGL,所以我将使用这些类作为示例,但我的问题更多的是关于设计,而不是特定的实现。情况是这样的:
我有一个“scene”对象,它可以包含或引用数据来渲染它自己,并响应一个“render”消息来绘制它自己,而不需要任何转换。
我有一个NSView或NSOpenGLView对象,它创建openGLContext和pixelFormats,调整视图大小,并根据传递给它的任何转换更新ModelView和投影。视图对象还包含一个摄影机struct,它是openGL变换的基础。
我有一个控制器对象,它是一个NSResponder对象,它响应用户输入。
我不知道这是否是最好的安排;在这种情况下,“模型”应该是场景,我认为经典的控制器应该协调模型和视图之间的操作,但是视图每次想要绘制视图时都发送[[controller scene] render]似乎很奇怪。
我不确定放置“相机”的最佳位置是否在视图中。我是否应该让scene对象也包括看着它的摄影机,并让它响应来自控制器的UI输入,该输入当前传递给视图?
或者这是完全错误的方法?我试图将一些不适合MVC的东西硬塞进MVC。我很好奇人们在OpenGL中使用什么样的设计模式。
发布于 2011-02-19 06:11:27
我像你所描述的那样看待它。视图旨在控制视点和投影,因此在其中保留相机参考是合乎逻辑的。另一方面,Scene对我来说是一个纯数据容器,与你的模型相反,不涉及渲染方法。
https://stackoverflow.com/questions/5046127
复制相似问题