如何在具有实体/组件/系统架构的更数据驱动的环境中设置openGL?

所以我一直在为Linux编写游戏引擎,使用OpenGL、SDL2和Lua(目前为止)。我计划可能引入OpenAL进行音频处理,但这不重要。

我一直很难掌握最好的设置方法。也许我不理解它的思想。在我的项目中,我有一个着色器对象,以及着色器变量对象(基本上是自定义变体类)和着色器程序对象。着色器程序包含了高达6个着色器(对于管道的每个部分)。我的着色器对象将着色器加载到gluint中,并具有isCompiled和isLinked布尔变量。其中还包括一组着色器变量对象。当GLSL代码加载时,std :: vector \ * m \ _attributes会被一个新的shaderVariable对象推回 (由名称和类型组成)。如果规范在尚未制作的着色器之间有所不同,应该如何设置呈现?(最终用户将编写的那些)

我还有一个问题是:这些是否包含在顶点规范中的变量?

点赞
用户342932
用户342932

听起来你需要构建自己的ECS(实体组件系统)。 这是一个相当深入的主题。

同时听起来你想在ECS中结合使用面向对象编程(OOP)和基于组件的建模。

首先,绘制一些接口,如IComponent和IEntity,然后构建一些基本类型并从此开始构建。

2017-07-24 20:07:24