DirectX发展史

DirectX发展史
DirectX发展史

DirectX发展史及DirectX10.0

如果说PC用户不会不认识Windows操作系统的话,那么游戏用户也不会不知道DirectX的大名。想必大家都还记得1996年时微软随红色警戒、FIFA96等经典游戏一起发行的DirectX 3.0吧,当时DirectX是以GameSDK的软件开发工具包形式出现的。但是谁也没有想到的时,经过几年的发展,DirectX竟然成为Windows操作系统极其重要的一部分,也是微软牵制众多硬件厂商的致命法宝。DirectX整合了Direct3D接口,使得3DFX苦心经营多年的Glide3D接口灰飞烟灭。微软在退出OpenGL组织之后,Direct3D也以迅雷不及掩耳之势成为3D接口的绝对主流。对于显示芯片厂商和游戏厂商而言,遵循DirectX API已经成为默认的一道死命令,而如今我们更是进入了DirectX 10时代。

一、DirectX——硬件厂商的竞技舞台

在DirectX普及之前,大多数的游戏都是在DOS下开发的,因为DOS可以直接访问硬件,开发人员几乎无需考虑各种硬件平台对游戏的兼容性。但是Windows将很多系统的底层访问权限都保护起来,一时间,很多开发人员都难以适应。微软清醒地意识到,如果不能全面打开Windows下的娱乐市场,那么Windows始终取代不了经典的DOS。为此,他们提出了HAL(Hardware Abstraction Layer,硬件提取)和HEL(Hardware Emulation Layer,硬件模拟)两项标准。

硬件提取可以让开发人员在编程时丝毫不用考虑硬件的特性,因为它实现了各种硬件的基本接口,真正做到了硬件平台无关性。这点是非常重要的,与目前很热门的JA V A语言有异曲同工之妙。其实在HAL之前,微软也曾提倡过GDI和MCI,但是相对而言HAL无疑更加先进,让人容易接受。HEL的硬件模拟功能让Windows下的游戏跨上了一个新台阶,因为即使我们没有3D加速卡,也可以用过模拟的方式来实现伪3D,这可比平淡无奇的2D 画面要好看多了。

以目前的眼光来看,似乎HAL和DEL都没什么大不了,但是它们确确实实地帮助DirectX站稳脚跟,为以后的蓬勃发展打下坚实的基础。当然仅仅有这些还是远远不够的,随后的DirectX中,微软更是掌握了硬件厂商的命脉。3DFX的倒下固然有nVIDIA崛起的因素,但是另外一大因素应该是3DFX与微软的对立。众所周知,Glide3D是3DFX引以为傲的3D加速接口,当时的确比微软的Direct3D要先进不少。但是由于3DFX死抱着专利,不肯全面开放,因此引起了微软强烈的不满。呵呵,想想Netscape吧,3DFX和他的下场一样。当时大家都说Lunix性能怎么怎么好,因为Voodoo2在这款操作系统略诵蠶uake3比Windows下快很多。但是大家有没有想过,这到底是为什么?难道是庞大的Windows还不如Lunix吗?绝对不是。从3DFX倒闭后状告Microsoft后,我们才知道,原来微软在DirectX 中对3DFX动了手脚。其实我说这些无非是想让大家重视DirectX,因为任何游戏相关的硬件厂商要是被微软抛弃,那么其后果是不堪设想的。

二、回顾历代DirectX API

DirectX经历了多个版本,从最早的DirectX到最新的DirectX 10,每一个版本的出现都会导致一大批支持该新版本DirectX的新游戏出现。但是真正让DirectX开始引人瞩目的版

本是6.0,这也是3D游戏真正进入发展高峰的时期。

1.DirectX 6.0时代

当时主要代表显卡是nVIDIA的Riva TNT系列以及3DFX的V oodoo3系列。DirectX 6.0的特色在于可以渲染出高分辨率下的32位色的3D效果,这也是当时GPU所最为追求的功能。然而坚持采用16位色彩渲染并且排斥AGP总线技术的V oodoo3系列败下阵来,而nVIDIA一开始就使用先进的AGP总线结构与32位色彩渲染,高规格与新技术奠定新的王朝。

除了高分辨率渲染,DirectX 6.0的另外一大特色便是支持标准纹理压缩算法,微软公司从S3公司(先已经被VIA收购)取得S3TC授权并将其加入DirectX 6.0。对于当时的3D游戏而言,如何提纹理效果是一件很头疼的事情,因为与之相配套的3D显卡在性能上无法满足大量纹理的需求,此时使用压缩技术自然是一条捷径

2.DirectX 7.0时代

DirectX 7.0的发布又一次把显卡市场进行重新整合,DirectX 7.0最大的特色就是支持T&L,中文名称是“坐标转换和光源”,这也成就了nVIDIA GeForce 256与A TI Radeon 256的辉煌,令3DFX彻底退出市场竞争。换句话说,拥有T&L的显卡,在配合使用DirectX 7.0之后,即使没有高速的CPU,同样获得相对流畅的速度表现。但是,直到今日,部分集成显卡还是没有硬件T&L单元,完全依靠CPU来模拟。

3.DirectX 8.0时代

DirectX 8.0又一次引领了一场显卡革命,它首次引入了“像素渲染”概念,同时具备顶点渲染引擎Vertex Shader与顶点渲染引擎Pixel Shader,反映在特效上就是动态光影效果。通过Vertex Shader和Pixel Shader的渲染,可以很容易的营造出真实的水面动态波纹光影效果,从而令3D游戏画面质量得到史无前例的提高。然而DirectX 8.0的普及之路并不顺畅,这与巨大的成本压力有着很大关系。nVIDIA的Geforce3 Ti系列迟迟未能在主流市场普及,而后续升级到DirectX 8.1的Geforce4 Ti4200以及Radeon 8500系列也在成本上差强人意。从2001年年初发布DirectX 8.0开始,这项技术直到2003年年末才得到普及!

4.DirectX 9.0时代

其主要特色在于提升了Vertex Shader和Pixel Shader的版本,从而展现出更为强大的性能。DirectX 9.0中还包含了NURBS和Displacement Mapping(置换式贴图)这两项关键的技术。NURBS在3Dmax中是很常见的,但是运用到3D游戏后,我们所看到的画面将更加接近真实。简单地说,NURBS就是专门做曲面物体的一种造型方法,可以用它做出各种复杂的曲面造型和表现特殊的效果,如人的皮肤,面貌或流线型的跑车等。而Displacement Mapping技术借助在平面的多边形上加上一些数据,可以帮材质加上深浅高低的轮廓视觉效果。总体而言,DirectX 9.0是对于DirectX 8.1版本的补充,出现这一现象是因为3D显卡技术的发展滞后于DirectX接口。

