位置: 编程技术 - 正文

为什么你应该使用OpenGL而不是DirectX?(为什么你应该使用手机)

编辑:rootadmin
&#;&#; 这是一篇很意思的博文,原文链接为: we choose a closed source API when the open source is equally good or better?

推荐整理分享为什么你应该使用OpenGL而不是DirectX?(为什么你应该使用手机),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:为什么你应该使用英语,为什么你应该使用英语,你认为我们为什么要选择你,为什么你应该使用手机,为什么你应该使用什么标点符号,为什么你应该使用手机,为什么你应该使用什么标点符号,为什么你应该使用什么标点符号,内容如对您有帮助,希望把文章链接给更多的朋友!

当我们遇到其他游戏程序员并谈论我们使用OpenGL开发Overgrowth时总是会遇到怀疑的&#;神。为什么要用OpenGL? DirectX才是未来。当我们使用OpenGL去告诉显卡如何工作时,房间的温度下降了度(啥意思?我一直以为A卡和N卡的区别,没想到作者认为是API的问题?Holy。。。)。

OpenGL 是什么?

在年,Silicon公司开发售卖使用称为Iris GL的API的高性能图形显示终端。随后的几年,Iris GL变得臃肿和难以维护,直到silicon决定彻底走向新的一步:完全的重构Iris GL并开源。他们的竞争者可以使用这种新的开放图形库(OpenGL)但是作为回报,他们必须帮助维护更新该库。

如今,OpenGL 由Khronos Group管理。一个由很多公司参与组成的非营利组织,重点是维护高质量多媒体API。在底层,由 OpenGL Architecture Review Board (ARB)来管理。各种游戏平台都支持OpenGL,包括:Mac,Windows,Linux,PS3,Wii,IPhone,PSP和DS,除了XBox,下面我们就要介绍它:

DirectX 是什么?

自从MS-DOS时代,微软就明白游戏是一个用户选择操作系统的重要依据。基于这个原因,在年,微软创建了一套专用库以鼓励大家开发winodw平台独占的游戏。这些库包括Direct3D,DirectInput和DirectSound,整个集合就是大家知晓的DirectX。当微软年进军游戏市场时,XBOX意图统治次世代游戏市场。

看看现在的状况,微软的战略无疑是成功的。大多数的PC游戏都是用DirectX,大多都运行在windows或者Xbox上。但有些例外,它们无法再竞争对手的平台上,比如Playstation, Mac OS和Wii。于是,它给我们带来一个新的问题:

为什么大家都是用 DirectX?

使用DirectX是因为API的选择是基于游戏开发的积极反馈,这一切都发生在年:

如果一个API越流行,那就有越多人用,然后它就会更流行,如此循环。。。这种网络效应带来的结果就是:更流行的API获得更好的硬件厂商支持,图形程序员随后更意于选择他们已经熟知的API。

DirectX的胜出得益于微软的两次十分尖锐的战役,围绕XBox和windows vista,也包括着关于OpenGL这种开源项目都面临着的FUD(恐惧,不确定,怀疑),以及DirectX夸大宣传的优势。从此,这种网络效应将会一步步增强直到OpenGL从地球消失。(作者好悲观。。。)

1. 网络效应与恶性循环

Win平台上,DirectX的图形驱动显然比OpenGL的驱动得到更好的维护。这是由于厂商支持引起的恶性循环。游戏开发者选择是用OpenGL还是DirectX由很多因素决定,显卡厂商得到的OpenGL驱动BUG比较少,因为用DirectX的比较多,所以不能很好的支持OpenGL的驱动。

简单来讲,越多程序员懂得DirectX甚于OpenGL,那么更多游戏使用前者开发。这会引起又一个恶性循环,更多地项目使用DX开发,更多地程序员需要学习如何使用它。。。。

2. 关于 OpenGL的FUD效应 和 Vista

微软在vista发布时对OpenGL使用了FUD战术。在年,微软推出了前面介绍维护底层的OARB组织--预示着微软不再会对OPGL的未来感兴趣。在年,微软在SIGGRAPH和WinHEC上给大家的假象就是他们从vista开始将不会支持OPGL除了对XP程序的向后兼容。这种版本的OPGL将会建立在DirectX之上,这当然引起严重的性能问题。这场战役导致很多优秀程序员转战DX。

