我正在研究一个小型游戏框架,因为我正在学习DirectX11。
有一个BufferManager
类(可能是静态的)来处理实时或之前创建的模型的所有顶点和索引数据的最佳方法是什么。该类应负责创建Buffers动态或静态,具体取决于模型信息,然后绘制它们。
IASetVertexBuffer(model[i].getVertBuff())
; 答案 0 :(得分:1)
此处未显示任何代码,但您要求的构造如下:
如果你恰当地设计了这个,你可以从实际的游戏内容,属性和逻辑或规则集中抽象出所有的引擎行为和责任。这样您的游戏引擎就可以重复使用多个游戏。这样你的引擎对特定游戏没有任何依赖性,当你准备好重用它时,你所要做的就是创建一个继承自这个静态或动态库的所有引擎组件的主项目。被纳入下一场比赛。这种代码分离是通用可重用代码的一种很好的方法。
为了更好地展示这种方法,我建议您查看此网站www.MarekKnows.com并按照Shader Engine系列视频教程进行操作。虽然这个特定的网站专注于使用C ++的Win32,但使用的是OpenGL而不是DirectX。然而,整体设计模式具有相同的概念。唯一的区别是剥离OpenGL部件并用DirectX API替换它们。
编辑 - 其他参考资料:
我还发现这是由Marek Krzeminski撰写的批量渲染过程,这是来自他的视频教程,但在Batch Rendering by Marek at Gamedev