OpenGL API glDrawElements
glDrawElements是一个OPENGL的图元绘制函数,从数组中获得数据渲染图元。
函数原型为:
GLenum type, const GLvoid *indices);
其中:
mode指定绘制图元的类型,它应该是下列值之一,GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON.
count为绘制图元的数量。
type为索引值的类型,只能是下列值之一:GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT。
indices:指向索引存贮位置的指针。
glDrawElements函数能够通过较少的函数调用绘制多个几何图元,而不是通过OPENGL函数调用来传递每一个顶点,法线,颜色信息。你可以事先准备一系列分离的顶点、法线、颜色数组,并且调用一次glDrawElements把这些数组定义成一个图元序列。当调用glDrawElements函数的时候,它将通过索引使用count个成序列的元素来创建一系列的几何图元。mode指定待创建的图元类型和数组元素如何如来创建这些图元。但是如果GL_VERTEX_ARRAY 没有被激活的话,不能生成任何图元。被glDrawElements修改的顶点属性在glDrawElements调用返回后的值具有不确定性,例如,GL_COLOR_ARRAY被激活后,当glDrawElements执行完成时,当前的颜色值是没有指定的。没有被修改的属性值保持不变。
可以在显示列表中包含glDrawElements,当glDrawElements被包含进显示列表时,相应的顶点、法线、颜色数组数据也得进入显示列表的,因为那些数组指针是ClientSideState的变量,在显示列表创建的时候而不是在显示列表执行的时候,这些数组指针的值影响显示列表。glDrawElements只能用在OPENGL1.1或者更高的版本。
OpenGL快速渲染函数glDrawElements使用说明
GLenum mode,
GLsizei count,
GLenum type,
const GLvoid *indices
);
Parameters
- mode
- The kind of primitives to render. It can assume one of the following symbolic values: GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON.
- count
- The number of elements to be rendered.
- type
- The type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
- indices
- A pointer to the location where the indices are stored.
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, (float*)m_vDataCoord[0]);
glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, (float*)m_vDataNormal[0]);
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(3, GL_FLOAT, 0, (float*)m_vDataColor[0]);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, (float*)m_vDataUv[0]);
OpenGL API glDrawElements相关推荐
- OpenGL API简介
转自http://blog.csdn.net/menguio/article/details/6112733 OpenGL API 简介 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数 ...
- openGL API glVertexAttribPointer详解
openGL API glVertexAttribPointer详解 文章目录 openGL API glVertexAttribPointer详解 一.官方文档 二.翻译 例子 运行结果 代码下载 ...
- 利用现代OpenGL API大幅度减少由于执行驱动导致CPU的开销
link:http://www.wtoutiao.com/p/1e5gLML.html Imagination Tech · 2016-01-02 11:15 作者:octday 影响OpenGL绘制 ...
- OpenGL API - 笔记汇总
这里只会记录一些使用到的API汇总. OpenGL 红宝书第9版的我也买了一本,但觉得这书买得不值. 主要我们要查找API什么的,没有电子版直接输入API名称定为的快. 如果你用书去翻的话,只能慢慢的 ...
- openGL API glUniformMatrix4fv详解
openGL API glUniformMatrix4fv详解 文章目录 openGL API glUniformMatrix4fv详解 官网 翻译 1.函数原型 2.参数列表: 3.描述: 4.描述 ...
- openGL API glProgramUniform详解
openGL API glProgramUniform详解 前言 一.官方文档 二.翻译 例子 运行结果 代码下载 前言 openGL API 之glProgramUniform详解 一.官方文档 g ...
- OpenGL API - glViewport
文章目录 名称 原型 参数 描述 错误 https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glViewport.xhtml OpenG ...
- openGL API 之glProgramUniform4fv()
openGL系列文章目录 文章目录 openGL系列文章目录 函数官网说明 翻译 例子 运行效果 函数官网说明 官方文档 Name glProgramUniform - Specify the val ...
- openGL API glGetShaderInfoLog函数详解
glGetShaderInfoLog详解 官方文档 翻译 例子 代码分析 glGetShaderInfoLog输出错误 工程下载 官方文档 官网文档 Name glGetShaderInfoLog - ...
最新文章
- JSONP 跨域的原理
- 优秀!22岁读博士,26岁当教授,因为太优秀反而没人敢追?
- java 基础知识总结
- MVC+EF三层+抽象工厂
- 全国汽车牌照号详解细表(各省市区)
- origin如何绘制双y轴曲线_Origin用矩阵绘制多层曲面映射图
- MessageBox 弹框
- python xgboost实战_史上最详细的XGBoost实战
- SQL的汇总统计SELECT语句
- 计算机网络学习笔记:第二章
- 修改联通服务器密码,联通的服务器咋设置密码
- Sql server 2008 Express 下载
- 电脑计算机无法找到脚本文件夹,电脑弹出无法找到脚本文件怎么办
- 2021年10月国产数据库大事记-墨天轮
- 这一刻,听见华为FTTR的星光四重奏
- SQL查询,子查询作为结果字段
- linux 导出dump文件
- yolo的map计算详解
- MacBook Pro连接移动硬盘未找到怎么办
- 浏览器事件之鼠标事件
热门文章
- 谁会留下?(求一圈中留下的最后一个人)
- Odoo 16 企业版手册 - 销售管理之产品配置
- mysql为什么不使用存储过程_题外话,为什么不用数据库的存储过程
- Git教程之Github,狐妖小红娘向,超易理解(六)——(Part3)邀请涂山苏苏加入涂山集团
- 跟着我一起背NLP算法八股文_bert篇
- 基于华为云的人脸识别实验
- linux下刻录光盘读取不了_Linux下如何把镜像文件刻录到DVD光盘里
- Linux 环境下的 for循环嵌套学习
- JS循环-for循环嵌套
- 广西银行学校计算机等级考试,2017年3月广西计算机等级考试报名费用