基于DirectX图案绘制.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于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:Flexible vertex format),由坐标系里的顶点来确定物体的方向和位置,而且每个顶点有材质属性。 支持多缓冲: 支持Mesh,Mesh即可编辑网络,它是由许多三维空间中的点构成的物体的框架。可以通过程序向顶点缓冲区内填充信息来生成Mesh,也可以将3dsmax或maya等建立的模型导出为Mesh。如图: 支持纹理贴图 支持三种光源:平行光、聚光灯、点灯 除此之外,Direct3D支持的功能还有: 支持摄像机 支持Z缓冲 支持通过矩阵变换来改变位图 支持材质 支持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-SetRe

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档