当vista发布后,他又允许厂商创建快速可安装客户端驱动(ICDs)以保留对原生OpenGL的支持。OpenGL发布消息称OpenGL依旧是第一阵营,但是OPGL在vista上的效果始终不如Direct3D。不幸的是,这种破坏已经给OPGL带来了巨大的打击。

3. 误导市场的战役为什么你应该使用OpenGL而不是DirectX?(为什么你应该使用手机)

win7发售时的市场策略与vista如出一辙,微软展示了before和after效果。很多玩家认为从dx9转到dx就能神奇般的把图形变得更亮,或者说从Halo1变成Crysis。游戏评论证实Crysis的DX9版与DX无区别,而画面的改变事实上由于调整了某些config文件。

在拥有大量游戏的微软市场策略下,一些有见解的程序员与卡马克大神拒绝追赶他。他说:“个人来讲,我不会立即跳进DX.我会尝试做些改变直到我真的需要它。”

(我觉得作者是个悲剧,传言说下一代的ID引擎是基于DX的,卡马克也没说不用dx呀。。。)

为什么我们要用 OpenGL?

得到更少的厂商支持,游戏不再大量使用,被微软紧追猛打,市场生存空间狭小,为什么我们还要用它?大家用dx不更省事么?不,因为实际上,OpenGL比DX更强大,支持更多的平台,这是未来游戏的基础。

1. OpenGL 比 DirectX 更强大

OPGL有比DX更快的draw调用(如果你不信请看这里this one),并且它能通过厂商扩展第一时间使用GPU的新特性。OPGL让你能在多平台上直接访问显卡硬件,而DirectX只能在他们最新的操作系统上提供一些最新技术的展示。DX鼓吹的Tesselation其实三年前就可以用OPGL使用了。我不知道以后还会有什么新技术,但我知道OPGL一定最先可用(这个“卖点”也灰常吸引译者本人)。

2. OpenGL 是跨平台的

暴雪总是同时发布游戏的mac版本,这是他们成功的一项法宝。

就像卡马克被问Rage是不是DX游戏时谈到:“它事实上用的是OpenGL,尽管我们使用了D3D-ish API在Xbox平台和PS3的CG。你使用的技术很微小一部分,写的上百万行代码只有少数部分才会用API,但是数百万行的代码却依赖那些不可知的目标平台。”就像卡马克说的,为什么不会跨平台做好准备而让自己被DX限制?

3. OpenGL 是未来游戏更好的选择

非盈利的开源OpenGL用于创造一个允许用户在各种平台都能高效能发挥的图形库。他被垄断企业不断攻击,这其实也在伤害您自己的利益。我们需要自由和竞争来提升质量和降低价&#;。一个微软垄断的局面对游戏开发者和玩家来说都是非常杯具的。

OpenGL 能否力挽狂澜?

回到年,那时的情况和现在如此相&#;。微软为DX发动了疯狂的市场战役,随后大家都“知道”它比OpenGL更快。随着Chirs Hecker发表的open letter denouncing DirectX。情况有所改变。随后,卡马克发布了著名的OpenGL rant,并掏出大把钱用OpenGL开发Id工作室的项目,一度证明了DX不可能达到的3D性能。

这一课已经被渐渐遗忘。很多开发者陷入了dx的市场诱惑。

如果你使用OpenGL,你可以比DX更早使用更快更强大的显卡特性,并且用于所有版本的windows,mac和linux,同样也可用于PS3,Wii,PSP,DS和iPhone。你也可以在 rapidly-developing WebGL standard使用这些特性(用于次世代网页游戏)。

如果你是一个游戏开发者,你只需搜索资料并思考,然后想想OpenGL是否是更好的选择。

