游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2564|回复: 5

渲染速度问题:为什么glList比普通模式快?

[复制链接]

8

主题

130

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2006-4-12 17:29:00 | 显示全部楼层 |阅读模式
1. 绘制图形可以用glCallList调用预编译的list加速绘制,但,为什么list会快呢?
2. 普通模式每次绘制都会传递顶点数据给显卡,预编译list难道是预编译时提交顶点数据和绘制指令集给显卡的吗?
3. 如果2肯定,那么也就是说他对应D3D的FVF,即静态顶点缓存模式?
4. 续1和2,也就是说glCallList是告诉显卡执行预编译的指令集?
5. 续4,那么也就是说D3D是每次渲染发送指令序列,而glCallList是发送要执行的指令集编号?
6. 结合以上,SwapBuffers何解?显卡缓存?

谢谢!

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2006-4-12 23:14:00 | 显示全部楼层

Re:渲染速度问题:为什么glList比普通模式快?

2,回答了1
3,d3d不懂- -
4,对
5,同3答
6,opengl渲染输出到一个缓冲,它可能不是显存的主表面(比如双缓冲时)。swapbuffers把这个缓冲和主表面交换以显示。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2006-4-13 10:15:00 | 显示全部楼层

我只知道 OpenGL 的 LIST 为什么比普通的快.

List 就是 已经经过编译的产物. 编译成机器语言(显卡芯片的机器语言).
而普通代码都是 即时转换. 是通过OpenGL的相关 DLL 即时转换的.所以慢.

如果DX也是这样的原理,那么我的答案应该是对的.

8

主题

130

帖子

156

积分

注册会员

Rank: 2

积分
156
 楼主| 发表于 2006-4-13 15:52:00 | 显示全部楼层

Re:snhun

DX的概念和GL有些差别。DX需要先创建顶点数据(可以创建在显存里,通常选择在显存),渲染时,指定顶点流然后进行渲染。
看来GL的list是让显卡预计算了,然后存储算好了的象素结果(我猜测GL的fragmentShader能继续处理)。

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2006-4-13 23:52:00 | 显示全部楼层

Re:渲染速度问题:为什么glList比普通模式快?

因为矩阵,坐标运算预先算好了

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2006-4-18 18:54:00 | 显示全部楼层

Re:渲染速度问题:为什么glList比普通模式快?

"存储算好了的象素结果"岂不是既不能做三维变换又要占许多显存?
貌似不是预计算出"象素结果"的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 05:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表