`
wsql
  • 浏览: 12098501 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

DirectX—昨天,今天,明天[1]

 
阅读更多
DirectX—昨天,今天,明天[1]

[原创] 龙芯X 2004-01-19
现在游戏的种类与数量几乎呈爆炸式增长,游戏的制作水平也不断提高,那么玩家在欣赏游戏中那绚丽的效果时,有没有想过是什么造就了这一切兀空饩褪荄irectX!DirectX这个词对玩家来说似乎并不陌生,现在的很多游戏说明里都有“该游戏需要DirectX….以上版本支持”此类的话,甚至3DS Max启动时的加速模式选项中也有DirectX身影。那么DirectX究竟是什么呢?现在就让我们揭开它面上这层神秘的面纱,一探究竟吧。

一、初识DirectX
DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染、交互式音乐和环境音效等高要求应用开发服务的。从Windows 95开始,人们就开始接触DirectX2.0,WindowsNT4.0里面则是DirectX3.0a,但是没有DirectX4的版本。到了Windows98,它就是Windows家族操作系统中不可缺少的核心成员之一。Windows 98中集成了DirectX5,Windows2000中集成了DirectX 6,Windows Me中集成了DirectX 7,而Windows XP天生就带了DirectX 8.1。
微软开发了DirectX标准平台,并且根据硬件制造厂商和游戏厂商合作共同更新升级DirectX的标准。硬件制造商按照此标准研发制造更好的产品,游戏开发者根据这套标准开发游戏。也就是说,无论硬件是否支持某种特效,只要DirectX标准中有,游戏开发者就可以把它写到游戏中,当这个游戏在硬件上运行,如果此硬件根据DirectX标准把这个效果做到了此硬件驱动程序中,驱动程序驾驭其硬件算出结果,用户就可以欣赏到此效果。这就是“硬件设备无关性”,是DirectX真正意义所在。
通常,Windows对硬件访问的管制非常严格,用通常的办法不易访问,但DirectX通过“硬件抽象层(HAL)”给予了开发人员直接访问硬件的能力,HAL不仅解决了硬件及兼容性问题,而且开发人员可以利用它直接访问计算机的某些硬件设备,例如显示设备的直接显存控制和渲染,键盘、鼠标和游戏杆的控制的直接访问控制,音频设备的直接音频混合与输出能力等等,因此开发人员可以充分利用硬件加速将程序的性能优化到一个新的高度,如果目标机器不支持相应的硬件加速,DirectX还可以仿真加速器以提供强大的多媒体环境。DirectX家族包含的成员有Direct3D、DirectDraw、DirectInput、DirectMusic、DirectPlay、DirectSound和DirectShow。

二、DirectX全家福

通过上面的介绍,相信读者对DirectX已经有一个大概的了解。下面就让我们逐一认识它们吧。
1、Direct3D、DirectDraw和DirectGraphics
DirectDraw是DirectX家族中的元老,它为高速的2D渲染提供了良好的支持,由于其具备直接显存访问和位快传送的能力,使得2D图形的绘制速度相对GDI有了一个质的飞跃,其渲染速度甚至有上百倍的差距。在现在回忆当初玩“红色警戒”和“Diablo”的时候,大家可不要忘了DirectDraw的功劳。

DirectDraw在DirectX3.0时就已经接近极致,但是随着PC图形技术的飞速发展,人们逐渐不再满足于2D的图形效果,而通过2D技术实现伪3D模拟又非常损失效率,这种需求直接导致了Direct3D的诞生,早期的Direct3D技术不甚完善,相对于2D技术还有一定的差距,直到图形加速卡支持硬件3D特效后,Direct3D才逐渐步入正轨,慢慢显示出它的性能优势来。下面让我们来回顾一下历史,看看

Direct3D的“成长过程”
DirectX6中的Direct3D添加了如下新特性:
•几何形体的灵活顶点格式定义
•几何形体的顶点缓冲存储
•支持多纹理渲染
•自动纹理管理
•可选深度缓冲(使用Z Buffer或W Buffer)
•通过凹凸环境贴图(BUMPENVMAP)为反光面和水波特效提供逐像素的渲染和贴图能力
DirectX7中的Direct3D添加了以下新特性:
•硬件坐标转换和灯光(T&L)支持
•立方体表面的环境贴图
•几何渲染
•改进的纹理渲染
•自动纹理坐标生成、纹理转换、投影纹理和任意面裁剪
•D3DX实用库
•支持Intel MMX架构、Intel单指令多数据流(SIMD)、SSE®和 AMD® 3DNow®架构。

DirectX的版本到了8.0的时候,虽然它依然保持着向前的兼容性,但是它的结构发生了巨大的变化,3D图形处理技术逐渐统一在Vertex Shader和Pixel Shader。Vertex Shader被用来描述和修饰3D物体的几何形状,同时也用来控制光亮和阴影;Pixel Shader则用来操纵物体表面的色彩和外观。Direct3D和DirectDraw合二为一,DirectX家族诞生了一个新的成员-----DirectGraphics。同时也增添了很多令人激动的特性:

•完全集成DirectDraw与Direct3D
简化程序初始化过程并提高数据分配和管理的性能,这将减少内存消耗。同时,集成后的图形应用编程接口(API)允许并行的顶点输入流以达到更加灵活的渲染。
•可编程顶点处理语言
允许你编写定制的着色器,如变形和渐变动画,矩阵调色板蒙皮,用户定义的光照模型,一般环境映射,可编程几何体或者任何其他开发者定义的算法。
•可编程像素处理语言
允许你编写定制的硬件着色器,例如通用纹理组合公式,逐像素光照(凹凸贴图),适用于实现照片(真实)级镜面效果的逐像素环境贴图或者任何其他开发者定义的算法。
•支持多重采样渲染
允许全场景反走样和多重采样效果,例如运动模糊及景深(镜头的聚焦效果)。
•点精灵
允许高性能的粒子系统渲染,例如火花、爆炸、雨、雪等等。
•3-D空间纹理
允许范围衰减,实现逐像素级光照及空间大气效果,甚至是更复杂的几何图形应用。
•支持高维图元
对来自主要的3-D创作工具的3-D内容,增强其外观并简化内容映射。
•高级技术
包含了用于输出Direct3D蒙皮网格的三维内容创建工具插件,使用了Direct3D多种不同技术,多分辨率层次细节(LOD)几何,还有高维表面数据。
•索引顶点混合
扩展了几何混合的支持,允许通过指定使用一个矩阵索引把矩阵应用于顶点混合处理。
•扩充了Direct3DX实用库
包含了大量的新函数。Direct3DX实用库是一个位于Direct3D之上的辅助层,用于简化3-D图形开发者的常规工作。它包括了一个蒙皮库,支持对网格的操作,还有组装顶点与像素着色器的功能。
DirectX每一次升级都会有重大的内核结构改变,它会给我们带来巨大的视觉冲击。DirectX7核心的T&L引擎到DirectX9干脆被抛弃了。因此对于图形芯片开发商、游戏开发商以及广大用户而言,DirectX 9的确是一项“绝无仅有的优越图形技术”。DirectX 9“具有多项令人兴奋的全新功能特征”:


Direct3D图形渲染管道
•Vertex Shader 2.0和Pixel Shader 2.0

在DirectX9中,Vertex Shader和Pixel Shader的版本升级到了2.0,它们都支持64或甚至128位浮点色彩精度。浮点色彩在动态和精度上的增加给图像质量带来质的飞跃,这样在DirectX9中你可以轻易实现电影级别般逼真的效果!
DirectX8和DirectX9的对比参数:


Vertex Shader 2.0引入了流程控制,增加了条件跳转、循环和子程序。Vertex程序现在最多可以由1024条指令组成(之前只能用128条指令),增加的指令带来更加复杂和强大的表现,新的操作如正弦、余弦及其他强大的函数运算大大简化了代码的编写,并且能够表现更加复杂的效果。


Vertex Shader 1.0 VertexShader 2.0
强大的可编程Pixel Shader是实现具有电影质量级别效果的真正精华所在。Pixel Shader 2.0可以支持高级程序语言和汇编语言,开发人员还可以将其汇编代码嵌入较高级的程序语言中。前一版的Pixel Shader语言被限制为只能使用最多6个材质和28条指令,而2.0版则将这一上限提升至最大16材质和160条指令,也新增了很多强化的运算和操作。


Pixel Shader 1.4



Pixel Shader 2.0


此外各种Shader工具的大力协助,如nVidia的Cg语言和ATI的RenderMonkey,使得实时图形渲染的质量飞速提高,nVidia和ATI官方的Demo就足以说明这一点。DirectX9中也改进了部分接口定义,Vertex Shader和Pixel Shader分别单独提供了一个接口,而且提供了常见图形的绘制接口,如线段的绘制等,这进一步减轻了开发人员的负担。

•浮点型色彩和32位帧缓冲格式

目前大多数色彩表示法(如RGB)用8位整数表示红、绿、蓝色,也许对于显示来说这已经足够了,但在运算中似乎还远不够。由于整数没有小数部分,因此当它们经过Pixel Shader极其复杂的数学运算后,就会产生较大的误差,这可能导致色彩明显失真。而DirectX9支持数种浮点色彩格式,使得其精度有了很大提高。同时DirectX9支持精确到每像素32位的帧缓冲格式,能够表现出4倍于目前亮度等级的数量,这使得图像看上去更加清晰和自然。

除此以外,DirectX9还提供位移贴图(displacement maps)以及改进的设备模拟等特性的支持,并且毫无意外地,DirectX9 SDK中也进一步扩展了Direct3DX实用库,提高了开发效率。
分享到:
评论

相关推荐

    DirectX昨天今天明天.pdf

    ### DirectX昨天今天明天 #### 一、DirectX概述 DirectX是一种由微软开发的多媒体编程接口,被广泛应用于游戏开发和个人计算机图形处理中。它包括一系列API(应用程序接口),用于处理与多媒体相关的任务,特别是...

    联想工程师专用小工具 DirectX修复V3.41.1

    联想工程师专用小工具 DirectX修复V3.41.1联想工程师专用小工具 DirectX修复V3.41.1联想工程师专用小工具 DirectX修复V3.41.1联想工程师专用小工具 DirectX修复V3.41.1联想工程师专用小工具 DirectX修复V3.41.1联想...

    DirectX修复工具V4.3增强版

    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含...

    directx修复工具增强版.zip

    directx修复工具增强版directx修复工具增强版directx修复工具增强版directx修复工具增强版directx修复工具增强版directx修复工具增强版directx修复工具增强版directx修复工具增强版directx修复工具增强版directx修复...

    DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南

    DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX ...

    DirectX 修复工具 DirectX Repair v4.3.0

    DirectX异常修复工具(DirectX Repair)是一款系统级工具软件,本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的...

    DirectX修复工具 V3.3增强 绿色版

    DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题...

    DirectX_Repair (DirectX修复工具)

    1. **DirectX Repair.exe.config**:这是DirectX修复工具的配置文件,用于设置程序的运行参数和行为,例如错误报告设置、日志记录等。 2. **DirectX Repair.exe**:这是主应用程序文件,执行DirectX的检测和修复...

    DirectX Repair v3.9

    DirectX Repair v3.9 是一个实用工具,专门设计用于解决计算机系统中与DirectX和Microsoft Visual C++运行库相关的常见问题。这个程序是游戏玩家和软件开发者的重要资源,因为许多现代游戏和应用程序依赖于这些组件...

    Directx12 游戏开发

    1. DirectX简介: DirectX是一种由微软公司开发的游戏编程接口(API),主要用于增强Windows平台下的多媒体、尤其是游戏的性能。DirectX的各个版本不断发展和改进,例如DirectX 11和DirectX 12。DirectX与OpenGL是...

    DirectX修复工具-3.5

    DirectX修复工具是一款专为解决计算机中DirectX问题而设计的实用程序,版本3.5是该工具的一个更新迭代。DirectX是由微软开发的一组应用程序接口(API),它包括多种技术,主要用于处理游戏图形、多媒体播放以及系统...

    DirectX修复工具&下载地址.zip

    1. 自动检测:该工具能够自动扫描系统中DirectX相关的组件,找出可能存在的问题。 2. 修复功能:一旦检测到问题,工具会尝试修复损坏或丢失的文件,恢复DirectX的正常工作状态。 3. 更新组件:除了修复,工具还会...

    Microsoft.DirectX.DirectSound.dll和Microsoft.DirectX.dll

    1. **硬件加速**:DirectX能够充分利用硬件的能力,尤其是在现代游戏和高性能应用中,可以显著提高图形和音频的处理速度。 2. **跨平台兼容性**:尽管DirectX主要针对Windows系统,但通过一些开源项目(如MonoGame或...

    [DirectX]日本的DirectX教材

    【DirectX】是一种由微软开发的多媒体编程接口,主要用于Windows平台上的游戏开发和图形处理。它包含了一系列的API(应用程序接口),涵盖了图形渲染、音频处理、输入设备控制等多个领域,为程序员提供了创建高性能...

    DirectX Repair V3.9.zip

    1. **检测与修复**:该工具能够自动检测用户计算机上的DirectX组件是否完整,如果发现缺失或损坏的部分,会进行修复操作,确保所有必需的组件都正常工作。 2. **兼容性**:DirectX Repair V3.9支持多种Windows操作...

    DirectX SDK June 2010

    1. **Direct3D**:这是DirectX的核心部分,用于处理3D图形渲染。它提供了丰富的接口,用于创建复杂的3D模型、场景和动画,以及控制GPU进行高效渲染。Direct3D 9、10和11分别对应不同的Windows操作系统和硬件支持,...

    DirectX 9 修复工具

    DirectX 9 修复工具

    DirectX 8.0 exe安装程序-Win11可安装

    DirectX 8.0 是微软开发的一套图形应用程序接口(API),主要用于提升计算机游戏和多媒体应用的图形处理能力。在Windows 11操作系统上安装DirectX 8.0的步骤如下,同时也会介绍相关的图形SDK及其重要性。 首先,...

    directx

    1. **Direct3D**:这是DirectX的核心部分,专门用于3D图形渲染。它允许开发者创建复杂的3D场景,实现光照、纹理、动画等效果,广泛应用于游戏和图形密集型应用。 2. **DirectDraw**:这个组件专注于2D图形加速,...

    DirectX修复工具V3.5.7

    DirectX修复工具V3.5.7是一款专为解决计算机中DirectX相关问题而设计的实用软件,尤其针对出现0xc000007b错误的用户。这个错误代码通常意味着应用程序无法找到正确的系统库或者依赖项,尤其是与DirectX相关的动态...

Global site tag (gtag.js) - Google Analytics