directx9.0是什么意思
展开全部
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复制最接近的整数地址的纹理元素颜色 ;
纹理混合
当使用纹理时,实体的外观由纹理图片和材质经过某种计算获得.
参考资料:
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复制最接近的整数地址的纹理元素颜色 ;
纹理混合
当使用纹理时,实体的外观由纹理图片和材质经过某种计算获得.
参考资料:
展开全部
多媒体控制处理引擎
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DirectX种应用程序接口(API)让windows平台游戏或媒体程序获更高执行效率加强3d图形声音效并提供设计员共同硬件驱标准让游戏发者必每品牌硬件写同驱程序降低用户安装及设置硬件复杂度说点太明白其实字面意义说Direct直接意思边X则代表意思点我看DirectX现众软件提供直接服务
举例吧骨灰级玩家(玩游戏比较)前DOS玩游戏像我现安装玩往往首先要先设置声卡品牌型号要设置IRQ(断)、I/O(输入于输)、DMA(存取模式)哪项设置游戏声音发部设置仅让玩家伤透脑筋且游戏发者说更痛让游戏能够众电脑确运行发者必须游戏制作初,便需要市面所声卡硬件数据都收集根据同
API(应用编程接口)写同驱程序于游戏制作公司说难完所说媒体游戏少微软看问题众厂家推共同应用程序接口--DirectX要游戏依照Directx发管显卡、声卡、统统都能玩且能发挥更佳效前提显卡、声卡驱程序必须支持DirectX才行
2002底微软发布DirectX9.0DirectX
9PS单元渲染精度已达浮点精度传统硬件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位浮点颜色让游戏程序设计师更容易更轻松创造更漂亮效让程序员编程更容易
DirectX
9.0c
与DirectX
9.0bShader
Model
2.0相比较DirectX
9.0c改进便引入Shader
Model
3.0(包括Pixel
Shader
3.0
Vertex
Shader
3.0两着色语言规范)全面支持举例说DirectX
9.0bShader
Model
2.0所支持Vertex
Shader指令数仅256Pixel
Shader指令数更96新Shader
Model
3.0Vertex
ShaderPixel
Shader指令数都幅升至65535全新态程序流控制、
位移贴图、渲染目标(MRT)、表面散射
Subsurface
scattering、柔阴影
Soft
shadows、环境面阴影
Environmental
and
ground
shadows、全局照明
(Global
illumination)等新技术特性使GeForce
6、GeForce7系列及Radeon
X1000系列立刻新代游戏及具备比真实、幻想般复杂数字世界逼真角色影视品质环境提供强力
DirectX
9.0cShader
Model
3.0标准推说DirectX发展历程重要转折点DirectX
9.0cShader
Model
3.0除取消指令数限制加入位移贴图等新特性外更特性都解决游戏执行效率品质功夫Shader
Model
3.0诞待游戏态度始单纯追求速度转变游戏画质运行速度两者兼顾Shader
Model
3.0游戏产业影响谓深远
举例吧骨灰级玩家(玩游戏比较)前DOS玩游戏像我现安装玩往往首先要先设置声卡品牌型号要设置IRQ(断)、I/O(输入于输)、DMA(存取模式)哪项设置游戏声音发部设置仅让玩家伤透脑筋且游戏发者说更痛让游戏能够众电脑确运行发者必须游戏制作初,便需要市面所声卡硬件数据都收集根据同
API(应用编程接口)写同驱程序于游戏制作公司说难完所说媒体游戏少微软看问题众厂家推共同应用程序接口--DirectX要游戏依照Directx发管显卡、声卡、统统都能玩且能发挥更佳效前提显卡、声卡驱程序必须支持DirectX才行
2002底微软发布DirectX9.0DirectX
9PS单元渲染精度已达浮点精度传统硬件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位浮点颜色让游戏程序设计师更容易更轻松创造更漂亮效让程序员编程更容易
DirectX
9.0c
与DirectX
9.0bShader
Model
2.0相比较DirectX
9.0c改进便引入Shader
Model
3.0(包括Pixel
Shader
3.0
Vertex
Shader
3.0两着色语言规范)全面支持举例说DirectX
9.0bShader
Model
2.0所支持Vertex
Shader指令数仅256Pixel
Shader指令数更96新Shader
Model
3.0Vertex
ShaderPixel
Shader指令数都幅升至65535全新态程序流控制、
位移贴图、渲染目标(MRT)、表面散射
Subsurface
scattering、柔阴影
Soft
shadows、环境面阴影
Environmental
and
ground
shadows、全局照明
(Global
illumination)等新技术特性使GeForce
6、GeForce7系列及Radeon
X1000系列立刻新代游戏及具备比真实、幻想般复杂数字世界逼真角色影视品质环境提供强力
DirectX
9.0cShader
Model
3.0标准推说DirectX发展历程重要转折点DirectX
9.0cShader
Model
3.0除取消指令数限制加入位移贴图等新特性外更特性都解决游戏执行效率品质功夫Shader
Model
3.0诞待游戏态度始单纯追求速度转变游戏画质运行速度两者兼顾Shader
Model
3.0游戏产业影响谓深远
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询