从技术角度来看,DirectX 9.0c相对于DirectX 9.0b还是有着很多的变化,不过Microsoft 对于版本提升相当谨慎,因此很多用户都将DirectX 9.0c称作为准DirectX 10。在DirectX 9.0c 架构中,最终要的改进便是引入3.0版本的Pixel/Vertex Shader,并且支持ATI的3Dc纹理压缩技术和nVIDIA主导的HDR技术。

三、惊人的巨变:解析DirectX 10

1.继续加强Shader功能

很多用户都在抱怨3D游戏中的画面总是难以呈现出如同电影般的渲染效果,而此时的罪魁祸首不仅仅是显卡和CPU,本身的渲染方式也是造成低效率的重要原因。在DirectX 10时代,所有的显卡GPU管线将会被赋予更加完善的Shader功能运算。以我们最近经常看到的Shader Model 3.0为例,这仅仅在部分场景才能展现出效果,游戏开发商也不敢大量应用。而当Direct X10要求所有的GPU管线加上丰富的Shader功能运算之后,所谓的Shader将不再是显卡的一些特殊功能,而是一项基本功能,而且贴图效果也将得到极大的改善。

毫无疑问,这将令市场上所有遵循DirectX 10 API标准而设计的显卡甚至集成显卡有着强大的Shader运算能力。一旦拥有如此强大的“群众基础”,游戏开发商也就敢于大量使用这些3D特效。与此同时,微软还增加的DirectX的可编程语法结构,令各种特效的运用更加简易实现,这对于提高3D游戏画面效果将会有巨大的共享。除此以外,Direct X10还支持Shader Model 4.0,意味著它的渲染效果将会进一步提升。事实上,DirectX 10对于画质方面的其它贡献也有不少,其中“Geometry Shader”(几何着色)便是最显著的一点。通过引入新的渲染模型,开发人员可以利用整体多边形渲染加速图形运算,新着色模式将大幅提高很多3D立体作图功能效率,还将允许GPU独立于CPU外完成数据循环工作,使系统完全脱离CPU 束缚。

2.微软推行统一渲染架构

对于微软这样的业界巨头而言,掌握应用接口是头等大事。当年,并不“听话”的3DFX 在推行Glide3D接口方面一意孤行,接过被微软所倡导的Direct3D接口彻底取代。即便是强大的OpenGL组织,微软也可以以退出并力推Direct3D来正面对抗,并且在民用市场取得压倒性的优势。而现在,DirectX 10显然也希望结束DirectX 9时代的尴尬。

微软在DirectX 9中引入的了2.0/2.X/3.0三个版本的Vertex Shader(顶点着色引擎)以及Pixel Shader(像素着色引擎)。这看似是技术的推进,其实是微软在为nVIDIA和ATI两强搭建竞争舞台,而且其中的内耗直接导致技术普及速度减缓,并且利用率降低,更令软件开发商畏首畏尾。而进入DirectX 10时代之后,微软渴望使用统一渲染架构来引领群雄。

所谓统一渲染架构,大家可以直观地理解为将Vertex Shader、Pixel Shader以及DirectX 10所引入的Geometry Shader统一封装。此时,显卡中的GPU将不会开辟独立的管线,而是所有的运算单元都可以任意处理任何一种Shader运算。譬如,在《上古卷轴4埋没》这款游戏中,对于Vertex Shader的要求非常高,而此时大量显卡的Pixel Shader处于闲置状态,Vertex Shader又不堪重负。在微软的统一渲染架构下,既然所有的运算单元都可以处理任何一种运算,那么就能有效避免这种不合理的分配现象。

可是,统一渲染架构真的要普及还为时尚早。一方面,nVIDIA并不买账,而A TI也对此不“感冒”。此外,即便是微软今后强迫普及统一渲染架构,这也需要显卡GPU厂商进行新的研发。目前主流GPU都已经在两年前进入研发阶段,所以采用统一渲染架构几乎是不可能的,甚至连DirectX 10的执行效率都无法得到保障。当然,我们并非否认微软统一渲染架构的技术领先性,而是得客观承认当前的现状。

3.理解流水线真正概念:Pixel Shader+TMU+ROP

在讨论显卡GPU的流水线之前,我们想先让大家了解一下3D游戏的制作过程,这对于理解后续的流水线概念将有很大的帮助。事实上,3D游戏初期的开发就好象一部电影:游戏策划、剧本撰写、角色圈定等等,在确定主角的造型风格之后,制作厂商将把原画交给3D建模部门。至此,3D工作正式开始,此时需要处理纹理,后期混合等等,具体的工作内容就是构造顶点、几何变换(Transform)、光照(Lighting)、设定(Setup)、光栅化(Rasterize)等。

对于传统的图形芯片,以上的一些工作全部由CPU代为执行。到了3D时代,GPU作为图形处理单元开始承担更多的工作,因此我们也开始接触纹理贴图、像素渲染等概念。然而时至今日,GPU已经发展得更为全面,其所谓的流水线作为一个完全的处理单元而存在,几乎每一款GPU都内置了多个流水线。

不过值得指出的是,不同时代对于流水线的定义完全不相同。如今我们对于一条流水线定义是“Pixel Shader(像素着色器)+TMU(纹理单元)+ROP(光栅化引擎,ATI将其称为Render Back End)。从功能上简单的说,Pixel Shader完成像素处理,TMU负责纹理渲染,而ROP则负责像素的最终输出,因此,一条完整的传统流水线意味着在一个时钟周期完成1个Pixel Shader运算,输出1个纹理和1个像素。以GeForce 6600LE为例,一块传统的4流水线构架显卡(4X1)在一个时钟周期内完成4个Pixel Shader运算,输出4个纹理和4个像素。

在3D游戏工作时,其实Pixel Shader、TMU以及ROP部分都非常重要。让我们回想一下当年《FIFA98》等老一代3D游戏,当时三角形生成能力是最为看重的,基本没有应用到纹理贴图与像素着色,真正的工作部分是被成为顶点生成器的单元,而且也可以由CPU来模拟执行。但是发展到DirectX 6与DirectX 7时期,大量3D游戏开始追求更加丰富真实的表面效果,此时贴图技术则迅速普及,如何提供强大的纹理填充率成为关键。至于DirectX 8之后的时代,像素处理则异军突起并且展现出令人惊艳的画质。相对而言,ROP的概念比较难理解,这实际上是像素结果输出处理器负责像素的最终输出,执行像素读/写操作、Z-buffer检查、色彩混合、抗锯齿操作等。

4.DirectX 10核心:追求像素渲染

进入DirectX 9时代以后,Pixel Shader技术开始应用得十分普遍,此时显卡能否提供更多的像素渲染管线成为关键因素。当然,造成GPU开始追求更多像素渲染管线的因素绝不仅仅是3D游戏普及化应用Pixel Shader,Pixel Shader本身版本的提升也是一个重要原因。单流水线内置一条像素渲染管线在DirectX8游戏横行的时代是比较合理的,因为DirectX8

