NeHe_Lesson 12 显示列表 (Display Lists)
2006-02-24 10:25
225 查看
显示列表是一组OpenGL函数调用,被存储起来供以后执行(有点类似 SQL 中的存储过程),调用显示列表时,将按顺序执行其中的函数。
[/b]
显示列表的使用目的[/b]
1.如果要绘制一个几何体多次,或者需要对一组状态作相同的变更。注意每次执行一个显示列表之前必须相应得设置模型视点举证,以计算物体的正确大小和位置。
2.C/S 模式下的应用程序,显示列表是服务器状态的一部分,它们驻留在服务器中,因此通过将需要重复执行的函数存储在显示列表中可以避免通过网络重复传输这些数据,从而降低开销。
显示列表使用步骤[/b]
1. 生成显示列表索引:
每个显示列表都由一个整数索引表示。GLuint glGenLists( GLsizei range ),它分配range个相邻的,未分配的显示列表索引,返回其中第一个显示列表的索引。并把它们都标记为占用。
2. 定义一个显示列表:
/**参数 list: 索引号
参数 mode: 可以取值为 GL_COMPILE 和 GL_COMPILE_AND_EXECUTE
前者表示只想把接下来的函数存储在显示列表中,而不执
行;后者表示要立即执行,再放入显示列表
*/
/** GL_COMPILE类似于编程。在你写程序的时候,把它装载到编译器里,你每次运行程序都需要重新编译。而如果他已经编译成了.exe文件,那么每次你只需要点击那个.exe文件就可以运行它了,不需要编译。当OpenGL编译过显示列表后,就不需要再每次显示的时候重新编译它了。这就是为什么用显示列表可以加快速度。
*/
void glNewList( GLuint list, GLenum mode );
//插入要执行的函数,这里的函数不能是那些会改变列表的函数
//…
/**标记显示列表的结尾*/
void glEndList( void );
3. 执行显示列表
void glCallList( GLuint list );
如何使纹理具有指定颜色[/b]
glEnable(GL_COLOR_MATERIAL);
开启它后glColor*就会起作用。可以让你的纹理覆上一层指定的颜色。
[/b]
显示列表的使用目的[/b]
1.如果要绘制一个几何体多次,或者需要对一组状态作相同的变更。注意每次执行一个显示列表之前必须相应得设置模型视点举证,以计算物体的正确大小和位置。
2.C/S 模式下的应用程序,显示列表是服务器状态的一部分,它们驻留在服务器中,因此通过将需要重复执行的函数存储在显示列表中可以避免通过网络重复传输这些数据,从而降低开销。
显示列表使用步骤[/b]
1. 生成显示列表索引:
每个显示列表都由一个整数索引表示。GLuint glGenLists( GLsizei range ),它分配range个相邻的,未分配的显示列表索引,返回其中第一个显示列表的索引。并把它们都标记为占用。
2. 定义一个显示列表:
/**参数 list: 索引号
参数 mode: 可以取值为 GL_COMPILE 和 GL_COMPILE_AND_EXECUTE
前者表示只想把接下来的函数存储在显示列表中,而不执
行;后者表示要立即执行,再放入显示列表
*/
/** GL_COMPILE类似于编程。在你写程序的时候,把它装载到编译器里,你每次运行程序都需要重新编译。而如果他已经编译成了.exe文件,那么每次你只需要点击那个.exe文件就可以运行它了,不需要编译。当OpenGL编译过显示列表后,就不需要再每次显示的时候重新编译它了。这就是为什么用显示列表可以加快速度。
*/
void glNewList( GLuint list, GLenum mode );
//插入要执行的函数,这里的函数不能是那些会改变列表的函数
//…
/**标记显示列表的结尾*/
void glEndList( void );
3. 执行显示列表
void glCallList( GLuint list );
如何使纹理具有指定颜色[/b]
glEnable(GL_COLOR_MATERIAL);
开启它后glColor*就会起作用。可以让你的纹理覆上一层指定的颜色。
相关文章推荐
- NeHe教程Qt实现——lesson12
- NeHe OpenGL教程 12 显示列表
- NeHe OpenGL教程 第十二课:显示列表
- Nehe第12课显示列表
- Jeff Molofee(NeHe)的OpenGL教程--显示列表
- NeHe OpenGL第十二课:显示列表
- Shop项目--12. 显示用户订单列表order_list.jsp
- 【Qt OpenGL教程】12:显示列表
- Servlet(12)连接数据库并显示用户列表
- 12-界面控件之listView使用java代码和xml文件不同方式实现列表显示
- Lesson 12 Nehe
- 显示SAP中所有用户列表
- dedecms 列表 用分页标签 判断 当第一页则显示,第二页以上不显示 土办法!
- Nehe OpenGL lesson 8
- Android Dialog 中的列表显示选择
- jQuery mobile 学习08 内容区域的列表显示 data-role="listview"
- as3学习第二课 显示对象和显示列表
- Qt下的OpenGL 编程(7)顶点数组和显示列表
- 显示目录文件列表ls命令
- ajax实现模糊查询完成列表信息显示