OpenGL编程指南--显示列表
2008-10-30 14:50
309 查看
1. 什么时候使用显示列表:
多次重绘同一图形或需要多次调用用于更改状态的函数。由于显示列表本身也有一定的开销,所以当重绘图形太小时,使用显示列表不一定能提高效率
2. 哪些时候用显示列表:
a) 矩阵操作;
b) 对位图和图像进行光栅化;
c) 光晕、材质属性和光照模型;
d) 多边形电话模式
e) 我们常把纹理数据存在纹理对象而不使用显示列表是为了优化纹理图像
3. 它有哪些缺点:
a) 显示列表本身有一定的开销;
b) 显示列表一经定义不能修改;
c) 显示列表不能读取;
d) 在显示列表中,调用变换函数能对后面的绘图产生影响;
e) 当把表达式放在显示列表中时,实际上只有表达式的值存储在显示列表中,后期如果改变了表达式变量的值,这种变化不能体现在显示列表中
4. 如何定义一个显示列表:
通过glNewList(listName,mode) glEndList()界定一个显示列表,其中listName是一个整型索引值,由glGenList()函数产生,也可以通过glIsList() 判断某个指定的索引是不是被使用过的。mode 可以选用的值是GL_COMPILE和GL_COMPILE_AND_EXECUTE,GL_COMPILE表示将这些函数放在显示列表中,但不立即执行显示列表中的函数,GL_COMPILE_AND_EXECUTE表示将这些函数放在显示列表中并立即执行。
5. 如何调用一个显示列表
我们通过调用glCallList()来调用一个定义好的显示列表。显示列表支持嵌套调用但层次有限制,这个限制最少是64,这个限制取决于OpengGL的实现。
6. 为了在显示列表中进行状态变换又不改变原来的状态,我们可以调用glPushAttrib()和glPushMatrix()来保存原来的状态,并使用glPopAttrib()和glPopMatrix()来还原原来的状态。
多次重绘同一图形或需要多次调用用于更改状态的函数。由于显示列表本身也有一定的开销,所以当重绘图形太小时,使用显示列表不一定能提高效率
2. 哪些时候用显示列表:
a) 矩阵操作;
b) 对位图和图像进行光栅化;
c) 光晕、材质属性和光照模型;
d) 多边形电话模式
e) 我们常把纹理数据存在纹理对象而不使用显示列表是为了优化纹理图像
3. 它有哪些缺点:
a) 显示列表本身有一定的开销;
b) 显示列表一经定义不能修改;
c) 显示列表不能读取;
d) 在显示列表中,调用变换函数能对后面的绘图产生影响;
e) 当把表达式放在显示列表中时,实际上只有表达式的值存储在显示列表中,后期如果改变了表达式变量的值,这种变化不能体现在显示列表中
4. 如何定义一个显示列表:
通过glNewList(listName,mode) glEndList()界定一个显示列表,其中listName是一个整型索引值,由glGenList()函数产生,也可以通过glIsList() 判断某个指定的索引是不是被使用过的。mode 可以选用的值是GL_COMPILE和GL_COMPILE_AND_EXECUTE,GL_COMPILE表示将这些函数放在显示列表中,但不立即执行显示列表中的函数,GL_COMPILE_AND_EXECUTE表示将这些函数放在显示列表中并立即执行。
5. 如何调用一个显示列表
我们通过调用glCallList()来调用一个定义好的显示列表。显示列表支持嵌套调用但层次有限制,这个限制最少是64,这个限制取决于OpengGL的实现。
6. 为了在显示列表中进行状态变换又不改变原来的状态,我们可以调用glPushAttrib()和glPushMatrix()来保存原来的状态,并使用glPopAttrib()和glPopMatrix()来还原原来的状态。
相关文章推荐
- 我的opengl编程学习(二)(混合、深度测试、雾化、多边形平移、显示列表)
- Qt下的OpenGL 编程(7)顶点数组和显示列表
- OpenGL基础图形编程 - 显示列表
- Win32 OpenGL编程(14) 显示列表
- Qt下的OpenGL 编程(7)顶点数组和显示列表
- OpenGL基础图形编程 - 显示列表
- Qt下的OpenGL 编程(7)顶点数组和显示列表
- Opengl 编程指南 第八章 leeds.bin 图片不能显示的问题
- OpenGL的显示列表
- Jeff Molofee(NeHe)的OpenGL教程--显示列表
- OpenGL显示列表(转)
- Quartz 2D编程指南(7) - PDF文档的创建、显示及转换
- OpenGL编程逐步深入(三)在窗口中显示一个三角形
- OpenGL学习笔记(8)显示列表
- OpenGL学习十二:显示列表
- 熟悉OpenGL的显示列表 计算机图形…
- OpenGL编程指南-环境搭建,渲染三角形
- Quartz 2D编程指南之十三:PDF文档的创建、显示及转换
- OpenGL编程指南3:GLUT:OpenGL使用工具库
- OpenGL编程指南---多边形正反面 剔除