的Pixel Shader1.3允许的着色器程序比较短,此时单流水线内的多个像素渲染管线无法发挥并行工作的优势。然而DirectX9时代的Pixel Shader 2.0/3.0则全然不同,更长的着色器程序指令让多个像素渲染管线有了用武之地。

当然,我们也并非单纯否定TMU纹理填充单元的作用。但是也应该清楚地意识到,随着纹理压缩以及Z缓存技术的不断成熟,再加上显存带宽越来越出色,TMU逐渐摆脱了性能瓶颈,此时自然也就无需在单流水线中集成多个TMU单元。而与此同时,ROP也在数量上足以满足GPU的需求,因此也没有随着像素渲染管线数量的递增而不断增长。

按照ATI和nVIDIA对于未来3D游戏技术的预测,今后像素渲染将会越来越得到重用。在2001年刚刚出现具备像素着色器的显卡时,当时游戏的像素着色器程序中算术指令和纹理指令数量的比例在1:1左右,打这以后,算术指令的数量呈显著增加之势。在2007年,游戏中每个像素的平均着色器程序指令数目是30条,算术指令和纹理指令数量平均比率达到了5:1,也就是说现在的像素着色器程序中,平均每5条算术指令才会出现一条贴图指令,而这样的算术指令数量急剧增长趋势仍将继续保持下去。

四、写在最后:DirectX 10最终受益者是谁?

DirectX已经成为3D技术竞争的舞台,任何一项先进的硬件技术都必须在DirectX API 的支持下才能发挥威力。从未来的发展趋势来看,伴随着DirectX的成熟,3D游戏对于硬件的利用效果将会很快提高,届时真正的电影级游戏效果或许就真的离我们不远了。在整个DirectX 10时代,其实并没有哪一个受害方,因为即便是nVIDIA和ATI,不断的产品更新依然会给他们带来巨大的利润,而Microsoft永远是干着保赚不赔的大买卖,让Windows Vista 的强势地位更加巩固。对于消费者而言,DirectX 10时代将会看到更加出色的3D渲染效果,只不过我们又得升级显卡了。

DirectX是什么

常用电脑的朋友应该对DirectX都不会感到陌生,游戏不能玩了,升级DirectX便可解决;图片显示效果不好,升级DirectX也可以解决问题。很多问题都跟DirectX有关,那么这个DirectX到底起到了什么作用?为什么很多软件都必须依赖它才可能呢? DirectX是一种应用程序接口,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。这样说是不是有点不太明白,其实从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。 举个例子吧,骨灰级玩家(玩游戏比较长的)在DOS下玩游戏时,可不想我们现在,安装上就可以玩了,他们往往首先要先设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入于输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋,而且对游戏开发者来说就更头痛了,因为为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的API(应用编程接口)来写不同的驱动程序,这对于游戏制作公司来说,是很难完成的,所以说在当时多媒体游戏很少。微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口??DirectX,只要这个游戏是依照Directx来开发的,不管你是什么显卡、声卡、统统都能玩,而且还能发挥更佳的效果。当然,前提是你的显卡、声卡的驱动程序也必须支持Directx才行。

DirectX的简单使用

MFC中DirectX的使用 一、Direct3D的使用:渲染背景 (1) 1、首先 (1) 2、声明变量 (1) 2.1点精灵方式贴入 (1) 2.2绘制四边形模型,图片以纹理方式贴入 (3) 二、DircetInput的使用(俗称五部曲) (5) 1、声明变量 (5) 2、函数 (6) 三、DirectSound的使用 (7) 1、变量声明 (7) 2、函数 (7) 一、Direct3D的使用:渲染背景 1、首先 头文件:#include #include 库文件:(当然最初要先把文件导入到工程中:VC2008版本从工具中选项卡选择属性找到VC++目录,然后添加包含文件和库文件;若是VC2010在类视图窗口鼠标右击工程文件选择属性找VC++目录) #pragma comment(lib, "d3d9.lib") #pragma comment(lib, "d3dx9.lib") 2、声明变量 添加图片是以纹理方式贴入,用的是点精灵贴入。(当然也可以通过构造模型载入纹理)2.1点精灵方式贴入 LPDIRECT3D9 m_D3D; //d3d对象指针 LPDIRECT3DDEVICE9 m_D3DDevice;//d3d设备对象指针 LPDIRECT3DTEXTURE9 g_pTex; //纹理 LPD3DXSPRITE g_pSprite; //点精灵 //在mainFrame类中,初始化D3D,(因为初始化时用到窗口句柄HWND参数,这里直接使用的是MainFrame的窗口句柄m_hWnd。 在CView类中用它的句柄试过,好像不行****,若直接获取MainFrame窗口句柄://CMainFrame* frame =(CMainFrame*)AfxGetApp()->m_pMainWnd; //HWND hWnd = frame->m_hWnd;

DirectX技术_01

#include #include struct CUSTOMVERTEX { FLOAT x, y, z, rhw; DWORD colour; }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE) #define SafeRelease(pObject) if(pObject != NULL) {pObject->Release(); pObject=NULL;} BOOL InitWindow(HINSTANCE hInstance, int nCmdShow,TCHAR *pszClassName ); HRESULT InitD3D(HWND hWnd); HRESULT InitVertexBuffer(); void Render(); void CleanUp(); LRESULT CALLBACK WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); LPDIRECT3D9 g_pD3D = NULL; LPDIRECT3DDEVICE9 g_pD3DDevice = NULL; LPDIRECT3DVERTEXBUFFER9 g_pVertexBuffer = NULL; int iStyle;

int WINAPI WinMain( HINSTANCE hInstance, Windows分配的实例句柄,理解为程序运行时windows所给与的ID标示 HINSTANCE hPrevInstance, 在win32应用程序中已经遗弃了,始终为NULL LPSTR lpCmdLine, 程序执行时所带的命令行参数 int nCmdShow) 窗口的显示方式(最大化or最小化)//Windows窗口应用程序的入口函数 { MSG msg; typedef struct tagMSG { HWND hwnd; 接受消息的窗口句柄 UINT message; 消息类型 WPARAM wParam; 附加的参数,根据不同类型消息有不同的含义 LPARAM lParam; 附加的参数 DWORD time; 消息放入消息队列中的时间 POINT pt; 消息放入消息队列时的鼠标位置 }MSG, * PMSG ; TCHAR *pszClassName = TEXT("DrawPrimtive"); if (!InitWindow(hInstance,nCmdShow,pszClassName)) { CleanUp(); return FALSE; }

18秋学期(1703)《DirectX程序设计》在线作业

