基于DirectX的图案绘制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于DirectX的图案绘制—雾化效果DirectX简介Direct3D技术介绍雾化实验效果图DirectX简介DirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。这样说是不是有点不太明白,其实从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上我们就可以看出DirectX的出现DirectX简介就是为了为众多软件提供直接服务的。而雾化效果是3D中的比较常见的特性,在游戏中见到的烟雾、爆炸火焰以及白云等效果都是雾化的结果。它的功能就是制造一块指定的区域笼罩在一股烟雾弥漫之中的效果,这样可以保证远景的真实性,而且也减小了3D图形的渲染工作量。目前的DirectX,已经从最早的DirectX1.0发展到2009年1月9日发布DirectX11了。DirectX简介DirectX是Microsoft公司为Windows平台开发的游戏开发包,它包括以下几个组件:◎DirectDraw:解决平面游戏开发中图形处理问题◎Direct3D:三维游戏图形技术解决方案,OpenGL功能一样强大◎DirectSound:提供延时的低音混合系统,支持硬件加速与声音设备的直接访问DirectX简介◎DirectPlay:简化游戏中使用各种通讯设备的入口,使不同的协议间可以相互通讯,为网络游戏开发提供一个良好的平台◎DirectInput:支持鼠标、键盘、游戏操纵杆和具有反馈功能的游戏输入设备。◎DirectMusic:支持MIDI音频,支持运行时动态作曲Direct3D技术介绍Direct3D是和OpenGL一样的三维图形支持库它具有以下功能:支持自定义顶点结构(FVF:Flexiblevertexformat),由坐标系里的顶点来确定物体的方向和位置,而且每个顶点有材质属性。支持多缓冲:支持Mesh,Mesh即可编辑网络,它是由许多三维空间中的点构成的物体的框架。可以通过程序向顶点缓冲区内填充信息来生成Mesh,也可以将3dsmax或maya等建立的模型导出为Mesh。如图:支持纹理贴图支持三种光源:平行光、聚光灯、点灯除此之外,Direct3D支持的功能还有:1.支持摄像机2.支持Z缓冲3.支持通过矩阵变换来改变位图4.支持材质5.支持2D显示等雾化实验雾化效果实现原理在Direct3D图形系统中,雾化是通过景物颜色与雾的颜色,以随物体和观察点距离增加而衰减的混合因子混合实现的。距离观察点越近,混合因子越大,场景中物体的颜色越大,而雾的颜色越小,景物就越清晰;随着观察点拉远,混合因子逐渐变小,场景中物体的颜色变小,而雾的颜色变大,景物就越来越模糊。Direct3D计算雾化的方法如下:Color=f.colorscene+(1-f)Colorfog其中,Color表示最终经过雾化处理的颜色,Colorscene表示物体原来的颜色,Colorfog表示应用程序定义的雾的颜色,f表示雾化的混合因子从雾化计算方法可以看出,影响雾化效果的因素有两个,一个是雾化混合因子,另一个是物的颜色。通常指雾的颜色为白色,当然也可以指定其他任何颜色以实现特殊效果。所以大多数情况下考虑的是雾化混合因子对于雾化效果的影响。通过指定Direct3D雾化计算公式,可以定义图形程序中雾化效果随距离增加的趋势。雾化效果是物体可见程度的反映,雾化公式计算的结果越小,物体的可见度越低。Direct3D采用了两种方法进行雾化处理:顶点雾化和像素雾化。顶点雾化在Direct3D顶点坐标变换和光照流水线阶段实现,它根据物体多边形每个顶点与观察点的距离计算每个顶点雾化程度,并在多边形面上根据计算结果进行插值计算。而像素雾化在Direct3D像素绘制阶段实现,它通过每个像素对于观察点的深度计算雾化效果值Direct3D中使用雾化效果的步骤⑴激活雾化效果Direct3D在默认情况下禁用雾化效果,所以为了给场景添加雾化效果,首先要激活雾化处理,激活效果的代码如下:g_pd3dDevice-SetRenderState(D3DRS_FOGENABLE,TRUE);⑵设置雾化混合因子计算公式下面的程序片断设置了顶点雾化效果为线性:g_pd3dDevice-SetRenderState(D3DRS_FOGVERTEXMODE)⑶设置雾化参数雾化参数包括雾的颜色和用于计算雾化混合因子f的相关参数。效果图程序运行时,当按下“0”键时,禁用雾化,当按下“1”键时,启用线性雾化,当按下“2”键时,启用指数雾化,当按下“3”键时,启用指数平方雾化。禁用雾化效果线性雾化效果指数雾化效果指数平方雾化效果谢谢!

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功