《Beginning DirectX11 Game Programming》读书笔记1 认识DirectX11

学习DX11开发,可以充分利用多核CPU、显卡GPU性能,同时简化了开发难度。目前大量软件应用已经在市面上存在,可以通过改进已有程序,增强竞争力。

结合自身的抽奖软件,要采用Direct2D针对win7改进性能,并新增3D版本。

 

基本概念

之前没有开发过DX程序,先认识一下基本概念。

 

第一个版本命名为Games SDK。

Windows、Xbox采用DirectX开发视频游戏。XBOX游戏使用的是DX9的特别修订版本。

DirectX很好的封装了对硬件的底层访问,而无需关心硬件驱动。下方DX指DirectX。更多见百度百科词条

 

DirectX10是革新版本,因它需要新的硬件,并且至少Vista系统环境。10已经成功了,受到了硬件厂商广泛支持,同时桌面系统也大量采用了win7。11基于10开发。win7系统自带,Vista可以安装支持,不支持XP。

DX11增加了GPU、多线程运算和拆嵌式细分曲面技术等重要特性。

 

 

 

DX11构成

  • Direct2D 用于绘制高性能2D图形、位图、文本。替代DirectDraw
  • DirectWrite 在Direct2D程序中负责字体渲染和文本布局
  • DXGI 提供图形硬件底层管理。主要是枚举显示设备,将渲染好的帧呈现出来
  • Direct3D 3D图形
  • XAudio2 底层API,替代DirectSound,负责声音。XAudio只能在XBOX上应用
  • XACT3 基于XAudio2
  • XInput 输入控制。
  • XNA Math 不是API,是数学库
  • DirectCompute 11新增。实现多线程GPU运算。
  • DirectSetup 用于分发程序。比如检查用户DX版本
  • Windows Game Explorer 游戏浏览器。显示游戏信息,比如是否限制未成年人
  • DirectInput 键盘、鼠标、操纵杆输入

Win7下的游戏浏览器,

image

 

渲染管线(共12项,后续会阐述)

image

 

如果之前编写了DirectX游戏,如何升级到11版本呢?

假如原有基于10的话,可以方便升级,用11对应的API替换即可。

假如原有基于9版本,因为版本革新,建议重新编写界面渲染层代码。11不同9需要检测硬件对DX功能是否支持,因为所有硬件不支持的功能,会通过软件模拟。这个特性,大大方便了开发人员的工作。

 

开发工具

下载DX11 SDK

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=6812

image

 

阅读例子程序和文档

image

很多例子运行很慢,不知道是否没有启用硬件加速的原因。

 

SDK包含了很多实用工具,

PIX调试工具:用于收集和分析3DAPI的调用和执行信息。也可以设置断点调试。

Cpas Viewer:显示硬件对DirectX11的支持程度

image

 

诊断工具:检查DX功能组件是否正确执行的工具

错误代码查看:运行DX程序收到的错误代码,可以通过此工具查看详细描述

控制面板:实用工具,用于检查、修改DX功能组件。比如:启用调试、更改调试等级、查看组件版本以及硬件支持信息等

跨平台声音创建工具:PC程序不需要。创建XACT3需要的音频文件。包含命令行和GUI版本

游戏定义文件编辑器:为游戏浏览器提供适应本地用户规范的游戏信息。比如发布日期、图标、是否限制未成年

 

如何学习

  • 阅读文档、不断编写代码练习
  • 参考SDK、MSDN手册
  • 参与交流。比如博客、开发站点

 

本书网站,http://ultimategameprogramming.com/ 网站即将发布DirectX 2D 游戏开发书籍。期待。

http://www.gamedev.net/page/index.html 这里有很多游戏开发者

 

后续将学习如何编写第一个DX程序。基于 VC2010+Win7(32位旗舰版)开发环境。

posted @ 2013-02-15 07:50  5imetro  Views(804)  Comments(0Edit  收藏  举报