一、单选题 1 Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:A、WM_CREATE B、WM_COMMAND C、WM_MENU D、WM_BUTTON [选择]:B 满分:2 2 ()是一个由相互连接的线段组合成的造型,程序可用它产生不封闭的多边形。 A、点列表 B、线段列表 C、线段条带 D、三角形列表[选择]:C 满分:2 3 利用模板缓存来阻止对后台缓存村长哦功能某些特定区域进行绘制,判定是否将某个像素写入后台缓存的决策过程称为()A、模板测试B、深度缓存C、深度测试D、Alpha测试[选择]:A 满分:2 4 ()是图形中最基本的几何对象。A、点B、线C、向量D、三角形[选择]: A 满分:2 5 灵活顶点格式是描述顶点的()属性。A、顶点坐标B、顶点数据相关属性C、法线方向D、纹理坐标[选择]:B 满分:2 6 模板限制中,[…]表示()A、开放的B、闭合的C、受限的D、半开放的[选择]:A 满分:2 7 ()的功能是对进入管线的每一个像素点进行着色处理A、像素着色器B、着色器C、顶点着色器D、可编程着色器[选择]:A 满分:2 8 DirectX主要由硬件抽象层和硬件模拟层所构成,其中硬件模拟层的缩写为()。 A、HAL B、HCL C、HEL D、HEC [选择]:C 满分:2 9 替换顶点处理的部分叫做()A、像素着色器B、着色器C、顶点着色器D、可编程着色器[选择]:C 满分:2 10 ()为从无限远以特定的方向照射过来的光,光照强度随距离的增加而衰减,此光源不需要设置光源位置、衰减系数和光照作用范围。A、漫反射光B、聚焦光源C、方向光源D、点光源[选择]:C 满分:2 11 三维物体变为二维图形的变换称为( )。A、平行投影B、旋转变换C、投影变换D、缩放变换[选择]:C 满分:2 12 在3DMAX等3D建模工具中创建好模型,模型转换为扩展名为.x的文件,称()A、.X文件B、3d文件C、X文件D、3dMax文件[选择]:C 满分:2 13 Direct3D中采用的纹理过滤方案中,()是采用了“首先取得与计算得到的纹理元素的浮点地址最接近的上、下、左、右4个纹理元素,对这4个纹理元素进行加权平均,得到最终显示的颜色值”思想的纹理过滤方案。A、线性过滤(linear filtering) B、最近点采样(nearest point sampling) C、各向异性过滤(anisotropic filtering) D、mipmap过滤(mipmap filtering) [选择]:A 满分:2 14 ()可以动态地有针对地将某些像素写入后台缓存A、深度缓存B、深度测试C、Alpha测试D、模板缓存[选择]:D 满分:2 15 ()对像素操作,运行于渲染管线的光栅化处理阶段,辅助实现诸如纹理混合、光照模型计算或环境映射等效果A、像素着色器B、可编程着色器C、着色器D、顶点着色器[选择]:A 满分:2

DirectX与显卡性能的关系

DirectX与显卡性能的关系.txt不要为旧的悲伤而浪费新的眼泪!现在干什么事都要有经验的,除了老婆。没有100分的另一半,只有50分的两个人。在3D游戏日益成熟的今天,当前的电脑配件中,没有任何配件的发展速度可以能与图形芯片的发展速度相提并论,显示卡是目前更新换代的速度是最快的。自第一片的3D显示卡从3dfx的实验室诞生,就预示着他的出现将大幅拉近现实与梦想之间距离,让游戏环境更接近于自然环境,3D概念革命也必将席卷整个显示卡行业。可是在我们享受这些逼真的游戏环境、感叹游戏中3D世界的精明时候,是否想到3D图形显示芯片后面还有几个幕后的英雄?画面的美轮美奂与自然逼真其实离不开OpenGL和DirectX这两位幕后的英雄。 今天这里主要讨论一下DirectX对显示性能的影响,在说起DirectX前,先回顾一下DirectX的发展历程。DirectX是一种图形应用程序接口(API),简单的说它是一个辅助软件,一个提高系统性能的加速软件,微软创建开发的。它的意思不难理解,Direct是直接的意思,X是很多东西,加在一起就是一组具有共性的东西,这个共性就是直接。微软定义它为“硬件设备无关性”。DirectX主要由以下几个部分组成: 1、DirectDraw(2D绘图) 2、Direct3D(3D绘图) 3、DirectSound(声音相关) 4、DirectMusic(MIDI相关) 5、DirectInput(输入相关) 6、DirectPlay(网络相关) 7、DirectSetup(Setup相关) 8、DirectShow(动画播放) 9、DirectAnimation(整合动画环境) DirectX的第一个版本DirectX1.0的发布是Window95问世后,从那个时候开始微软开始根据硬件制造厂商和游戏厂商合作共同更新升级DirectX的标准。随着DirectX版本的不断升级,它的功能越碓角看螅发展到现在,DirectX已经成为游戏的工业标准。 我们也不要认为DirectX一出来就在显示领域树立了权威,在DirectX7以前,它是默默无闻的,这时候GeForce256首次在桌面产品中引入了T&L技术,而DirectX7凭借对它良好的支持赢得了游戏开发商的广泛认同,开始3D显示领域树立自己的权威了,在DirectX8中,首次引入了Pixel Shader和完善了Vertex Shader,让游戏开发者有了充分发挥想象力的广阔空间,而且DirectX8使用MAX FX的图形引擎,增加了图形引擎在光照效果的处理能力,自此3Dmark2001SE与DirectX8.1一道成为了3D图形显示领域的权威,龙头位置无人能及。2002年底发布了DirectX9.0,更是一鸣惊人,新的PS2.0和VS2.0让游戏显示画面达到游戏

DirectX 11 SDK文档

DirectX 11 SDK文档(一) 分类:Winows API C DirectX2011-04-23 10:23 1373人阅读评论(0) 收藏举报文档applicationnulldirect3dcallback工作 总结 这是一个初步的教程。我们将通过必要的步骤来创建一个Win32 Application。我们创建一个空白的窗口为DirectX 11做准备。 创建窗口 每一个窗口应用程序需要至少一个窗口对象。甚至在开始获得DirectX 11的诸多细节之前,我们的Application必须要有一个工作着的窗口。我们有三个事情要做: 1.注册一个窗口类 WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance,

(LPCTSTR)IDI_TUTORIAL1);//这个是资源图标,需要资源载入 wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_TUTORIAL1); if( !RegisterClassEx(&wcex) ) return FALSE; 2.创建一个窗口对象 g_hInst = hInstance; // 用全局变量来保存应用程序实例句柄 RECT rc = { 0, 0, 640, 480 }; AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, FALSE );//根据窗口风格,以rc为客户区调整整个窗口大小 g_hWnd = CreateWindow( szWindowClass, L"Direct3D 11 Tutorial 0: Setting Up Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance, NULL); if( !g_hWnd ) return FALSE; ShowWindow( g_hWnd, nCmdShow ); 3.检索和调度这个窗口的消息队列的消息

DIRECTX能解决的问题

