查看: 3280|回复: 1

请问版主:vbo为什么比displaylist要慢

[复制链接]

该用户从未签到

发表于 2008-10-16 09:21:23 | 显示全部楼层 |阅读模式
为什么当绘制一个100m的ive时,使用vbo比displaylist慢,本人的显卡是nvidia quadro nvs 135m
本人使用nodevisitor将每个节点改了一下如下:
for(int i=0;i<(int)geode->getNumDrawables();i++)
{
                                draw=geode->getDrawable(i);
                                draw->setUseVertexBufferObjects(TRUE);
                                draw->setUseDisplayList(FALSE);

}
使用displaylist时,gpu每帧的时间很少,同时draw的时间很少,而使用vbo时,两个的时间都增加了很多
以前绘制过4万个箱子同样使用displaylist要块很多,但是那个箱子确实需要动态处理,所以用displaylist是可以理解的,但是这次确是静态的物体怎么也会同样呢

该用户从未签到

发表于 2008-10-16 09:45:12 | 显示全部楼层
setUseVertexBufferObjects之后,dirtyBound一下试一试。还有对顶点数组coordArray,执行coordArray-〉dirty()

如果没有启动和更新VBO的话,关闭显示列表之后默认要使用glBegin/glEnd直接绘制,那样会死人的

不过更新VBO之后也不一定快多少,不能绝对说VBO在任何时候都优于DisplayList(但应当是绝大多数时候,而且尤其是在绘制动态物体时,VBO要强大得多),也许您的情形是个特例也说不定~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表