OpenGL显示列表二(转)

OpenGL显示列表是一种预存储的函数指令集合,用于提高矩阵操作、图像处理、光照计算等的效率。通过glNewList()和glEndList()定义列表,glCallList()执行列表。不可在列表中存储参数传递或返回值的函数。管理列表涉及glGenLists()创建、glIsList()检查和glDeleteLists()删除。多级显示列表允许嵌套,最大深度可达64。
摘要由CSDN通过智能技术生成
(一)定义显示列表。

  前面所举出的例子都是瞬时给出函数命令,OpenGL瞬时执行相应的命令,这种绘图方式叫做立即或瞬时方式(immediate mode)。OpenGL显示列表(Display List)是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的,当调用显示列表时就依次执行表中所列出的函数语句。显示列表可以用在以下场合:

  1)矩阵操作

  大部分矩阵操作需要OpenGL计算逆矩阵,矩阵及其逆矩阵都可以保存在显示列表中。

  2)光栅位图和图像

  程序定义的光栅数据不一定是适合硬件处理的理想格式。当编译组织一个显示列表时,OpenGL可能把数据转换成硬件能够接受的数据,这可以有效地提高画位图的速度。

  3)光、材质和光照模型

  当用一个比较复杂的光照环境绘制场景时,因为材质计算可能比较慢。若把材质定义放在显示列表中,则每次改换材质时就不必重新计算了,因此能更快地绘制光照场景。

  4)纹理

  因为硬件的纹理格式可能与OpenGL格式不一致,若把纹理定义放在显示列表中,则在编译显示列表时就能对格式进行转换,而不是在执行中进行,这样就能大大提高效率。

  5)多边形的图案填充模式,即可将定义的图案放在显示列表中。

  OpenGL提供类似于绘制图元的结构即类似于glBegin()与glEnd()的形式创建显示列表,其相应的函数为:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值