是什么意思glEnableClientState,并glDisableClientState在OpenGL?到目前为止,我发现这些功能是启用或禁用某些客户端功能.
那么,客户端或服务器到底是什么?我正在PC上运行我的OpenGL程序,所以这是指什么?为什么我们甚至需要禁用某些功能?...更有趣的是关于某种与数组相关的东西?
对我来说,整个画面非常灰暗.
dat*_*olf 13
原始术语源于X11表示法,其中服务器是实际的图形显示系统:
和
glEnableClientState并glDisableClientState设置客户端部分的状态.Vertex Arrays过去位于客户端进程内存中,因此使用顶点数组进行绘制是客户端本地进程.
今天我们有缓冲对象,它将数据放在服务器内存中,使顶点数组的整个客户端术语违反直觉.丢弃客户端状态并通过常用glEnable/ glDisable函数启用/禁用顶点数组是有意义的,就像我们使用帧缓冲对象和纹理一样.
小智 7
如果通过将缓冲区传递给OpenGL(glVertexPointer()等)而不是直接调用(glVertex3f())来绘制图形,则需要告诉OpenGL要使用哪些缓冲区.
因此,不是调用glVertex和glNormal,而是创建缓冲区,绑定它们,并使用glVertexPointer和glNormalPointer将OpenGL指向您的数据.然后调用glDrawElements(或类似)将使用这些缓冲区进行绘图.但是,另一个必需的步骤是告诉OpenGL驱动程序您实际想要使用哪个缓冲区,即glEnableClientState().
这一切都非常手工波浪.您需要阅读顶点缓冲区对象并尝试它们.
| 归档时间: |
|
| 查看次数: |
7497 次 |
| 最近记录: |