告诉你DirectX修复工具到底能解决什么问题 DirectX修复工具从发布至今已经过去整整一年的时间了,通过大家的反馈及交流我发现有一部分人并不清楚DirectX修复工具到底可以解决什么问题。虽说网上有众多网友的解释,但毕竟不是很全面,都只介绍了某一方面的应用。因此,在这里,就由作者为大家全面地阐释一下本程序的用途。 本程序可以解决的问题。 No.1 应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。 修复时推荐使用版本:增强版 解决概率:大于95%(使用V3.0及以上版本) 由于本程序主要针对0xc000007b问题设计,因此把这一条放在了第一位。从目前的反馈情况来看,使用增强版修复该问题时,解决概率可以达到95%以上(仅限使用V3.0及以上版本,使用低版本可能无法

达到这个成功概率)。至于剩下的5%之所以不能解决,是由于有些软件不仅需要DirectX的支持,还需要其他组件的支持,而这些组件异常导致的0xc000007b问题本程序无法解决。还有很少的一部分人遇到了蓝屏问题,其提示代码为0x0000007b,这种情况通常都是由于硬盘设置造成的,因此本程序也无法解决。 No.2 无法启动此程序,因为计算机中丢失 d3dx9_42.dll。尝试重新安装该程序以解决此问题。修复时推荐使用版本:增强版 解决概率:大于99% 这个问题是新系统普遍存在的问题。不管是正版系统还是盗版系统由于默认都未包含DirectX相关组件,因此在首次运行大型游戏时普遍都会遇到这个问题。由于造成这个问题的机理简单,解决办法简单,因此针对该问题的解决概率也较高。除了标题中提到的d3dx9_42.dll文件外,类似的还有以下这些文件。注意,本程序只能解决在以下列表中包

DirectX发展史

DirectX发展史及DirectX10.0 如果说PC用户不会不认识Windows操作系统的话,那么游戏用户也不会不知道DirectX的大名。想必大家都还记得1996年时微软随红色警戒、FIFA96等经典游戏一起发行的DirectX 3.0吧,当时DirectX是以GameSDK的软件开发工具包形式出现的。但是谁也没有想到的时,经过几年的发展,DirectX竟然成为Windows操作系统极其重要的一部分,也是微软牵制众多硬件厂商的致命法宝。DirectX整合了Direct3D接口,使得3DFX苦心经营多年的Glide3D接口灰飞烟灭。微软在退出OpenGL组织之后,Direct3D也以迅雷不及掩耳之势成为3D接口的绝对主流。对于显示芯片厂商和游戏厂商而言,遵循DirectX API已经成为默认的一道死命令,而如今我们更是进入了DirectX 10时代。 一、DirectX——硬件厂商的竞技舞台 在DirectX普及之前,大多数的游戏都是在DOS下开发的,因为DOS可以直接访问硬件,开发人员几乎无需考虑各种硬件平台对游戏的兼容性。但是Windows将很多系统的底层访问权限都保护起来,一时间,很多开发人员都难以适应。微软清醒地意识到,如果不能全面打开Windows下的娱乐市场,那么Windows始终取代不了经典的DOS。为此,他们提出了HAL(Hardware Abstraction Layer,硬件提取)和HEL(Hardware Emulation Layer,硬件模拟)两项标准。 硬件提取可以让开发人员在编程时丝毫不用考虑硬件的特性,因为它实现了各种硬件的基本接口,真正做到了硬件平台无关性。这点是非常重要的,与目前很热门的JA V A语言有异曲同工之妙。其实在HAL之前,微软也曾提倡过GDI和MCI,但是相对而言HAL无疑更加先进,让人容易接受。HEL的硬件模拟功能让Windows下的游戏跨上了一个新台阶,因为即使我们没有3D加速卡,也可以用过模拟的方式来实现伪3D,这可比平淡无奇的2D 画面要好看多了。 以目前的眼光来看,似乎HAL和DEL都没什么大不了,但是它们确确实实地帮助DirectX站稳脚跟,为以后的蓬勃发展打下坚实的基础。当然仅仅有这些还是远远不够的,随后的DirectX中,微软更是掌握了硬件厂商的命脉。3DFX的倒下固然有nVIDIA崛起的因素,但是另外一大因素应该是3DFX与微软的对立。众所周知,Glide3D是3DFX引以为傲的3D加速接口,当时的确比微软的Direct3D要先进不少。但是由于3DFX死抱着专利,不肯全面开放,因此引起了微软强烈的不满。呵呵,想想Netscape吧,3DFX和他的下场一样。当时大家都说Lunix性能怎么怎么好,因为Voodoo2在这款操作系统略诵蠶uake3比Windows下快很多。但是大家有没有想过,这到底是为什么?难道是庞大的Windows还不如Lunix吗?绝对不是。从3DFX倒闭后状告Microsoft后,我们才知道,原来微软在DirectX 中对3DFX动了手脚。其实我说这些无非是想让大家重视DirectX,因为任何游戏相关的硬件厂商要是被微软抛弃,那么其后果是不堪设想的。 二、回顾历代DirectX API DirectX经历了多个版本,从最早的DirectX到最新的DirectX 10,每一个版本的出现都会导致一大批支持该新版本DirectX的新游戏出现。但是真正让DirectX开始引人瞩目的版

DirectX到底起到了什么作用

DirectX到底起到了什么作用? 电脑知识常用电脑的朋友应该对DirectX都不会感到陌生,游戏不能玩了,升级DirectX 便可解决;图片显示效果不好,升级DirectX也可以解决问题。很多问题都跟DirectX有关,那么这个DirectX到底起到了什么作用?为什么很多软件都必须依赖它才可能呢? 什么是DirectX DirectX是一种应用程序接口,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。这样说是不是有点不太明白,其实从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。 举个例子吧,骨灰级玩家(玩游戏比较长的)在DOS下玩游戏时,可不想我们现在,安装上就可以玩了,他们往往首先要先设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入于输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋,而且对游戏开发者来说就更头痛了,因为为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的API(应用编程接口)来写不同的驱动程序,这对于游戏制作公司来说,是很难完成的,所以说在当时多媒体游戏很少。微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口??DirectX,只要这个游戏是依照Directx来开发的,不管你是什么显卡、声卡、统统都能玩,而且还能发挥更佳的效果。当然,前提是你的显卡、声卡的驱动程序也必须支持Directx才行。

DirectX教程

