位置: 编程技术 - 正文

OpenGL顶点数组(opengl 顶点)

编辑:rootadmin

推荐整理分享OpenGL顶点数组(opengl 顶点),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl 顶点,opengl顶点法向量,opengl顶点法向量,opengl顶点缓冲区 顶点数组对象,opengl顶点缓冲区 顶点数组对象,opengl 顶点,opengl 顶点,OpenGL顶点数组的作用,内容如对您有帮助,希望把文章链接给更多的朋友!

OpenGL中,如果要绘制图元,一般来说会使用:

但是,如果顶点数太多,这种方法需要频繁调用函数,效率太低。这就要用到顶点数组。

1. 启用顶点数组

OpenGL是一种状态机,在用某一功能前,必须先开启这项功能,用完之后,也可以关闭。

启用和关闭顶点数组的代码如下:

其中,GL_VERTEX_ARRAY是数组的类型,共有八种:

GL_VERTEX_ARRAYGL_COLOR_ARRAYGL_SECOND_COLOR_ARRAYGL_INDEX_ARRAYGL_NORMAL_ARRAYGL_FOG_COORDINATE_ARRAYGL_TEXTURE_COORD_ARRAYGL_FLAG_ARRAY2. 指定数组

启用了顶点数组后,接下来要指定:哪一个数组是顶点数组。函数如下:

**void glVertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);**

参数:

size - 每个顶点的坐标数目,必须是2,3,或4。

type - 顶点坐标的数据类型,GL_SHORT, GL_INT, GL_FLOAT 或 GL_DOUBLE

stride - 两个相邻顶点之间的偏移量,单位为字节,如果为0,表面顶点是紧密存储的。

pointer - 数组中第一项的第一个坐标的内存地址。

OpenGL顶点数组(opengl 顶点)

此外,还有 glColorPointer、glIndexPointer等,用于指定别的数组。

使用方法如下:

3. 绘图

有三个函数用于绘图。

void glArrayElement( GLint i);

通过索引数组指定顶点,放在glBegin()和glEnd()之间。例如:

void glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid * indices);

mode - 图元类型,例如 GL_POINTS、GL_LINES

count - 元素个数,索引数组存在indices中

type - 索引数组的数据类型,必须是GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, 或 GL_UNSIGNED_INT

indices - 索引数组

使用方法例如:

void glDrawArrays( GLenum mode, GLint first, GLsizei count);

对每个被启用的数组(顶点数组,颜色数组,索引数组),绘制从first到first+count-1的元素。类型为mode,例如GL_POINTS。

Ubuntu. GLUT的安装 更新源第一步更新源,最好换成国内的一些源,开始因为一些原因,始终安装不成功,换了源以后问题一下就解决了。换源教程,来自百度经验.我用的

OpenGL导入三维模型 最近一直没有写2dx的文章,一篇文章写到一半就扔草稿箱了,虽然卡牌游戏已经可以在手机上玩耍,但是暂时还没有情绪去分析它。。这周为了游戏课

Tutorial 6:Translation Transformation 本文源自:

本文链接地址:https://www.jiuchutong.com/biancheng/369423.html 转载请保留说明!

上一篇:OpenGL 顶点缓存对象(opengl update)

下一篇:Ubuntu14.04 GLUT的安装

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络