为什么在opengl 3.1中不推荐使用显示列表? [英] Why were display lists deprecated in opengl 3.1?

查看:164
本文介绍了为什么在opengl 3.1中不推荐使用显示列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是在了解它们,并发现它们不建议使用.我应该继续投资于学习它们吗?我会学到一些对当前模型有用的东西吗?

I'm just learning about them, and find it discouraging that they have been deprecated. Should I keep investing into learning them? Would I learn something useful for the current model?

推荐答案

我认为,尽管我可能错了,但由于大多数高性能图形应用程序(主要是游戏)几乎只使用了顶点缓冲区等(按顺序)来降低性能的下降),因此有压力停止担心诸如显示列表(甚至是陈旧的glVertex调用)之类的繁琐"项目.恕我直言,这为人们学习编写OpenGL代码提供了巨大的障碍,并且(出于我个人的目的)极大地阻碍了编写一些快速,易读且性能合理的代码.

I think, though I may be wrong, that since most high-performance graphics apps (mostly games) pretty much only used vertex buffers and the like (in order to squeeze every drop of performance out of the card), that there was pressure to stop worrying about "frivolous" items such as display lists (and even good-old glVertex calls). IMHO, this provides a huge barrier to people learning to write OpenGL code, and (for my own purposes) is a big impediment to whipping up some quick, legible, and reasonably well performing code.

请注意,这些功能在3.0中已弃用,而在3.1中已被删除(但仍通过ARB扩展提供了兼容性).在OpenGL 3.2中,他们将这些功能移到了兼容性"配置文件中,驱动程序编写者可以选择实现该配置文件.

Note that these features were deprecated in 3.0, and actually removed in 3.1 (but still provided compatibility via an ARB extension). In OpenGL 3.2, they moved these features into a 'compatibility' profile that is optional for driver writers to implement.

那是什么意思?至少,NVidia誓言在可预见的将来继续支持老式兼容模式-那里有大量需要支持的遗留代码.您可以在以下幻灯片放映中找到有关其支持的讨论:

So what does this mean? NVidia, at least, has vowed to continue support for the old-school compatibility mode for the forseeable future - there is a large wealth of legacy code out there that they need to support. You can find the discussion of their support in a slideshow at:

http://www.slideshare.net/Mark_Kilgard/opengl-32-and-more

从幻灯片#32开始.我不知道ATI/AMD在此问题上的立场,但我认为这将是相似的.

starting at about slide #32. I don't know ATI/AMD's stance on this, but I would assume that it would be similar.

因此,尽管从技术上讲,已从OpenGL 3.2标准的必需部分中删除了显示列表,但我认为您可以安全使用它们一段时间.最终,您可能希望学习OpenGL的以缓冲区/着色器为中心的接口,尤其是如果您的最终目标是编写信封式游戏,但是它确实不那么直观(即使没有glRotate,甚至!),因此,我建议您从旧版本的OpenGL 2.x开始.

So, while display lists are technically removed from the required portion of the OpenGL 3.2 standard, I think that you are safe using them for quite a while. Eventually, you may wish to learn the buffer/shader-centric interface to OpenGL, especially if your end-goal is envelope-pushing game writing, but it really is a lot less intuitive (no glRotate, even!), so I would recommend starting with good old OpenGL 2.x.

-哑光

这篇关于为什么在opengl 3.1中不推荐使用显示列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