我应该瞄准哪种版本的OpenGL / Direct3D以获得最佳兼容性?
当我们开发网页时,我们可以基于市场份额广泛地确定支持哪些浏览器。
当我们在.NET中进行开发时,我们可以基于哪个Windows版本安装哪个.NET版本进行广泛的研究。
但是,开发OpenGL或Direct3D应用程序时,我们怎么知道(“硬核玩家”或“公司使用CAD”我的意思是“人”而不是:P),其中显卡人在使用? 有没有统计这些东西? 人们是否有一些共同的逻辑来确定要支持的版本? 正如大多数公司都支持(也许直到最近才)最低IE6的网页中,有支持最小的,比方说,OpenGL的1.5或DirectX 8的什么一个普遍的共识?
我注意到,我们可以找出哪些特定的视频卡支持这些API的哪些版本,但我们如何知道人们实际使用哪些视频卡,有没有对此进行任何研究?
注意我对OpenGL更感兴趣,因为这就是我使用的,但是我提到Direct3D,因为我认为同样的问题适用。
OpenGL 2.1是一个不错的选择。 较新的OpenGL 3不提供更多的功能。 无论如何,你必须检查所有OpenGL扩展的可用性,所以你不会因为坚持使用2.1而大失所望。
对于DirectX:使用DirectX 9c 。 这是仍在WindowsXP上运行的最新版本。 司机稳定,非常成熟。 DirectX 10提供更多功能,但您将锁定仍运行WindowsXP的用户群。
关于非游戏玩家的兼容性:不支持这些API的图形卡(至少在可用的程度上)已经在五年多以前消失了。 鉴于个人电脑的典型生命周期,你几乎可以肯定没有人会遇到问题。
如果任何用户抱怨软件没有运行在他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将是一个好主意,特别是在功能级别9.0之前的逆向兼容性。
链接地址: http://www.djcxy.com/p/38411.html上一篇: Which version of OpenGL/Direct3D should I target for optimum compatibility?
下一篇: Storing stock quotes data from this object into python panda data frame