DirectX 8 教程 著 Andy Pike https://www.360docs.net/doc/5212661985.html, 译 Aman JIANG https://www.360docs.net/doc/5212661985.html, 第一章: 准备就绪 What you will need(你需要什么) ?DirectX 8.0 SDK (可以从http://m https://www.360docs.net/doc/5212661985.html,/directx下载) ?VC6(SP5)/https://www.360docs.net/doc/5212661985.html, ?Windows 程序设计经验 ?通晓 C++和OOP Introduction(序) (原著的话) 欢迎阅读本DX教程。本教程至少能帮你入门、使你了解怎样用DX8 来开发Windows游戏。我写这个教程的原由有二:首先,当出现DX时,我还是一个初学者。所以,我想边学习边写一个教程来锻炼自己。其次,对初学者来说,DX SDK 并不是很有帮助。而且,网上也没有什么像样的Dx8教程。另外,就像上面我提到的,我也是个初学者,所以,如果你发现教程中有什么地方不对,请给我写信:webmaster@https://www.360docs.net/doc/5212661985.html,。 译者言 我也是一名初学者,所以,有言在先:如果你读英文能如履平地,建议你还是去读原著。此教程很适合入门,等你入门以后,你会发现,其实一切并没有想象的那样复杂。这是个不错的Dx8教程,我会尽最大努力把它翻译好。注:我并没有完全按照原著来译,不适之处,请多包涵。嗯,你应该弄到教程附带的源代码,没有那个可不行!可以到https://www.360docs.net/doc/5212661985.html,去下载。欢迎指出我的错误,或与我联系,我的Email:Chaoyu_JIANG@hot https://www.360docs.net/doc/5212661985.html, or Am an_JIANG@https://www.360docs.net/doc/5212661985.html, , QQ:15852673。 COM What is COM? COM 是什么呢?COM 就是 Component Object Model, 组件对象模型。COM 接口和C++的抽象类相似(但不一样),就像抽象类没有与之相关的实际代码一样,COM描述了一套符号和语法而非实现过程。你也可以把 COM 对象就想象成一套为某个主题而设计的一整套库函数。DX 就提供了一套完整的设计3D游戏的库。最棒的就是,使用DX时,你不必去直接接触硬件,而由DX帮你代理了。这使得一些事情变得简单了。 使用 COM 时应该注意,必须在程序结束前释放所有的 COM 对象(或接口)。而且,释放它们的顺序应该和创建 它们的顺序相反。就像这样: 1. Create interface A. 2. Create interface B. 3. Release interface B. 4. Release interface A. 调用它们的 Release 模块来释放它们。 Page Flipping (页翻动) 页翻动又是什么呢?嗯,你知道电影的原理吗?电影通过以每秒钟24幅的速度连续的闪动图像,每幅图像之间的差别又很小,由于人眼的滞留作用,我们看到的画面就是连续的了。这不难理解。其实,DirectX 也是这样工作的。我

DirectX和游戏引擎的区别