(译后感:本人玩的是C&#;&#;,这篇文章让我觉得&#;曾相识,语言之争也从未结束,也将不会结束。API是API,就像卡马克说的,一个游戏很少一部分才用到API。语言呢也终究是工具,所以我们的算法才如此的“泛型”。)

计算机图形学中三坐标的颜色及其含义 在一些涉及三维模型显示的软件中经常有一个指示坐标系的三向箭头,颜色分别为红绿蓝,实际上,红色代表x轴,绿色代表y轴,蓝色代表z轴,这一顺

NVIDIA的低开销OpenGL方案NV_Command_List【Siggraph Asia 】 1.前言今年各大厂商都更新了3D图形编程接口,以AMD为首的Mantle、Apple在iOS8上的Metal以及MS即将在Win部署的DX,都是以减少CPU调用驱动开销为目的的新API

OpenGL学习_Mac OS X环境搭建 Mac上搭建OpenGL环境比较简单,我使用的是操作系统是MacOSX.版本,OpenGL版本是3.0/3.1,开发环境XCode6.1,参考的书籍《OpenGL编程指南》中文第七版。一、

标签: 为什么你应该使用手机

本文链接地址:https://www.jiuchutong.com/biancheng/373256.html 转载请保留说明!

上一篇:C#+OpenGL编程之OpenGL 材质(c# opengl 3d)

下一篇:计算机图形学中三坐标的颜色及其含义(计算机图形学中点画圆法)

  • 所得税费用本期金额怎么算
  • 私募基金如何做大规模
  • 会计差错更正流程
  • 用友工资系统参数设置
  • 出纳做账流程视频
  • 增值税专用发票抵扣联
  • 分给当期投资者利润如何做会计分录?
  • 注册资本低于实际投资
  • 扣员工工会会费
  • 房地产结转收入是什么意思
  • 研发加计扣除税率
  • 跨年的费用需要冲减
  • 购买方退货的会计处理
  • 第一季度盈利第二季度亏损全年盈利
  • 个人开增值税普票有没有限额
  • 印花税在什么情况下需要申报
  • 专票红冲后的账务处理
  • 每月收到融资租赁费利息发票
  • 增值税是什么鬼
  • 电子承兑到期提示付款选择线上还是线下
  • 非关联企业无偿拆借资金企业所得税
  • 废品损失账户借方反映
  • win11任务栏没有输入法图标
  • 无偿取得固定资产算不算收入
  • 工程合同主要看什么
  • kb4532945安装失败
  • php数组函数面试题
  • 如何制作win7系统u盘安装盘
  • 企业并购的基本方法有
  • 银行存款日记账与银行对账单之间的核对属于
  • nginx静态文件服务器
  • 营业利润期末余额怎么算
  • 30个极致实用的东西
  • 蒂内河畔圣艾蒂安小镇,法国阿尔卑斯省 (© CAVALIER Michel/hemis.fr/Alamy Stock Photo)
  • 温特孚灯具质量怎么样
  • 应纳所得税额税率表
  • nodejs bull
  • 财政资金借款给企业
  • php正则替换字符串
  • 会计分录结转进项怎么算
  • 增值税系统技术维护费 减免政策
  • 连续3个月没有休息怎么发朋友圈文案
  • 实际发放股票股利
  • 研发费用加计扣除的条件
  • 现金流量表中有应收账款吗
  • 客户少给了钱怎么要
  • mongodb迁移
  • 以前年度损益调整是什么意思
  • 企业印花税的计算公式是什么
  • 汇算清缴利润调增70万会预警吗
  • 进项税额有留底怎么做分录
  • 跨月发票税率开错了如何处理合适?
  • 短期借款怎么做账务处理
  • 小规模纳税人销售要交税吗
  • 厂房违建如何处理
  • 银行取现怎么预约
  • 除了增值税专用发票,还有什么发票可抵扣
  • 所得税汇算清缴报告在哪查
  • 免税蔬菜税额用什么表示
  • 减免税怎么做会计分录
  • mysql coalesce函数用法
  • 常用的sql语句有哪些
  • centos sync
  • win7系统怎么设置屏幕常亮
  • 在linux系统中,用来存放系统所需要的配置文件和子目录
  • 系统ui怎么关闭
  • backtracker
  • 第三人称控制器在平面上老掉
  • Unity3D游戏开发毕业论文
  • 解读css发展历史简述
  • python3遍历
  • dos help命令
  • js如何获取浏览器窗口大小
  • angularjs2
  • jquery jsonview
  • unity的shader用法
  • 如何编写高质量创业计划书实验小结
  • 稽查局是税务局的派出机构还是内设机构
  • 地税税务登记代码怎么查
  • 武汉洪山实验中学是初中还是高中
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设