Model-View-Controller如何适应OpenGL依赖?

时间:2015-07-21 23:09:50

标签: java opengl model-view-controller resources jogl

我正在开发一个将Java OpenGL与模型 - 视图 - 控制器设计模式结合使用的应用程序。任何人都可以建议一种通用机制,通过这种机制,用于渲染特定图形元素的顶点数组对象可以与此模式一起重复使用吗?

示例:说我的Model中有数据,其中提供了一些关于单个Polygon的基本信息,这些信息对我的View足够详细。将细分成一堆顶点数组对象并在GPU上渲染。是否有一种灵活的模式,View可以在帧之间重用这些VBO,而不会为Model提供特定于渲染的数据?

我认为我可以创建一个HashMap,您可以为Polygon获取相应的渲染数据,但这会降低渲染速度。这是因为我首先需要迭代我需要渲染的每个Polygon,然后在HashMap中获取相应的值。我也可以将Polygon引用传递给VBO,但这显然违反了模型 - 视图 - 控制器设计理念。

1 个答案:

答案 0 :(得分:0)

  

是否有一种灵活的模式,View可以在框架之间重复使用这些VBO,而不为模型提供特定于渲染的数据?

Observer pattern。每当模型更改状态时,它会戳出任何已注册的视图,指示哪个模型已更改。然后,View可以转储其模型的缓存版本,查询新更改的模型,并(重新)生成它的新表示。