有多少用户可以运行使用 OpenGL 3.x 的软件?
我可以期望用户能够运行使用 OpenGL 3.x 的软件吗?
拥有开源图形驱动程序的 Linux 用户可以运行 OpenGL 3.x 吗?我知道Mesa3D 7.8仅支持OpenGL 2.1。
我还知道 OS X Snow Leopard 支持部分但不是全部 OpenGL 3.0 功能。不知道Leopard的情况如何。
我不知道XP、Vista和Windows 7上的情况。
我想开始学习OpenGL,我的兴趣更多地在于科学和工程应用而不是游戏。我知道我将阅读使用 OpenGL 1.x 的代码,但我想使用我期望用户系统支持的最新规范来编写代码。我想知道我应该开始学习2.1还是3.3。我正在考虑要么通过《OpenGL Superbible》第 4 版来学习 2.1,要么通过 7 月 30 日发布的第 5 版来学习 3.3。 (我拥有物理学学士学位,所以我的数学背景非常好。)
编辑:我发现 此相关问题,其中包含与我的问题相关的答案。
Can I expect users to be able to run software that uses OpenGL 3.x?
Can Linux users who have open-source graphics drviers run OpenGL 3.x? I know that Mesa3D 7.8 only supports OpenGL 2.1.
I also know that OS X Snow Leopard supports some but not all OpenGL 3.0 features. I don't know the situation on Leopard.
I don't know the situation on XP, Vista, and Windows 7.
I'd like to start learning OpenGL, and my interest lies more in scientific and engineering applications than games. I know I'll be reading code that uses OpenGL 1.x, but I'd like to write code using the newest specification I can expect user's systems to support. I'm wondering whether I should start learning 2.1 or 3.3. I was thinking of getting either the 4th edition of the OpenGL Superbible to learn 2.1 or the 5th edition which is coming out July 30 to learn 3.3. (I have a bachelor's in physics, so my math background is pretty good.)
Edit: I found this related question with answers that are relevant to my question.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
正如 Martin Beckett 已经指出的那样,就对 OpenGL 3.x 的支持而言,情况确实相当糟糕。许多广泛用于笔记本电脑的“现代”图形芯片组(是的,英特尔,我正在看你)甚至不完全支持 OpenGL 2.x;有些甚至缺乏像多重采样这样古老的功能。
让您的软件在尽可能多的系统上运行的唯一方法是使用诸如 GLEW 之类的东西来决定哪个在运行时使用的功能(即不需要条件编译)。
就学习 OpenGL 而言,2.1 绝对是一个不错的选择,因为它使您能够理解使用固定功能管道的旧代码和依赖着色器的更现代的代码。之后,掌握最重要的 3.x 功能(例如帧缓冲区对象、顶点数组对象)将相当容易。
As Martin Beckett already pointed out, the situation is really rather bad as far as support for OpenGL 3.x is concerned. Many "modern" graphic chipsets widely used in notebooks (yes, Intel, I'm looking at you) do not even fully support OpenGL 2.x; some even lack features as old as multisampling.
The only way to make your software run on as many systems as possible is to use things like GLEW to decide which features to use at runtime (i.e. no need for conditional compiling).
As far as learning OpenGL is concerned, 2.1 is definitely a good choice, because it enables you to understand both older code using the fixed-function pipeline and more modern code relying on shaders. Afterwards, getting to grips with the most important 3.x features (e.g. frame buffer objects, vertex array objects) will be rather easy.
我可以很高兴地通知您,开源驱动程序现在正式完全支持 OpenGL 3.0,并且英特尔将在 Mesa 的下一个版本中支持 OpenGL 3.1,现已重命名为 Mesa 9.0。他们从 Mesa 8.0 开始添加了对 OpenGL3.0 的官方支持。
Intel OpenGL 对 Windows 的支持目前为 4.0,因此对你来说不应该是问题。
关于 AMD 和 NVidia 支持,Windows 和 GNU/Linux 上的两种闭源驱动程序均提供完整的 OpenGL4.3 支持。关于开源驱动程序,Radeon 将在 Mesa 9.0 中正式支持 OpenGL3.0,并结合 3.6.0 内核版本。
值得一提的是,驱动程序支持 OpenGL3.2/3.3/4.0/4.1/4.2/4.3 的子集,但在实现所有功能之前,无法更改“支持的版本”。 请参阅官方文档以获取更多详细信息。
这些令人兴奋OpenGL时代!
I can happily inform you that the open source drivers now officially fully support OpenGL 3.0, and Intel will be supporting OpenGL 3.1 as of the next release of Mesa, now renamed to Mesa 9.0. They added official support for OpenGL3.0 as of Mesa 8.0.
The Intel OpenGL support for Windows is currently at 4.0, so that shouldn't be a problem for you.
Regarding AMD and NVidia support, there is full OpenGL4.3 support for both closed source drivers, on both Windows and GNU/Linux. Regarding Open Source drivers, Radeon will officially be bumped to OpenGL3.0 support as of Mesa 9.0, combined with the 3.6.0 kernel release.
It is probably worth mentioning that the drivers supports subsets of OpenGL3.2/3.3/4.0/4.1/4.2/4.3, but the "supported version" can't be bumped until ALL features are implemented. Please see the official document for more detailed information.
These are exciting times for OpenGL!
Intel GMA 950 的 Windows XP 驱动程序仅支持 OpenGL 1.4,无
GL_EXT_framebuffer_object
。奇怪的是,在相同的硬件(Mac mini)上,Linux 和 OSX 都支持GL_EXT_framebuffer_object
。The Windows XP drivers for Intel's GMA 950 only support OpenGL 1.4, sans
GL_EXT_framebuffer_object
. Oddly enough on the same exact hardware (a Mac mini) both Linux and OSX manage to supportGL_EXT_framebuffer_object
.不好 - 大多数卡声称支持 openGl 2.0 或 2.1,但除非它们是 Nvidia,否则不要指望 1.1 以外的任何功能都能工作
IIRC windows vista/7 在软件中支持 opengl 1.1 或带有 directX 包装器的 1.4。显卡驱动程序是免费的,可以支持任何它想要的东西,但除了 Nvidia 之外,质量很差。
Bad - most cards claim to support openGl 2.0 or 2.1 but unless they are Nvidia don't expect any features beyond 1.1 to work
IIRC windows vista/7 supports opengl 1.1 in software or 1.4 with a directX wrapper. The graphics driver is free to support whatever it wants but except for Nvidia the quality is poor.
只要您只做科学和工程应用程序,我建议您使用 Modern OpenGL。通常,如果工程师需要的话,他可以买得起带有漂亮显卡的现代计算机。对于科学来说,应用程序通常只需要在一台计算机上运行,因此与旧计算机的兼容性不应该是您最关心的问题,但与新硬件向前兼容永远不会是一个错误的决定。
编写游戏是非常不同的。最大化受众非常重要,这样您才能销售最大数量的副本。需要太多资源会大大减少目标受众。
As long as you do only Scientific and Engineering applications, I would suggest you to use Modern OpenGL. Normally an Engineer can afford to buy a Modern Computer with a nice Graphics Card, if he needs it. For Science the application does often only need to run on one Computer, so compatibility with old computers shouldn't be your biggest concern, but being forward compatible with new hardware is never a wrong decision.
Writing a game is very different. Here is it very important to maximize the audience so that you can sell the maximum amount of copies. Requireing too much resources would reduce the target audience very much.