DirectX9.0是什么,有什么用
发布网友
发布时间:2022-04-30 02:12
我来回答
共3个回答
热心网友
时间:2022-06-28 19:50
DirectX是微软在Windows操作系统上对编写高性能的多媒体应用程序而提供的一整套API.它使得我们不需要考虑具体的硬件就可以编写出实用的软件,也可以利用硬件加速功能.与DirectX竞争的技术是OpenGL.
DirectX 9.0的 9.0是他的版本号而已
DirectX是Microsoft公司开发的运行于计算机平台的多媒体控制处理引擎;
能够对显存和硬件直接访问;
图形应用程序接口(API);
DirectX通过COM的技术,以及一套由Microsoft和硬件厂商共同编写的驱动程序和程序库,可以提供对所有设备的硬件级的控制.
DirectX的组成
显示部分
声音部分
输入部分
网络部分
显示部分
Direct Draw:负责2D加速(DirectX8.0以上的版本不包含此项)
Direct 3D:负责3D加速
声音部分
DirectAudio:由DirectSound和DirectMusic整合而成;
DirectSound:只支持数字化的声音,不支持MIDI.
DirectMusic:支持MIDI,是一种基于DLS(Downloadable Sound)数据的实时音乐编排和回放技术;
DirectShow :提供了在windows平台上对多媒体数据流的高质量的捕捉和回放的支持;
DirectShow支持多种多媒体格式,包括AVI,MP3,WAV等;
输入部分
Direct Input :提供了对游戏输入设备的支持,包括键盘,鼠标,手柄等;
支持力反馈设备,模拟使用者的真实感觉.
网络部分
DirectPlay:提供了玩家进行多人游戏中信息通讯和玩家互动交流的平台环境;
提供多种连接方式如TCP/IP,IPX,Modem,串口等,使计算机之间互联无障碍;
COM 简述
COM是组件对象模型(Component Object Model)的简写.它是一种协议,用来实现软件模块间的二进制连接.当这种连接建立后,两个模块之间就可以通过称为"接口(Interface)"的机制来通信.
COM给开发人员提供的是一种开发与语言无关的组件库的方法.
COM的发布形式是:以win32动态链接库(DLL)或者可执行文件(EXE)的形式发布的可执行代码组成.
DirectX和COM的协同工作
COM在装载DirectX的运行版本时,作为DLL包含在系统中.
运行DirectX时,其装载DLL.请求接口,这些接口的方法就被调入而完成任务.
应包含一些封装了COM内容的输入库函数.LIB,以便于使用这些封装函数调用DirectX来创建COM对象.
访问COM对象
调用适当的函数获取接口指针;
调用接口的方法(成员函数)来完成所需功能;
用完接口后,调用Release方法进行"释放",注意释放顺序应该和获取它们的顺序相反.
游戏的图形实现—Direct3D
Direct3D程序的基本结构
创建一个windows窗口
初始化Direct3D程序
处理消息循环
物体图形显示
结束Direct3D程序
窗口的构建
创建一个Windows类.
创建一个事件句柄或WinProc.
用Windows注册Windows类.
用前面创建的Windows类创建一个窗口.
初始化Direct3D程序
创建Direct3D对象并得到Direct3D接口.
查询显卡的显示模式.
创建Direct3D 设备对象并得到接口.
处理消息循环
PeekMessage()
TranslateMessage()
DispatchMessage()
结束Direct3D程序
窗口过程函数接收到WM_DESTROY消息;
调用函数释放Direct3D资源;
注销wndclass类;
Release()
图形显示原理—页翻动技术
把要显示的物体全部绘制到"后缓冲区";
快速的把它翻动到可见的"前缓冲区" ;
快速而连续的重复此过程;
Direct3D的图元
点列
线带
线列
三角形列
三角形带
三角扇形
矩形的创建
坐标变换
世界变换
视图变换
投影变换
图形显示过程
球体的构建
将球体切割成nRings * nSegments 段.需要((m_nRings + 1) * (m_nSegments + 1))个顶点 .
按照立体几何里面球体的构造式,构造出一系列纵向的环和一系列横向的环,这样相互交叉,就构成了一个球体所需要的全部顶点.
球体的立体构成
构成球体的构成以三角形网格为图元形成的;
真正构成的球体如右图;
三角形个数足够多,三角形之间的交界处显得比较平滑,近似于一个圆面了.
索引顶点
顶点缓存中保存A,B,C,D这4个顶点的FVF数据项,相应的索引为0,1,2,3.
按照三角形列的组成顺序,把顶点索引值存入索引缓存区.
通过调用索引调用顶点.
深度缓冲机理
DirectX测试对象在屏幕上的像素点到摄像机的远近,并把得出的值保存在深度缓冲区中;
以同样的方法测试同一位置上另一对象的像素点;
将两像素比较.若后者距离近,则刷新纪录;否则不理睬;
灯光
点光源
(电灯泡)
方向光
(太阳)
聚光灯
(手电筒)
计算量:按从小到大排序,依次为:环境光,平行光,点光源,聚光灯
光源属性
光的类型:Type
光源的颜色:Diffuse,
Ambient,Specular
光源位置:Position
光的方向:Direction
光的范围:Range
光的内外锥形衰退:Falloff
光的距离衰减系数:
Attenuation0,Attenuation1,Attenuation2
聚光灯内部锥形角度:Theta
聚光灯外部锥形角度:
Phi
物体表面的材质属性
环境光反射系数:Ambient
漫反射系数:Diffuse
镜面反射系数:Specular
自身发光度:Emissive
镜面反射数:Power
加上纹理
纹理属于COM对象,既可以从现有的图片文件中直接创建,也可以先创建一个空的纹理对象,然后再进行填充.
纹理是表示物体表面细节的一幅或几幅2D图片,它可以保存为bmp,tga,jpg等图片格式 .
Direct3D支持多层纹理,最高可达8层.
图片的大小一般是任意的,但是为了计算方便,一般取2n大小 .
添加纹理的过程
从磁盘文件中创建纹理并载入内存
D3DXCreateTextureFromFile()
设置纹理IDirect3DDevice8::SetTexture()
设置纹理渲染状态(纹理混合)IDirect3DDevice8::SetTextureStageState()
纹理坐标
不论纹理的大小如何,其左上角总是(0,0),右下角总是(1,1),易知中心点的纹理坐标为(0.5,0.5).
但Direct3D也允许纹理坐标取此范围之外的值,以获取某些特殊的纹理效果
纹理过滤
纹理过滤方法
最近点采样过滤
线性纹理过滤
各项异性纹理过滤
多级渐进纹理过滤
最近点采样过滤原理
Direct3D计算的纹理元素地址是一个浮点值;
纹理下标值为整数值;
Direct3D复制最接近的整数地址的纹理元素颜色 ;
纹理混合
当使用纹理时,实体的外观由纹理图片和材质经过某种计算获得.
参考资料:http://www.mscenter.e.cn/prj/files/899/DirectX.ppt
热心网友
时间:2022-06-28 19:50
DirectX 9.0
2002年底,微软发布DirectX9.0。DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。
PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。
VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。
增加对浮点数据的处理功能,以前只能对整数进行处理,这样提高渲染精度,使最终处理的色彩格式达到电影级别。突破了以前*PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。
DirectX9.0安装软件用来在你的电脑你安装DirectX9.0,DirectX是微软提供的3d标准,用来对基于DirectX的游戏或3D MAX 等之类的应用软件提供软件支持。现在最新的版本是9.0c。在运行需要DirectX支持的游戏或应用程序的时候你的电脑里必须安装了相应或更高版本的DirectX。xp系统的sp2里已集成了DirectX9.0c所以如果你安装的是sp2的xp系统的话就不需要再安装DirectX9.0c了。xp集成的是DirectX8.1,sp1集成的是9.0。DirectX9.0安装了后如果你的显卡不支持9.0的话你还是无法看到9.0的特效的,但是还是可以运行支持9.0的软件~游戏~只是没有那些新的特效。
参考资料:http://zhidao.baidu.com/question/3458105.html?si=2
热心网友
时间:2022-06-28 19:51
DirectX9.0安装软件用来在你的电脑你安装DirectX9.0,DirectX是微软提供的3d标准,用来对基于DirectX的游戏或3D
MAX
等之类的应用软件提供软件支持。现在最新的版本是9.0c。在运行需要DirectX支持的游戏或应用程序的时候你的电脑里必须安装了相应或更高版本的DirectX。xp系统的sp2里已集成了DirectX9.0c所以如果你安装的是sp2的xp系统的话就不需要再安装DirectX9.0c了。xp集成的是DirectX8.1,sp1集成的是9.0。DirectX9.0安装了后如果你的显卡不支持9.0的话你还是无法看到9.0的特效的,但是还是可以运行支持9.0的软件~游戏~只是没有那些新的特效。