Я начинаю узнавать о разработке OpenGL , в частности, с использованием Mac OS X и API-интерфейсов Cocoa и / или CGL, поэтому я буду использовать эти классы в качестве примеров, но мой вопрос больше касается дизайна, чемконкретная реализация.Вот ситуация:
У меня есть объект 'scene', который может содержать или ссылаться на данные для визуализации, и отвечает на сообщение 'render' для рисования сам, без каких-либо преобразований.
У меня есть объект NSView
или NSOpenGLView
, который создает openGLContext и pixelFormats, изменяет размеры представления и обновляет ModelView и Projection на основе любых преобразований, которые ему передаются.Объект просмотра также содержит камеру struct
, которая является основой для преобразований openGL.
У меня есть объект контроллера, который является NSResponder
объектом и отвечает на пользовательские входные данные.
Я не знаю, является ли это лучшим предложением;«модель» в этом случае должна быть сценой, и я полагаю, что классически контроллер должен опосредовать действие между моделью и представлением, но для представления странным представляется странным отправлять [[controller scene] render]
каждый раз, когда он хочет нарисовать представление.
И я не уверен, что наилучшим местом для «камеры» является вид.Должен ли я сделать так, чтобы объект сцены включал в себя камеру, смотрящую на него, и должен ли он реагировать на ввод интерфейса от контроллера, который в настоящее время передается в представление?
Или это вообще неправильный подход?Я пытаюсь вставить в MVC что-то, что на самом деле не предназначено для этого.Мне любопытно, какие шаблоны проектирования люди используют в OpenGL.