1.5.2 多媒体API--DirectX(4)
3.组成
DirectX由多个(COM组件)模块组成,而且随着版本的演化,这些模块也在不断地增减、合并和改变。最新的DirectX组件的模块构成如图1-24所示,括号中的数字为该模块被首次引进(或移出)的版本号。
|
| (点击查看大图)图1-24 DirectX的组成模块 |
下面是DirectX的主要组成模块的简单介绍:
DirectX Graphics(DirectX图形)--包括DirectDraw和Direct3D等。
DirectDraw(直接绘制)--二维图形绘制(高速位图传送/视频与2D动画)。从9.0版起,DirectDraw已被集成到了Direct3D之中。
Direct3D(直接三维)--三维图形绘制。分成保留(Retained)和立即(Immediate)模式:保留模式是一种高层API,建立在立即模式之上,使用方便容易,但是效率不高,适合于初学者;立即模式则是一种底层API,使用复杂,但是其效率比保留模式高得多。大多数DirectX应用程序,特别是计算机游戏,都是采用立即模式进行开发。自从6.0版以来,保留模式API的发展停滞不前,而立即模式API的发展却日新月异。不论是保留模式还是立即模式,Direct3D都是建立在DirectDraw之上的。但从9.0版起,Direct3D包含了DirectDraw,它像OpenGL一样同时具有二维、三维图形绘制功能。Direct3D 10版本是Windows Vista的一个有机组成部分。
D3DX(Direct3D eXtension,Direct3D扩展)--为Direct3D服务的实用工具库,执行公共的数学计算和一些复杂的任务,包含若干简化3D模型使用的类,如粒子系统(Particle System)。D3DX由动态链接库(DLL)提供。
DXUT(DirectX UTility Library,DirectX实用工具库)--是建立在Direct3D API之上的样例框架,也叫通用文件框架,可帮助程序员减少在繁琐的普通工作(如创建窗口、创建设备、处理Windows消息和设备事件等)上所花费的时间。
DXGI(DirectX Graphics Infrastructure,DirectX图形基础设施)--管理可独立于DirectX图形运行环境的低层任务,为DirectX的未来版本提供一个通用框架。
HLSL(High Level Shading Language,高级着色语言)--用于为Direct3D管线创建类似C语言的可编程(www.cppentry.com)着色器,从DirectX 8.0起引入。
DDS(DirectDraw Surface,DirectDraw表面)--DirectX 7.0引入的一种文件格式(.dds),用于存储压缩(DXTn)和非压缩纹理。DDS支持MIP映射、立方映射和体映射。DDS文件格式还被D3DX和DirectX纹理编辑器(Dxtex.exe)及纹理转换工具(Texconv.exe)等其他DirectX工具支持。从Direct3D 10开始,DDS文件支持纹理数组。
DirectX Audio(DirectX音频)--包括DirectSound和DirectMusic等。
DirectSound(直接声音)--主要针对波形音频,底层接口。可用于开发播放和捕捉波形音频的高性能立体与三维(DirectSound 3D)音频应用程序。在下一代DirectX中,DirectSound的功能将由XACT(Microsoft Cross-Platform Audio Creation Tool,微软跨平台音频生成工具)来代替。
DirectMusic(直接音乐)--主要针对MIDI音乐,高层接口。为基于波形、MIDI声音或DirectMusic生成器所创造的动态内容的音乐和非音乐声道提供一个完整的解决方案。