计算机图形学(二)输出图元_18_显示列表_1_创建和命名OpenGL显示表
来源:互联网 发布:java反编译 编辑:程序博客网 时间:2024/05/20 22:01
OpenGL显示列表
把对象描述成一个命名的语句序列(或任何其他的命令集)并存储起来既方便又高效。在OpenGL中使用称为显示表(display list)的结构可以做到这一点。一旦建立了显示表,就可以用不同的显示操作来多次引用该表。在网格中,描述图形的显示表存放在服务器中,以避免每次显示场景时都要传送表中的命令。我们可以为以后的执行来建立并存储显示表,或指定表中的命令立即执行。显示表对层次式建模特别有用,因为一个复杂的对象可以用一组简单的对象来描述。创建和命名OpenGL显示表
使用glNewList/glEndList函数对包围一组OpenGL命令就可形成显示表。例如:
glNewList (listID, listMode);...glEndList ();该结构用赋予参数listID的正整数作为表名来形成一个显示表。参数listMode可赋以OpenGL符号常量GL_COMPILE或GL_COMPILE_AND_EXECUTE之一。如果希望为以后执行而存储该表,则使用GL_COMPILE。否则,放人表中的命令立即执行,但仍然可以在以后再执行它。
显示表创建后,立即对包含如坐标位置和颜色分量等参数的表示进行赋值计算,从而使表中仅存储参数的值。对这些参数的任何后继修改都不起作用。因为不能修改显示表的值,所以在显示表中不能包含如顶点表指针等OpenGL命令。
我们可以创建任意多的显示表并通过调用一个标识来执行特定的显示表。一个显示表还可以嵌套在另一个显示表内。但如果一个显示表被赋予一个已经使用的标识,则它取代原来的显示表内容。因此,为了避免因故重用标识而造成显示表的丢失,可以让OpenGL生成一个标识:
listID = glGenLists (1);该语句将一个未使用的正整数标识赋给变量listID。如果将g1GenLists中的变量由1改成另外一个正整数,则得到一个未使用的显示表标识段。例如,假如引用g1GenLists (6),则保留6个连续正整数并将其中第一个赋给变量listID。如果有错或系统不能产生所要数量的连续整数,则返回0。因此,在使用从g1GenLists子程序获得的标识之前要先检查它是否为0。
尽管使用g1GenList可生成未使用的标识,我们还是可以单独向系统查询指定整数值是否已用做表名。实现该功能的函数是
glIsList (listID);如果返回值GL_TRUE,则listID中的值已经用做某显示表的名字。如果该整数尚未被使用,gtIsList函数则返回值GL_FALSE。
0 0
- 计算机图形学(二)输出图元_18_显示列表_1_创建和命名OpenGL显示表
- 计算机图形学(二)输出图元_18_显示列表_2_执行OpenGL显示表
- 计算机图形学(二)输出图元_18_显示列表_3_删除 OpenGL 显示表
- 计算机图形学(二)输出图元_10_多边形填充区_1_多边形分类和识别
- 计算机图形学(二)输出图元_3_画线算法_1_直线方程
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_1_圆生成算法
- 计算机图形学(二)输出图元_14_OpenGL像素阵列函数_1_位图函数
- 计算机图形学(二)输出图元_19_显示窗口重定形函数
- 计算机图形学(二)输出图元
- 计算机图形学09一一OpenGL 显示列表
- 计算机图形学(二)输出图元_2_ OpenGL画线函数
- 计算机图形学(二)输出图元_9_填充区图元
- 计算机图形学(二)输出图元_12_OpenGL顶点数组
- 计算机图形学(二)输出图元_16_字符函数
- 计算机图形学(二)输出图元_17_图形分割
- 计算机图形学(二)输出图元_8_像素编址和对象的几何要素
- 计算机图形学(二)输出图元_10_多边形填充区_4_多边形表
- 计算机图形学(三)_图元的属性_4_线的属性_1_线宽
- 数据类型有两层意思
- iOS开发Textfield输入纯数字
- springmvc中下载的两种方式,以及向页面传递流数据
- SVM入门(四)线性分类器的求解——问题的描述Part1
- Middle-题目101:332. Reconstruct Itinerary
- 计算机图形学(二)输出图元_18_显示列表_1_创建和命名OpenGL显示表
- 图像的膨胀与腐蚀、细化
- Middle-题目102:150. Evaluate Reverse Polish Notation
- 控制多行文本
- CSS3实现立体菜单
- VC中,使用ODBC 驱动连接Mysql
- Android 通过代码发送点击事件
- c++中的set_new_handler和new_handler
- Middle-题目103:221. Maximal Square