在
OpenGL中,显示列表是由一组预先存储起来的留待以后调用的OpenGL函数语句组成,当调用这张显示列表时就依次执行表中所列出的函数语句。显示列表的设计目的在于优化OpenGL程序的运行性能。
在图形图像中 表示一组存储在一起的
OpenGL函数,可以创建后再多次调用,以提高
绘图效率,节省计算机的处理资源。调用一个显示列表时,它所存储的函数就会按照
顺序执行。使用显示列表,可以一次定义
几何图形(或状态更改),并在以后多次执行它们。
显示列表的局限性在于是存储OpenGL
函数调用的一种高速的
缓存,而非动态的
数据仓库,因此显示列表不能够进行动态的修改。例如,创建物体的变形动画或者删除某些定点的图元时,都需要销毁和重新建立相应的显示列表,反而因此降低了
动态模型绘制的性能。并且由于调用显示列表时程序本身也有一些开销,尤其是当一个显示列表太小会导致系统开销超过列表的优越性,所以并不是只要调用显示列表就能优化程序性能。
使用显示列表一般有四个步骤:分配一个未使用的显示列表编号,把
OpenGL函数装入显示列表来创建显示列表,调用显示列表,销毁显示列表。