1.5.2 多媒体API--DirectX(3)
目前只有AMD的Radeon HD3000系列产品支持DirectX 10.1。
(12) 11--微软公司于2009年秋随Windows 7发布了Direct3D 11。在DirectX 11中,微软主要目标在于减少游戏工作室的开发成本,与新PC硬件更有效结合,提高物理效果、游戏AI以及游戏其他功能特性以提高游戏的互动性。随着游戏画质的不断提高,图形细节的复杂程度也大幅提升。微软已经在游戏主机开发中拥有了不少高效图形开发程序经验,通过更为强大的纹理制作API,DirectX 11可以提高纹理生成性能,从而让游戏运行帧数更为流畅。硬件方面微软也指出值得注意的发展趋势--CPU并行多核心化。DX11在并行运算处理能力利用上进一步改进,通过新的完善的驱动界面支持并行多核心处理器平台。流处理以及GPGPU也是图形领域的重要发展方向,DirectX 11对这些新技术也提供了支持。
DirectX 11的主导者不是微软,而是Intel。因为Direct3D 11将会支持Intel的光线追踪(Ray Tracing)技术,该技术可使得3D图形更加真实、更具立体感,而不是一眼就能看出来是在一个平面上显示出来的效果。相对于目前的光栅化技术(Rasterization),光线追踪更加注重从视觉上改变3D(主要运用到折射)物体的效果,而不是Rasterization那样通过几何原理。当然,用户不用担心使用现在的显卡不能安装DirectX 11,因为DirectX 11会有两种模式,即Rasterization模式和Ray Tracing模式。最值得一提的是,Intel的Ray Tracing只能够支持X86架构。D3D 11的主要目的是提高伸缩性、改善开发体验、拓展GPU能力、改善性能。它是D3D 10/10.1的超集,在其基础上增加了一些新功能,支持Windows Vista和后续操作系统Windows 7等,支持DX 10/10.1级别硬件。
D3D 11的主要新技术有Tessellation(镶嵌)、计算着色器(Compute Shader)、多线程、动态着色器关联、改进的纹理压缩等。角色创作的趋势是越来越复杂,三角形和多边形越来越多,对渲染管线和输入输出提出了更大的挑战,因此需要更高级的表面呈现技术。为此,D3D 11新增了三个着色流程:Hull Shader(外壳着色器)、Tessellation(镶嵌)和Domain Shader(域着色器),使其着色器管线更加丰富和复杂。Direct3D 11管线如图1-22所示。
|
| 图1-22 Direct3D 11管线 |
(13) XNA--另外,作为学生和业余爱好者的DirectX替代产品,微软公司于2004年3月24日发布了用于托管运行环境下计算机游戏的设计、开发和管理的框架和工具集XNA,并于2006年12月11日推出了XNA Framework Redistributable 和XNA Game Studio Express的1.0版,可用于Windows和Xbox 360游戏的开发。微软公司后来又分别于2007年12月13日和2008年10月30日推出了XNA Game Studio的2.0版和3.0版。
2.结构
DirectX是一种基于COM(Component Object Model,组件对象模型)的系统,它既不属于驱动程序层,也不属于应用层。DirectX的主要设计目标是在提供某种设备独立性的同时获取高速度,为此微软公司为DirectX设计了如图1-23所示的体系结构。
|
| 图1-23 传统的DirectX子系统(体系结构) |
(1) HAL(Hardware Abstract Layer,硬件抽象层):负责检测本机的硬件功能,并以一种独立于设备的方式提供这些功能。
(2) HEL(Hardware Emulation Layer,硬件模拟层):负责提供DirectX功能中本机硬件不支持部分的模拟实现。
但是从8.0版起,DirectX就不再提供硬件模拟层HEL模块了,需要开发商、第三方或自己来编写一个PSD(Pluggable Software Device,可插式软件设备),连到DirectX提供的HEL接口上,称之为参考设备。而现在很少有这样的PSD可用,因此新版本的DirectX是严重依赖于硬件的。