我正在开发一个将Java OpenGL与模型 - 视图 - 控制器设计模式结合使用的应用程序。任何人都可以建议一种通用机制,通过这种机制,用于渲染特定图形元素的顶点数组对象可以与此模式一起重复使用吗?
示例:说我的Model
中有数据,其中提供了一些关于单个Polygon
的基本信息,这些信息对我的View
足够详细。将细分成一堆顶点数组对象并在GPU上渲染。是否有一种灵活的模式,View
可以在帧之间重用这些VBO,而不会为Model
提供特定于渲染的数据?
我认为我可以创建一个HashMap
,您可以为Polygon
获取相应的渲染数据,但这会降低渲染速度。这是因为我首先需要迭代我需要渲染的每个Polygon
,然后在HashMap
中获取相应的值。我也可以将Polygon
引用传递给VBO,但这显然违反了模型 - 视图 - 控制器设计理念。
答案 0 :(得分:0)
是否有一种灵活的模式,View可以在框架之间重复使用这些VBO,而不为模型提供特定于渲染的数据?
Observer pattern。每当模型更改状态时,它会戳出任何已注册的视图,指示哪个模型已更改。然后,View可以转储其模型的缓存版本,查询新更改的模型,并(重新)生成它的新表示。