【阅读笔记之一】《DIRECTX.9.0.3D游戏开发编程基础》:DirectX概略
2012-10-12 14:53
501 查看
认识DirectX及本书概略
”DirectX是微软开发的一套功能丰富的底层API,其中涵盖了对2D/3D图形加速的支持,对各种输入设备的控制,以及对声音和音乐输出的混音和采样、对多玩家网络游戏的控制、对各种多媒体流模式的控制等“。
——摘自本书译者的序言
本书主要是讲解运用DirectX3D进行交互式游戏的开发。DirectX3D只是DirectX的一个子集。DirectX3D是一个庞大的API集群,必须学会使用DirectX SDK文档。
代码约定及其他规则:所有成员变量以下划线为前缀;
全局变量和函数名都以大写字母开头,局部变量和方法名都以小写字母开头;
本书所有代码均没有做异常处理;
在本书中对于DirectX有些方面没有提及,这里补充(来自《Direct3D游戏开发技术详解》)
在Windows出现之前,DOS是最流行的操作系统,游戏开发也基本上时在DOS上运行,但是这样效率及各种效果让人难以忍受。就在这个时候,Windo ws95出现,并伴随着DirectX1.0的问世。从此,DirectX建立起来游戏开发的标准。
DirectX包含多个组件,下面分别简单介绍:
1. Direct3D: 3D图形包,在显卡的支持下提供各种丰富、强大的图形渲染功能。
2. DirectDraw: 2D图形包,提供硬件加速的2D渲染显示功能。
3. DirectInput: 为包括游戏杆、鼠标、键盘和游戏控制器在内的输入设备提供支持。
4. DirectPlay: 对编写多人联网游戏提供支持,包括在处理玩家连接、消息发送、语音交流框架等方面提供了强大的功能。
5. DirectSound: 音效方面的支持,提供低延迟的声音和对硬件资源的高度控制。
6. DirectShow: 提供媒体流架构支持,可播放高质量的视频和音频。
7. DirectSetup: 对DirectX应用程序提供安装方面的支持。
关于HAL
HAL(Hardware Abstraction Layer),即硬件抽象层。它和其他关系如下图所示:
从图中可以看到,最底层的Graphics Hardware是图形显示卡硬件,其上的Device Driver Interface是显示卡驱动程序,由显卡制造商提供。然后在驱动程序上面架构了两套API,一套是Windows
GDI,另外一套是HAL硬件抽象层上的Direct3D API。HAL通过显卡所支持的模式对Direct3D API通过加速,因此可以提供更好的性能。
DirectX是按照微软的COM(Component Object Model)搭起来的。设计COM是希望它能够提供一个更安全、易升级、可移植 的软件模块。COM是一种基于二进制的编程模型,它的接口无法通过任何方式改变,并且提供向前兼容的功能。COM本身的二进制编程模型使跨语言编程成为其一大优势。
另外,我还喜欢这本书里面的一句话:
3D游戏编程不像其他领域一样学几句语句就能抄刀上阵......
——Josh
2012年10月12日
”DirectX是微软开发的一套功能丰富的底层API,其中涵盖了对2D/3D图形加速的支持,对各种输入设备的控制,以及对声音和音乐输出的混音和采样、对多玩家网络游戏的控制、对各种多媒体流模式的控制等“。
——摘自本书译者的序言
本书主要是讲解运用DirectX3D进行交互式游戏的开发。DirectX3D只是DirectX的一个子集。DirectX3D是一个庞大的API集群,必须学会使用DirectX SDK文档。
代码约定及其他规则:所有成员变量以下划线为前缀;
全局变量和函数名都以大写字母开头,局部变量和方法名都以小写字母开头;
本书所有代码均没有做异常处理;
在本书中对于DirectX有些方面没有提及,这里补充(来自《Direct3D游戏开发技术详解》)
在Windows出现之前,DOS是最流行的操作系统,游戏开发也基本上时在DOS上运行,但是这样效率及各种效果让人难以忍受。就在这个时候,Windo ws95出现,并伴随着DirectX1.0的问世。从此,DirectX建立起来游戏开发的标准。
DirectX包含多个组件,下面分别简单介绍:
1. Direct3D: 3D图形包,在显卡的支持下提供各种丰富、强大的图形渲染功能。
2. DirectDraw: 2D图形包,提供硬件加速的2D渲染显示功能。
3. DirectInput: 为包括游戏杆、鼠标、键盘和游戏控制器在内的输入设备提供支持。
4. DirectPlay: 对编写多人联网游戏提供支持,包括在处理玩家连接、消息发送、语音交流框架等方面提供了强大的功能。
5. DirectSound: 音效方面的支持,提供低延迟的声音和对硬件资源的高度控制。
6. DirectShow: 提供媒体流架构支持,可播放高质量的视频和音频。
7. DirectSetup: 对DirectX应用程序提供安装方面的支持。
关于HAL
HAL(Hardware Abstraction Layer),即硬件抽象层。它和其他关系如下图所示:
从图中可以看到,最底层的Graphics Hardware是图形显示卡硬件,其上的Device Driver Interface是显示卡驱动程序,由显卡制造商提供。然后在驱动程序上面架构了两套API,一套是Windows
GDI,另外一套是HAL硬件抽象层上的Direct3D API。HAL通过显卡所支持的模式对Direct3D API通过加速,因此可以提供更好的性能。
DirectX是按照微软的COM(Component Object Model)搭起来的。设计COM是希望它能够提供一个更安全、易升级、可移植 的软件模块。COM是一种基于二进制的编程模型,它的接口无法通过任何方式改变,并且提供向前兼容的功能。COM本身的二进制编程模型使跨语言编程成为其一大优势。
另外,我还喜欢这本书里面的一句话:
3D游戏编程不像其他领域一样学几句语句就能抄刀上阵......
——Josh
2012年10月12日
相关文章推荐
- 【阅读笔记之十三】《DIRECTX.9.0.3D游戏开发编程基础》 网格(三)加载小汽车的XFile的demo
- 【阅读笔记之七】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D中的光照
- 【阅读笔记之二】《DIRECTX.9.0.3D游戏开发编程基础》:基础数学知识
- 【阅读笔记之六】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D中的颜色
- 【阅读笔记之十一】《DIRECTX.9.0.3D游戏开发编程基础》:网格(一)闲话ID3DXMesh接口
- 【阅读笔记之四】《DIRECTX.9.0.3D游戏开发编程基础》绘制流水线
- 【阅读笔记之五】《DIRECTX.9.0.3D游戏开发编程基础》Direct3D中的绘制
- 【阅读笔记之十】《DIRECTX.9.0.3D游戏开发编程基础》:Direc3D中的字体
- 【阅读笔记之三】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D初始化
- 【阅读笔记之九】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D中的融合技术
- 【阅读笔记之八】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D中的纹理与映射
- 【阅读笔记之十二】《DIRECTX.9.0.3D游戏开发编程基础》:网格(二)浅话X文件和渐进网格
- 关于阅读《DIRECTX.9.0.3D游戏开发编程基础》的计划
- 【笔记】《DirectX 9.0 3D游戏开发编程基础》:Direct3D初始化
- 【图形学与游戏编程】开发笔记-基础篇5:光照与着色基础
- 【图形学与游戏编程】开发笔记-入门篇2:一些需要的基础知识
- Cocos2d-x手机游戏开发C编程基础---笔记一
- 【图形学与游戏编程】开发笔记-基础篇7:纹理映射
- 【图形学与游戏编程】开发笔记-基础篇1:熟悉开发环境
- 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