2014-12-03 69 views
0

我目前正在研究一个项目,我试图重新创建this logo,但在静态事物之上对齿轮进行动画处理。现在,这是我到目前为止创建...何时使用OpenGL显示列表?

enter image description here

到目前为止,这是好看,今天我移动到齿轮。在对齿轮进行一些研究时,我遇到了openGL中的显示列表,并对其进行了一些了解。看起来它们对性能有好处,因为它们减少了重复绘制内容的需要,比如当我在相机周围移动相机和/或移动齿轮时。到目前为止,我所拥有的只是一大堆构成标志背景和字母的多边形。弯曲的字母由大量三角形多边形组成。

所以我的主要问题是,在我开始创建齿轮之前,我是否应该花时间为已有的内容创建显示列表?或者它没有必要?我将我的齿轮从使用显示列表的着名gears.c中取消,所以我很可能会在那里使用它们。

+4

**从来没有**他们已弃用为维也纳组织 – 2014-12-03 17:41:23

回答

4

这取决于你现在如何渲染对象。

如果您使用即时模式(glBegin/glVertex/glEnd),那么包装显示列表将有所帮助。但是立即模式渲染和显示列表都是从OpenGL 3开始折旧的,并且切换到顶点缓冲对象(VBOs)可能会提高性能(以重写一些代码为代价)。

如果您已经在使用VBOs,那么将这些调用包装在显示列表中可能没有任何区别。

https://open.gl/是现代OpenGL的一个很好的教程。

+0

我正在教的类是与旧的OpenGL的东西教,因为我猜它更容易掌握。无论如何,我们在即时模式中使用了很多东西,所以这就是我为创建上述内容所做的。 – Scalahansolo 2014-12-03 18:05:20

+3

@SeanCallahan:我发现即时模式使事情变得复杂,并使OpenGL的内部工作更难以为学生所理解。恕我直言,每个仍然在课堂上覆盖即时模式的老师应该以激进的方式调整他的态度。 – datenwolf 2014-12-03 18:08:01