OpenGL gl * Pointer函数做了什么

时间:2013-03-31 17:34:38

标签: c++ function opengl

我到处寻找gl * Pointer函数的确切功能,即glColorPointerglNormalPointerglTexCoordPointerglVertexPointer。我发现的任何内容都不足以描述他们操纵的内容 - 我发现的所有内容都描述了他们如何操纵,这无济于事。

基本上,如果OpenGL是一个创建和操作对象的接口,并且每个对象都有多个函数来操作它,那么只需要一个函数引用就足够了。必须有对象的描述。我一直无法找到。

有人可以准确描述它们的用途吗?

编辑:

嘿,不要带我去买一个完整的N00B ;-)对不起我不清楚 - 当我说对象时,我的意思是抽象的 - 非常抽象。实际上,我将状态和方法分类为对象 - 因此gl *指针函数设置 glDraw *函数使用的状态。我只是很好奇状态是什么。

编辑:

Here's the OpenGL function reference我一直在使用。

1 个答案:

答案 0 :(得分:1)

  

OpenGL是一个用于创建和操作对象的界面

您认为什么样的物体?状态抽象对象或几何对象如模型?如果你想到后面的,即场景中的对象,那么你会感到惊讶:OpenGL不会处理那些。

OpenGL是一个本地状态绘图API。您指向一些数据缓冲区并批处理一些绘图命令,OpenGL将根据指向的数据执行绘图操作。

  

我发现的任何内容都不足以描述他们操纵的内容 - 我发现的所有内容都描述了他们如何操纵它,

gl…Pointer函数根本不操纵任何东西。当调用glDraw…函数时,它们只告诉OpenGL从哪里获取数据。 glDraw…触发绘图(应从名称中清除),绘制的内容由先前使用glPointer…设置的缓冲区域中的数据确定。

没有网格,没有高阶几何,没有。所有OpenGL处理​​的都是点,线和三角形,它从数据缓冲区一个接一个地绘制规范,就在它绘制时。在OpenGL确实绘制了原语后,它不再关心它。