XBox360 SDK 小记

XBox360 使用 Direct3D 作为图形 API,但是,Direct3D 在 XBox360 上与在 Windows 上有些许不同,了解这些差异,可以知道为什么微软要如此这般设计 Direct3D API。

 

1. Direct3D 在 XBox360 上没有硬件抽象层(HAL),也就是说,用 D3DDEVTYPE_HAL 创建 IDirect3DDevice9,将会失败,微软设计 HAL 就是为了屏蔽 Windows 操作系统下不同的显卡自身的差异,让 Windows 开发者可以使用同一的 API 来操作所有支持的显卡,但是,到了 XBox360,事情就变得有趣了,由于 XBox360 是微软自己开发的硬件设备,每一代 XBox 的硬件细节都不会相差太远,所以,不需要 HAL 来消除硬件差异,而是直接通过 Direct3D API 来操作显卡设备。

 

2. 不再基于组件对象模型(COM),在 Windows 操作系统下,组件对象模型技术用于解决日益增长的 API 数量,以及不同 API 版本之间产生的各种问题,然而,到了 XBox360,Direct3D 不再基于组件对象模型,然而所有的接口 (Interface)依旧保留 Release() 和 AddRef() 方法。

 

3. 没有固定渲染管道线,也就是说,所有的图形管道相关操作,都要依赖 GPU Program 了。

 

4. XBox360 包含 10MB 的增强动态随机存储内存(EDRAM),EDRAM 允许应用程序快速读写显卡内容(是不是可以理解为直接通过 CPU 指令读写 VRAM 而不需要等待显卡的同步信号?),这 10MB 的 EDRAM 里面包含了后缓冲区数据、深度模板缓冲区数据,以及其它兼容的渲染目标数据。XBox360 包含 512MB 的物理内存,包含了前缓冲区数据、纹理数据,以及其他渲染目标数据。如果你的场景数据在使用 EDRAM 时超过了 10MB,你可以使用 Predicated Tiling 特性来分割你的场景内容,并轮番提交 EDRAM 或者从 EDRAM 里面请求出来。

 

上面其实就是对着 XBox360 的 SDK 照抄,只是觉得游戏机游戏开发和传统个人电脑游戏开发有很大区别,这些区别通常来自于游戏机与个人电脑之间的硬件差异,然而在近代,游戏机的硬件构架越来越倾向于个人电脑的硬件构架,两者之间的游戏开发差异也日益减少,就好比 XBox360 可以用 Direct3D API 一样,街机开发也是,Taito TypeX 系列基板其实就是个人电脑主板,安装了 Win XP 嵌入式操作系统,基于 Taito Type X 的游戏开发,和基于个人电脑的游戏开发几乎没有差异(除了硬件资源非常吃紧)。

 

博主我个人对游戏机上面的游戏开发非常感兴趣,曾经听前辈说过,以前街机游戏开发非常严格,开发者要到资料室那资料,不能携带任何手机之类的通讯设备,还装满了摄像头,游戏代码也要经过加密,还听说过 CPS 系列的基板有自我保护,一旦电池寿终,就会自动锁定基板,只能返厂更换电池,这些都是为了防止盗版,还有,针对硬件资源不足的运行环境,游戏引擎通常要绞尽脑汁进行各种优化,什么内存池啊、对象池啊、缓存三角函数值之类的,然而现在硬件技术日新月异,一张 GTX1080 秒天秒地秒宇宙,一张不行就再来一张什么的。

 

转载于:https://www.cnblogs.com/NekoMasutaDev/p/9073443.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值