OpenGL 4.0 API顶点数组快速参考

需积分: 9 6 下载量 175 浏览量 更新于2024-11-10 收藏 1005KB PDF 举报
"OpenGL 4.00 API 快速参考卡片" OpenGL 是一个用于渲染2D、3D图形的跨语言、跨平台的应用程序编程接口(API)。它允许程序员直接控制显卡来生成复杂的视觉效果。这个快速参考卡片聚焦于OpenGL 4.0版本,该版本发布于2010年,由Khronos Group维护。 在OpenGL中,顶点数组是存储顶点数据的主要方式。顶点数据可以被存储在客户端地址空间或服务器地址空间。以下是一些与顶点数组相关的函数: 1. `void VertexPointer(int size, enum type, GLsizei stride, void* pointer);` 这个函数用来设置顶点数据。`size`参数指定每个顶点的组件数量,`type`定义了组件的数据类型(如SHORT, INT, FLOAT等),`stride`是相邻顶点数据之间的字节数,而`pointer`则是顶点数据的起始地址。 2. `void NormalPointer(enum type, GLsizei stride, void* pointer);` 类似于`VertexPointer`,但用于设置法线向量。支持的数据类型包括那些在`VertexPointer`中列出的以及BYTE。 3. `void ColorPointer(int size, enum type, GLsizei stride, void* pointer);` 设置颜色数据,支持的数据类型与`VertexPointer`相同,另外还包含BYTE, UBYTE, USHORT, 和 UINT。 4. `void SecondaryColorPointer(int size, enum type, GLsizei stride, void* pointer);` 设置辅助颜色,数据类型与`ColorPointer`相同。 5. `void IndexPointer(enum type, GLsizei stride, void* pointer);` 用于索引颜色,支持的数据类型有UBYTE, SHORT, INT, FLOAT, 和 DOUBLE。 6. `void EdgeFlagPointer(GLsizei stride, void* pointer);` 设置边缘标志,不涉及数据类型,仅指定位移。 7. `void FogCoordPointer(enum type, GLsizei stride, void* pointer);` 设置雾坐标,支持的数据类型包括FLOAT, HALF_FLOAT, 和 DOUBLE。 8. `void TexCoordPointer(int size, enum type, GLsizei stride, void* pointer);` 用于纹理坐标,数据类型与`VertexPointer`相同。 9. `void VertexAttribPointer(uint index, int size, enum type, boolean normalize, GLsizei stride, void* pointer);` 在OpenGL 4.0中,这是设置顶点属性指针的标准方法,`index`是顶点属性数组的索引,`normalize`参数决定是否将整数值归一化。 这些函数使得程序员能够灵活地组织和传递图形数据,实现高效的图形渲染。OpenGL 4.0还包括其他高级特性,如着色器语言(GLSL)、纹理、缓冲对象、深度测试、多重采样抗锯齿、矩阵操作等,这些都是现代图形编程的重要组成部分。理解并熟练使用这些函数和特性,对于创建复杂的3D场景和交互式应用至关重要。