OpenGL:显示列表

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

为什么要使用OpenGL显示列表储存几何体:OpenGL显示列表(Display List)是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的,当调用这张显示列表时就依次执行表中所列出的函数语句。它被设计成命令高速缓存,可以提高程序性能。

适合使用显示列表的场合:

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

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

     
  • 光、材质和光照模型
    当用一个比较复杂的光照环境绘制场景时,可以为场景中的每个物体改变材质。但是材质计算较多,因此设置材质可能比较慢。若把材质定义放在显示列表中,则每次改换材质时就不必重新计算了。因为计算结果存储在表中,因此能更快地绘制光照场景。

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

     
  • 多边形的图案填充模式
    即可将定义的图案放在显示列表中
用一个白色圆环的例子来学习最简单的显示列表:

#include<stdio.h>

#include<math.h>
#define GLUT_DISABLE_ATEXIT_HACK
#include<gl/GLUT.H>
#define PI 3.14


GLuint theTorus;//GLuint表示正整型,相当于un
openGL之API学习(一六四)显示列表display list 1什么是显示列表 OpenGL显示列表(Display List)是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的,当调用这张显示列表时就依次执行表中所列出的函数语句。 2显示列表的优势 2.1矩阵操作 大部分矩阵操作需要OpenGL计算逆矩阵,矩阵及其逆矩阵都可以保存在显示列表中。 2.2光栅位图和图像 程序定义的光栅数据不一定是适合硬件处理的理想格式。当编译组织一个显示列表时,OpenGL可能把数据转换成硬件能够接受的数据,这可以有效地提高画位图的速度。 2.3光、材质、光照 阅读详情

相关推荐

【Qt OpenGL教程】12:显示列表

想知道如何加速我们的OpenGL程序么?这次教程中,我将告诉你如何使用OpenGL显示列表,它通过预编译OpenGL命令来加速我们的程序,并可以为我们省去很多重复的代码,听起来是不是很棒呢!

cly116的博客 3932

opengl显示列表使用

使用opengl显示列表,实现3d物体的创建,减少3d渲染,加快程序运行速度。

立体的创建OpenGL显示列表与颜色的应用

立体的创建OpenGL显示列表与颜色的应用

OpenGL-显示列表

opengl 显示列表

weixin_45054115的博客 891

OpenGL基础图形编程 - 显示列表

16.1、显示列表概论  16.1.1 显示列表的优势  OpenGL显示列表的设计能优化程序运行性能,尤其是网络性能。它被设计成命令高速缓存,而不是动态数据库缓存。也就是说,一旦建立了显示列表,就不能修改它。因为若显示列表可以被修改,则显示列表的搜索、内存管理的执行等开销会降低性能。  采用显示列表方式绘图一般要比瞬时方式快,尤其是显示列表方式可以大量地提高网络性能,即当通过网络发出绘图命令时,

popkiler的专栏 1772

OpenGL | 显示列表

OpenGL显示列表

该用户还没想到好的昵称的博客 790

OpenGL系列教程之七:OpenGL显示列表

相关主题:顶点缓冲区对象(VBO) 下载:displayList.zip 实现 例子 显示列表是一组被存储或编译的用来以后执行的OpenGL命令的集合。当一个显示列表被创建以后,所有的顶点数据和像素数据被复制到位于服务器端的显示列表内存中。这个过程只进行一次。当显示列表准备好(被编译完成)后,你可以重复使用它而不需要在每帧中重复地传输这些数据。显示列表是最快的一种绘制静态数

3295

OpenGL学习十二:显示列表

显示列表可以提高性能,因为他可以存储OPENGL函数,供以后使用,如果需要多次重绘同一个几何图形,或者如果一次需要多次调用的用于更改状态的函数,把这些函数存储在显示列表中(将显示列表中的矩阵结果集保存,后续使用不需要重复计算以提高性能) 当通过网络在另外一台远程计算机上运算OPENGL程序时,把绘画命令保存在显示列表中具有特别重要意义,由于显示列表是服务器的一部分,这样可以减少网络...

Star 284

OpenGL学习笔记:显示列表

显示列表OpenGL的一个概念,其实质是一堆OpenGL的指令集。把一系列有关系的绘图指令集合在一起,形成一个显示列表,有以下好处: 1. 提升运行速度。OpenGL显示列表有优化,比如保存中间结果,服务器端保存指令集等。可以提升指令的运行速度,降低开销 2. 便于管理。把一

lcphoenix的专栏 1024

opengl显示列表

在即时模式(Immediate Mode)下绘图,OpenGL函数被直接送进绘图流水线,相应的 图形对象被立即绘制出来。当需要在程序中多次绘制同一个复杂的图形时,这种绘制方 式会耗费大量的资源,从而降低程序的运行效率,为此OpenGL提供了更快速更有效的方 式---显示列表

OpenGL 多级显示列表示例代码

此程序为我做课程设计时OpenGL多级显示列表代码,供初学者参考

OpenGL 显示列表

计算机图形学 实验4 显示列表 OpenGL display list

OpenGL加速渲染:显示列表glGenLists

OpenGL中,可能要用非常多的点、线、面来构成一幅图。若进行实时渲染,无疑对显示效率有非常大的影响。比如要画几百万个三角形,那么很可能旋转一下图片需要响应很久。为了加速渲染,可以将需要绘制的部分放在显示列表glGenLists中。每一个绘制的部分都是一个显示列表成员。然后将该列表进行预编译,编译完后并不显示。当需要显示的时候,直接调用显示列表,由于已经经过了预编译,所以此时会不经编译直接显示,...

超频化石鱼的博客 4248

OpenGL小探:显示列表

OpenGL小探:显示列表 #include #include #include #include #define PI_ 3.14159265358979323846 GLuint theTorus; /* Draw a torus */ static void torus(int numc, int numt) { int i, j, k;

yangchuankai's blog 556

OpenGL: 显示列表绘制六面体

#include #include #include #pragma comment(lib,"glut32.lib") const double TWO_PI = 6.2831853; //初始化窗口大小 GLsizei winWidth = 400, winHeight = 400; GLuint regHex; class screenPt { private: GLint

Augusdi的专栏 3790

opengl显示列表

GLuint  glGenLists(GLuint range); glNewList(GLuint a); glEndList(); glListBase(GLuint base);设置list地址的偏移量.默认为0. glCallList(GLuint list);当调用这些list时,其真实调用的list索引是list+偏移量 glCallLists(GLuint n, GLenu

T_W_S的专栏 890
上一篇: OpenGL:太阳、地球、月球模型模拟动画
下一篇: 游戏分类
yanglize
博客等级 码龄12年 80粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值