在OpenGL中创建多个不同的对象

时间:2012-12-01 14:22:37

标签: c++ opengl glsl

好吧,我一直在学习使用本教程的openGL:opengl-tutorial.org。 该教程没有解释着色器如何工作。我的意思是,顶点着色器是否在片段着色器之前重新加入?

好的谈论这个问题,我想为练习创建两个对象,一个框(带有纹理的3D Square)和一个金字塔(带纹理的3D三角形),我不知道该怎么做,我知道如何使用C ++ / OpenGl绘制它,但谈论GLSL ....我是否需要创建另一个程序?我怎么能这样做?

(OpenGL 3.3)

1 个答案:

答案 0 :(得分:3)

OpenGL不会像你想象的那样维护“对象”(术语对象用于指代OpenGL使用的“内容”,你可以通过标识符引用。一个顶点缓冲区,一个纹理或着色器都是“对象”的例子。 OpenGL不是scenegraph

您需要为应用程序中的每个对象创建顶点数据(或从文件加载该数据),并通过向缓冲区对象提供该数据来为OpenGL提供该数据。

然后告诉OpenGL从该缓冲区中绘制多个顶点。 OpenGL不关心数据是什么或如何绘制它。它只会完全按照你的要求去做。如果你告诉它“把这个包含顶点坐标的数据块,现在绘制5个三角形”,那么它就会这样做。