玩游戏这么多年都没有关心过经常见到的Directx和游戏引擎到底是什么东西,今天抽时间在网上查了相关资料,加上我的专业背景知识在这里尽我所能把这些复杂相关的名词进行简练的剖析。下面的话可能学嵌入式系统的人更加容易理解(同时具备软硬件知识的人) DirectX是一种应用程序接口(API),说白了就是显卡的驱动程序,在游戏开发中需要应用到相关的显卡功能(譬如图形渲染等)时,就需要调用DirectX库中的相关驱动函数来启动显卡的GPU进行相关操作,其实这和我们经常使用的一些驱动程序没有什么本质上的区别。不过随着技术的发展,诞生了许多新的图形处理技术(主要在图形处理芯片的硬件上来实现),则DirectX也需要不断地更新来支持这些新的功能,以便能发挥更好的多媒体处理效果(更逼真的图形,更流畅的运行速度,更加好的声音效果)。所以对于一款基于DirectX 开发的游戏,想要支持最先进的技术开发必须满足三个条件(第一:有拥有这种技术的图形处理芯片(GPU),这是在硬件上的实现,第二能调用GPU这种功能的DirectX版本,这是在软件接口上的实现第三当然是你开发的游戏应用程序使用了DirectX这是在上层应用软件上的实现 我们可以把游戏的引擎比作赛车的引擎,大家知道,引擎是赛车的心脏,决定着赛车的性能和稳定性,赛车的速度、操纵感这些直接与车手相关的指标都是建立在引擎的基础上的。游戏也是如此,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直接控制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同时、有序地工作。简单地说,引擎就是“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。”这是百度百科上面的一段话,说的很形象。我发表一下我的看法。 游戏引擎就像是游戏开发中可以重复利用的一个模版一样,譬如说想构造一个城市,你需要为这个城市设计不同的建筑,设计不同形象的居民,设计这些人物彼此间的关系以及他们的行为等。那么你可以将构造的建筑和人物模型通过运用游戏引擎并不费力将他们组装在一起,这就形成了一个活生生城市的雏形,然后你再根据需要修改游戏引擎中某些细节的部分,这样你的设计就完成了,你不再需要从头到尾编写复杂的运行代码,很多技术上的问题,游戏引擎都已经帮你实现了,你要解决的是如何应用它为你的构想服务。 我们如果想要使用游戏引擎开发基于DirectX的游戏,那么这款游戏引擎必须要支持DirectX,因为在很多需要通过GPU解决的图形方面的问题上,当你使用游戏引擎的时候,游戏引擎的内部代码也就是调用了DirectX来进行操作。当然在其他很多方面游戏引擎并不需要DirectX,但是这可能涉及到使用CPU就能处理的问题,总的来说DirectX和相关游戏引擎是密不可分,它们的结合就形成了游戏开发的良好平台,给你平台,你要做的就是如何在上面跳出一段优美的舞蹈来。

directx从入门到精通(direct简介)

返回总目录 第一篇 DirectX

目录 第一章 DirectX简介 1.1 DOS已经过时 1.2 加速DirectX 1.3 加速计算机工业 1.4 Directness原理 1.5 Direct结构 1.6 DirectX组件 1.7 小结 第二章基础 2.1 期望什么 2.2 COM(对象组件模型)入门 2.3 编程经验 24 2.4 调试DirectX 2.5 总结 第三章开始使用DirectX 3.1 安装 3.2 文档

3.3 例子程序源代码3.4 其他有用的信息3.5 使DirectX开始工作3.6 总结

第一章 DirectX简介 到目前为止,Microsoft Windows下的计算机游戏还没有一个辉煌的历史──它的成功还受到多媒体技术方面的限制。Windows所提供的应用程序和PC平台之间的设备独立性使得游戏和多媒体开发者备受压力,这是因为设备独立性技术使得软件和硬件之间增添了许多中间层次,因此要想在Windows平台上生成平滑、快速的动画和紧凑、实时的输入和声音是非常困难的。Windows的中心思想就是要把开发者和应用程序从硬件中分离出来,但这一点对于那些想直接操作硬件而获得最大速度的游戏开发者来说是致命的。市场需要的是高性能的游戏,因此,对于那些想把Windows作为计算机游戏平台的推广者来说,“DOS!DOS!DOS!”是他们经常遇到的对DOS游戏的赞歌! 1.1 DOS已经过时 然而,MS-DOS也有它自已的问题,其中最棘手的是硬件设备的支持。PC机的游戏开发者是不能享受到游戏机开发者的那种平台一致性的。对于游戏机软件开发者,他们晚上可以睡得很香,因为白天所写的代码将在上百万台同样的机器上运行。而PC机的开发者却不能这样,他们老是梦见新

DirectX程序设计

《DirectX程序设计》在线练习题(100分)知识点题型题目内容可选项答案 顶点变换单选 题 ()变换后的的几何体位于观察 坐标系中。 局部变换##取景变换## 世界变换##空间变换 B 着色器概 述单选 题 ()的功能是对进入管线的每 一个像素点进行着色处理 像素着色器##着色器## 顶点着色器##可编程着 色器 A 单选 题 ()对象是用来指定字体属性 的。 A LPDIRECT3D9 B LPD3DXFONT C LPDIRECT3DDEVICE9 D RECT B 像素着色器概述单选 题 ()对像素操作,运行于渲染 管线的光栅化处理阶段,辅助 实现诸如纹理混合、光照模型 计算或环境映射等效果 像素着色器##可编程着 色器##着色器##顶点着 色器 A Direct3D 中的光照单选 题 ()光垂直于物体时比倾斜时更 明亮。 漫反射光##环境反射光 ##镜面发射光##自发光 A 单选 题 ()光源的发光区域是一个圆锥 体。 A点光源 B方向光源 C聚焦光源 D混合光 源 C 单选 题 ()缓存方式通常被放置在显存 中,其中的数据能被有效地处 理。 A动态缓存 B静态缓 存 C两种都可以 D两种 都不可以 B 单选 题 ()可以动态地有针对地将某 些像素写入后台缓存 A深度测试 B深度缓 存 C Alpha测试 D模板缓 存 D 点和向量单选 题 ()可以用来判断向量叉乘值的 方向。 左手定则##右手定则## 左手坐标系##右手坐标 系 B 深度缓存与深度测 试单选 题 ()是Direct3D用来存储绘制 到屏幕上的每个像素点深度信 息的一块内存缓冲区 广度缓存##深度缓存## 深度测试##广度测试 B 单选 题 ()是HAL设备的变体,只支持 硬件顶点处理。 A在不同设备上的混合 顶点处理模式 B纯软 件模式 C在同一设备上的混合 顶点处理模式 D纯硬 件模式 D 单选 题 ()是Win32编程的基础。 A消息机制 B窗口过 程 C消息机制或窗口过程 D

DirectX修复工具 v2.1 增强版

DirectX修复工具 v2.1 增强版 软件大小: 113.91 MB 软件语言: 简体中文 整理时间: 2012/5/19 9:45:11 授权方式: 免费版 软件性质: 国产软件 软件分类: 系统程序/系统辅助 运行环境: WinXp,Win2003,WinVista,Win 7,Win2000

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 DirectX修复工具(DirectX Repair)的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复。程序主要针对0xc000007b问题设计,可以完美修复该问题。本程序中包含了最新版的DirectX redist(Jun2010),并且全部DX文件都有Microsoft的数字签名,安全放心。 DirectX修复工具(DirectX Repair)为了应对一般电脑用户的使用,采用了傻瓜式一键设计,只要点击主界面上的“检测并修复”按钮,程序就会自动完成校验、检测、修复以及注册的全部功能,无需用户的介入,大大降低了使用难度。 DirectX修复工具(DirectX Repair)适用于多个操作系统,如Windows XP(需先安装.NET 2.0,详情请参阅“致Windows XP用户.txt”文件)、Windows Vista以及Windows 7,同时兼容32位操作系统和64位操作系统。本程序会根据系统的不同,自动调整任务模式,无需用户进行设置。 DirectX修复工具(DirectX Repair)采用了多线程编程技术,可充分利用系统的资源,减少时间的等待。同时,针对部分低性能电脑,也做了一定程度的优化。 DirectX修复工具(DirectX Repair)的V1.2版分为精简版、标准版以及增强版。其中的精简版仅包含部分DirectX 组件,适合高级用户使用,精简版可以有针对性的减少程序的体积。但要注意,必须在程序“选项”中勾选“允许

编程入门:DirectX 9.0 学习笔记

【简介】 DirectX(简称:DX)是微软推出的一套基于Windows系统的多媒体应用程式接口APIs函式。在开发中,DX分为两个部分,一个是运行库,通过DX编译出来的程式必须要有运行库的支持,另外一个是开发库,也就是常说的SDK,这部分是在编译DX程序中是必需的。 3、DirectX 9.0 家族的所有成员 DirectX Graphics:集成了以前的DirectDraw 和Direct3D技术。DirectDraw主要负责2D加速,以实现对显卡内存和系统内存的直接操作;Direct3D主要提供三维绘图硬件接口,它是开发三维DirectX 游戏的基础。 DirectInput:主要支持输入服务(包括鼠标、键盘、游戏杆等),同时支持输出设备。 DirectPlay:主要提供多人网络游戏的通信、组织功能。 DirectSetup:主要提供自动安装DirectX组件的API功能。

DirectMusic:主要支持MIDI音乐合成和播放功能。 DirectSound:主要提供音频捕捉、回放、音效处理、硬件加速、直接设备访问等功能。 DirectShow:为Windows平台上处理各种格式的媒体文件的回放、音视频采集等高性能要求的多媒体应用,提供了完整的解决方案。 DirectX Media Objects:DirectShow Filter 的简化模型,提供更方便的流数据处理方案。 4、DirectShow的由来 DirectShow是从DirectX6.0中的DirectX Media 发展而来的,它集成了DirectX家族中其他成员(DirectDraw、DirectSound等)的技术。DirectX Media Objects是从DirectX8.1的DirectShow中分离出来的,成为了另一种高效率的流数据处理解决方案。 5、程序开发包的选择 请问在Mirosoft DirectX主页上的下载连接有如下:

《DirectX程序设计》复习资料-史广顺

一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分 1、1、()是图形中最基本的几何对象。 A.点 B.线 C.向量 D.三角形 ★考核知识点: 点和向量 2、 ()可以用来判断向量叉乘值的方向。 A.A.左手定则 B.右手定则 B.C.左手坐标系 D.右手坐标系 ★考核知识点: 点和向量 3、三维物体变为二维图形的变换称为()。 A.平行投影 B.旋转变换 C.投影变换 D.缩放变换 ★考核知识点: 矩阵与坐标变换 4、 ()是用于定义构成物体的三角形单元列表的坐标系。 A.A.世界坐标系B.本地坐标系 B.C.观察坐标系D.屏幕坐标系★考核知识点: 坐标系 5、5、()是HAL设备的变体,只支持硬件顶点处理。 A.纯软件模式

B.在不同设备上的混合顶点处理模式 C.在同一设备上的混合顶点处理模式 D.纯硬件模式 ★考核知识点:Direct3D底层结构概述 6、6、()是应用程序第一个创建而最后一个释放的对象。 A.A.Direct3D设备对象 B.COM组件对象 B.C.Direct3D对象D.类工厂对象★考核知识点: Direct3D底层结构概述 7、7、()是Win32编程的基础。 A.消息机制 B.窗口过程 C.消息机制或窗口过程 D.消息机制和窗口过程 ★考核知识点: Win32+C+Direct3D的基础框架 8、以下哪个释放顺序是正确的(B)。 A.Direct3D对象、Direct3D设备对象 B.Direct3D设备对象、Direct3D对象 C.顺序任意 D.无需释放 ★考核知识点: Win32+C+Direct3D的基础框架 9、Win32程序中利用()进行消息的捕获和处理. A.循环函数 B.递归函数 C.回调函数 D.静态函数 ★考核知识点: Win32+C+Direct3D的基础框架 10、 ()对象是用来指定字体属性的。 A.A.LPD3DXFONT B.LPDIRECT3D9 B.C.LPDIRECT3DDEVICE9 D.RECT ★考核知识点: Win32程序框架实现

图形设备接口DirectX 图形接口指南

图形设备接口:DirectX 图形接口指南 疯狂代码 https://www.360docs.net/doc/5212661985.html,/ ?: http:/https://www.360docs.net/doc/5212661985.html,/GameDevelopment/Article35957.html 译者申明: 这些指南是我在阅读 DirectX8.1 SDK 中逐步翻译出来对于初次接触 DirectX Graphics 编程者而言这应该是很好上手资料其实本人就是从这些指南开始深入 Direct3D8.1 ;由于这是本人第次翻译英文材料言语不通词不达意的处定很多些术语也译得很勉强请见谅 此外需要转载此文者请保留以下部分: ----------------------------------------------------------------------- DirectX图形接口指南 译者:In355Hz 电子邮箱: In355Hz@https://www.360docs.net/doc/5212661985.html, ----------------------------------------------------------------------- DirectX 图形接口指南: (应用于 DirectX 8.1 版 C/C 编程) 本区域指南将介绍说明如何在 C/C 中使用 Microsoft Direct3D 和 Direct3DX 完成些普通工作这些工作总是被分解成若干个必要步骤在某些情况下为了使表达更清楚些步骤还被细分成几个子步骤 本区域提供指南有: · 指南:创建设备 · 指南 2:演示顶点 · 指南 3:使用矩阵 · 指南 4:创建和使用光源 · 指南 5:使用纹理映射

· 指南 6:使用Mesh模型 提示:指南中出现举例代码来自于每个指南具体提供路径里源文件 这些指南中源代码是用 C 写成如果使用C编译器你必须适当改变这些文件使它们能够编译通过最少你需要加入vtable 然后用它引用接口 包含在举例代码中些注解可能和来自 Microsoft Platform Software Development Kit (SDK) 中源代码区别这些改变仅仅为了简化表述并且只限于注解中这样能够防止举例行为被改变 指南:创建设备 为了使用 Microsoft Direct3D你首先需要创建个应用窗口并紧接着创建和化 Direct3D 对象你应该使用这些对象提供 COM 接口来操纵它们以及创建描绘个场景所必需其它对象本指南包含 CreateDevice 举例将例示并介绍说明以下几个工作:创建 Direct3D 设备并且绘制个简单蓝色屏幕 这个指南使用以下步骤:化 Direct3D绘制场景以及最后清理和关闭 ·步骤:创建个窗口 ·步骤 2:化 Direct3D ·步骤 3:处理系统消息 ·步骤 4:绘制和显示场景 ·步骤 5:关闭和清除

Windows DirectX诊断工具

dxdiag 目录 编辑本段 Dxdiag是Windows的DirectX诊断工具,最早作为DirectX6.0的一部分,在1998年8月发布。。它可 以显示您的计算机上DirectX相关的文件,检查正在运行的文件、输入设备、以及视频驱动程序版本。他还可以用来诊断和测试 DirectPlay、DirectSound、DirectMusic、DirectDraw和Direct3D的功能。 DirectX是微软公司开发的一整套API接口方案,用来驱动高速多媒体和游戏,它是Windows的核心技术。在DirectX以前,微软曾经在WindowsNT 平台上使用OpenGL。当时,OpenGL需要“高端”硬件并且着重于工程和CAD 应用,而Direct3D作为OpenGL的轻量级伙伴,着重于游戏应用。随着3D 游戏兴起,OpenGL逐渐包含了对游戏类交互多媒体应用更好的编程支持,从而为开发者提供OpenGL或者Direct3D作为3D图形API的选择。DirectX 在系统后台运行,可以大大加快计算机的处理音频和视频内容。你很少需要考虑它,除非需要知道您的系统详细规格。这就是DirectX诊断工具DxDiag的用场。当然,你也可以用DxDiag来检查并排除DirectX的故障。 DirectX诊断工具对您的计算机进行一次快照,并显示它所找到的信息。

要运行DirectX诊断工具,单击开始,然后选择菜单项运行,在运行对话框中,输入: dxdiag,单击确定。然后,DirectX诊断工具就会被加载,会出现Dxdiag对话框。(在此过程中,可能需要下载WHQL认证) DirectX的主要组成部分 Direct3D使计算机上的三维动画成为可能。Direct3D旨在提供计算机的显卡和进行3D物体渲染的软件之间强大的联系。你的计算机处理动画的速度越快,三维物体、光照和运动在显示器上的便显得越真实。 DirectDraw这用来帮助生成二维视觉特效。在发送完成的可视化图像到显示器之前,显卡和许多软件程序之间使用DirectDraw进行交互通信。电脑游戏、2D图形包和Windows系统功能都需要使用DirectDraw。 DirectSound这提高了音频效果的性能,并且使许多音频混合和回放的微妙效果成为可能。它提供了软件程序和计算机硬件之间的联系。DirectSound为多媒体程序,例如游戏和电影,提供了硬件加速、混合能力以及访问声卡的能力。 使用Windows DirectX诊断工具Dxdiag 下面列表包含了Dxdiag里面各个标签的描述。 系统 (System) 系统标签提供您的计算机系统的信息,以及计算机上安装的DirectX 版本。 DirectX文件 (DirectX Files) DirectX文件标签列出安装在计算机上的DirectX文件名和版本号,以及许多在DirectX下运行的游戏使用的通用文件的文件名和版本号。 如果DirectX诊断工具检测到有问题的DirectX文件,则出现警告讯息。 显示 (Display) 显示标签上列出您目前的显示设定,并允许您禁用DirectDraw,Direct3D和AGP纹理加速。此标签也允许测试DirectDraw和Direct3D 。如果通过这些测试,表明DirectX图形运行文件安装和操作正确。这不是您的计算机显示硬件的全面测试。 显示选项卡上还列出了您的设备的可用内存,并可以告诉你您的视频驱动程序是否“签名” ,如果“签名”意味着它已通过微软Windows硬件质量实验室测试方案。 如果DirectX诊断工具检测到您的显示设置有问题,则会出现警告讯息。 注意: Dxdiag.exe不能够报告在它启动时使用的内存。因此,如果看到报告的内存比显卡实际内存少,这并不奇怪。 声音 (Sound)

相关主题
相关文档
最新文档