glCallList提升了多少性能?

时间:2010-03-07 21:27:37

标签: opengl

我是OpenGL的新手。我在开始了解OpenGL显示列表之前编写了一个程序。到目前为止,使用它们非常困难,因为我的代码中包含许多不是“gl”的行。所以我很好奇我在演出中失去了多少......

3 个答案:

答案 0 :(得分:4)

这取决于静态几何体,它可以提供很多帮助,但显示列表已被弃用,有利于VBO(顶点缓冲区对象)和类似的技术,这些技术允许您将几何数据上传到卡片然后只需重新发出使用该数据的绘制调用。

显示列表(这在OpenGL 1.0中是一个不错的主意)已经证明在所有极端情况下都难以正确实现,并且正在逐步淘汰以获得更直接的方法。

但是,如果您缓存的都是几何数据,那么无论如何,列表都可以。但维多利亚州立大学是未来,所以我建议学习这些。

答案 1 :(得分:1)

通话清单可提升效果。如果您的用户显卡有足够的内存,并支持呼叫列表(大多数):

有几个“性能瓶颈”,其中一个是数据推送到显卡的速度。当您调用OpenGL函数时,它将在CPU或GPU(图形卡的处理器)上进行计算。 GPU针对图形操作进行了优化,但CPU必须将其数据发送到GPU。这需要很多时间。

如果您使用通话清单;如果可能,将数据(过早地)发送到GPU。然后,当您呼叫呼叫列表时,CPU将不必将数据推送到GPU。

如果你使用它们,会有很大的性能提升。

答案 2 :(得分:1)

转角案例: 如果您计划通过GLX远程运行您的应用程序,那么显示列表可能是一个巨大的胜利,因为“推送到卡”涉及昂贵的libgl-> network-> xserver-> libgl旅行。