admin管理员组

文章数量:1536777

2023年12月27日发(作者:)

07数字媒体 向兵 2074020219

DirectX

OpenGL

DirectX是一种Windows系统的应用程序接口(简称API),它可以让以Windows为作业平台的游戏或多媒体程序获得更高的执行效率,还可以加强3D图形成像和丰富的声音效果,并提供设计人员一个共同的硬件驱动标准。

Microsoft DirectX提供了一套非常好用的应用程序接口,其中包含了设计高性能、实时应用的程序代码,为「DirectX SDK」(俗称「DirectX开发包」)。此技术能够帮助我们轻易地建构计算机游戏和多媒体的应用程序,其中包括了DirectDraw、DirectSound、DirectPlay、Direct3D和DirectInput等部分的API指令及媒体相关的组件。这些组件每一个都有特定的用途。

DirectDraw是最为重要的一个,因为所有的图形都要用到它,它是2D图形的引擎,3D图形也同样离不开它。在Windows操作系统这种保护模式之下,所有图形的接口动作都必须经过GDI这个图形处理中心来处理,而不能直接对硬设备下命令 。图形设备接口(Grahpics?Device?Interface),它是负责在屏幕上显示图形所用的接口。GDI由百余个函数所组成的。GDI函数必须通过设备描述表(简称DC)的句柄来控制绘图。

DirectDraw主要的工作是用来帮助Windows的应用程序能够直

07数字媒体 向兵 2074020219

接进行硬设备的操作,还可以加速显示卡的速度,使得游戏的画面呈现起来更加地流畅。DirectDraw支持CPU的MMX、3DNow及AGP等特殊的指令技术,还可以处理多屏幕的显示,让Windows环境下运行的游戏更加地多姿多采。

其它的组件是:

DirectSound:提供硬件和软件的声音混合与回放。

DirectMusic:处理基于消息的音乐数据。它支持乐器数字接口(MIDI)并为创建交互式音乐提供创作工具。

DirectPlay:使得通过调制解调器链接或通过网络来与应用程序相连成为可能。

Direct3D:是一个三维图形包,它提供一个高级的保留模式(Retained Mode)接口,这使得你能够实现一个完整的三维图形系统。它还包含一个低级的即时模式(Immediate Mode)接口,使得应用程序获得对渲染管线的完全控制。

DirectInput:为包括游戏杆、鼠标、键盘和游戏控制器在内的输入设备提供支持。它还为反馈游戏设备提供支持。

DirectSetup:为DirectX提供了一个简单的安装过程。它简化了更新显示和音频驱动程序的过程,并且确保没有硬件或软件冲突的存在。

AutoPlay:让你能够制作一张一旦插入驱动器就能自动安装的光盘。AutoPlay并非DirectX所独有,因为它是Microsoft Win32 API的一部分。

07数字媒体 向兵 2074020219

而组件对象模型(COM)是DirectX的基础,COM接口是DirectX技术的基础,没有COM就没有DirectX。

DirectX的大多数API都是基于COM结构的。COM为软件模块化和软件重用提供了最坚实的基础,它的最重要的概念就是接口(interface),接口是软件重用的最基本方法。更专业的说,接口是一系列操作的规范描述,即接口规范。

所有的COM接口都是从Iunknown接口继承而来的,IUnknown接口是所有COM接口的根。IUnknown接口具有3个方法:

QueryInterface():此方法查询新接口,并在新接口存在时返回之。

AddRef():此方法在接口或其它应用程序连编到此COM对象上时将引用计数值递加1。

Release():此方法将COM对象的引用计数递减1。当引用计数递减到0时,该COM对象自动释放。

所有COM对象都具有这三个方法。虽然DirectX应用程序一般不需要考虑引用计数的问题,但引用计数确实是存在的,它已经由DirectX自动完成了。我们所要做的,就是创建DirectX对象,然后在使用完毕后调用Release方法释放引用。

07数字媒体 向兵 2074020219

OpenGL即是Open Graphics Libraries的缩写,它是一套「计算器三维图形」处理函式库,由于它是由各家显示厂商所共同定义的共通函式库,所以它也是绘图成像的工业标准。

OpenGL是个与硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进

行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于 OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等 3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。

OpenGL可分为程序式(Procedual)与非描述式(descriptive)两

种的绘图API函式,使用者不须要直接描述一个场景,而只须要规范一个外观的特定效果之步骤。OpenGL在处理绘图影像要求的时候,可以将它归纳成两种方式来呈现:

07数字媒体 向兵 2074020219

软件要求:

硬件要求:

07数字媒体 向兵 2074020219

OpenGL的基本运作:

由上图可得知,当OpenGL在处理绘图数据的时候,它会将数据填满整个缓冲区,而这个缓冲区内的数据包含指令、坐标点、材质信息等等,再由指令控制或缓冲区被清空(Flush)的时候,将数据送往下一个阶段里去做处理的动作。

OpenGL这个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。

本文标签: 接口图形提供