我应该针对哪种版本的OpenGL / Direct3D实现最佳兼容性? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该针对哪种版本的OpenGL / Direct3D实现最佳兼容性? [关闭]相关的知识,希望对你有一定的参考价值。

当我们开发网页时,我们可以根据market share广泛地确定支持哪些浏览器。

当我们在.NET中开发时,我们可以基于which Windows versions have it installed广泛地计算出要开发的.NET版本。

但是在开发OpenGL或Direct3D应用程序时,我们如何知道哪些人(我的意思是“人”而不是“硬核游戏玩家”或“使用CAD的公司”:P)正在使用?有关于此类事情的统计数据吗?是否有一些人们用来确定支持哪个版本的常用逻辑?正如大多数公司在网页中支持(可能是until just recently)最低限度的IE6一样,是否支持最低限度的OpenGL 1.5或DirectX 8或其他什么?

我注意到我们可以找到这些API的which specific video cards support which versions,但是我们如何知道人们实际使用的是哪种显卡,是否有任何类型的研究?

注:我对OpenGL更感兴趣,因为我正在使用它,但我提到Direct3D,因为我认为同样的问题适用。

答案

OpenGL 2.1是一个不错的选择。较新的OpenGL 3不提供更多功能。无论如何,你必须检查所有OpenGL扩展的可用性,所以你不要因为坚持使用2.1而失去太多。

对于DirectX:使用DirectX 9c。这是仍在WindowsXP上运行的最新版本。司机稳定且非常成熟。 DirectX 10提供了更多功能,但您将锁定仍运行WindowsXP的用户群。

关于非游戏玩家的兼容性:不支持这些API的图形卡(至少达到可用程度)已经在五年多前就消失了。鉴于PC的典型生命周期,您几乎可以肯定没有人会遇到问题。

如果有任何用户抱怨该软件没有在他10岁的matrox-parhelia卡上运行,他应该购买他能买到的最便宜的显卡。它将运行得更快,并且将花费一小部分软件。

另一答案

3d硬件的市场碎片一直是个大问题。没有简单的答案。

您需要定义您的用途。这是一款以休闲为导向的游戏,您打算向多年未更新电脑的人销售吗?这是一个针对工作站级硬件的业务应用程序吗?你是在寻找一个普通的中间游戏买家吗?这比像你想要卖给那些根本不购买游戏的人的屏幕保护程序这样的游戏更简单吗?你需要支持笔记本电脑吗?上网本?

OpenGL的市场碎片比使用DirectX要差得多。 Khronos集团的官方标准要求都很好。但硬件供应商往往很难更新其驱动程序以符合标准。 GL规范要求许多功能,但只能在商业软件中绝对无法使用的回退软件路径中实现。新的OpenGL 3.1规范试图通过删除对大多数旧的,支持不足的功能的支持来改善这种情况。但是,如果您需要支持超过两年的硬件(或大多数现代英特尔集成GPU),那么GL 3.1的目标太高了。

Steam硬件调查(http://store.steampowered.com/hwsurvey)是游戏购买者中一般硬件使用开始的好地方。 Steam是最受欢迎的数字游戏发行服务,涵盖从休闲到核心的各种游戏。他们会定期重置数字以使其保持最新状态。去年他们报告说他们有2500万活跃用户,所以样本人口非常好。

因此,您可能需要更多地缩小目标客户群。我建议选择一些您认为具有类似客户群的最新竞争应用程序,并将目标硬件基于他们的需求。

另一答案

这取决于DirectX端项目的时间范围。

如果项目要在几个月内完成,那么请遵循Nils的建议。如果时间超过一年,我会重新考虑限制DirectX9,因为XP机器的时间越来越少。 DirectX11是一个好主意,特别是具有retrocompatibility直到功能级别9.0。

以上是关于我应该针对哪种版本的OpenGL / Direct3D实现最佳兼容性? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

显卡中如何处理 Direct3D 和 OpenGL 指令?

调用 InternetOpen 时应该使用哪种 accessType?

OpenGL与Direct3D

OpenGL亮度到颜色映射?

OpenGL的版本号历史和发展

图形世界分裂的两派——理清Direct3D和OpenGL的脉络