【阅读笔记之一】《DIRECTX.9.0.3D游戏开发编程基础》:DirectX概略

                                                                                                   认识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),即硬件抽象层。它和其他关系如下图所示:

【阅读笔记之一】《DIRECTX.9.0.3D游戏开发编程基础》:DirectX概略_第1张图片

       从图中可以看到,最底层的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日

                                                                                                                 

你可能感兴趣的:(阅读笔记)