交互媒体设计(拓展) 5.7 游戏引擎实现 PartIV-4 Effect Framework3.pptVIP

交互媒体设计(拓展) 5.7 游戏引擎实现 PartIV-4 Effect Framework3.ppt

  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文档。上传文档
查看更多
Part Ⅳ shader和effect 四 特效框架 The Effects Framework 特效框架使我们的程序能根据具体的硬件配置,使用相对应的渲染技术 通过特效框架,可以让更多的计算机运行我们编写的程序 一种功能,多种实现方法 各个计算机根据自身的硬件条件挑选适合自己的实现方法 主要目标 了解特效文件的结构及组织形式 HLSL中的一些内建对象 在特效文件中设置设备状态 创建及使用特效 5 学习特效框架的使用 1 特效文件的结构及组织形式 先解释以下概念: 特效 technique pass 特效文件 特效 effect 一个特效包括: 一个vertex shader 或 pixel shader 一系列所需的渲染状态的设置 一个或多个渲染流程(pass) technique 一个technique是指用于实现某个特效的一种特定方法 pass 每个technique包含了一个或多个pass 在一个渲染pass中封装了设备的状态、取样方法,可能还包含用于渲染几何体的shader 特效文件 一个特效文件代表一个具体的特效 是一个文本文件 具有一个或多个technique,以适应不同的机器 特效文件的组织形式示意图 effect file effect technique1 technique2 technique3… pass1 pass2 .. pass1 pass2 .. pass1 pass2.. 代码片断 // 这是一个特效文件 effect.txt technique technique1 { pass pass1 { } pass pass2 { } } technique technique2 { pass pass1 { } pass pass2 { } } 2 HLSL内建对象 一些用于特效框架的对象 texture sampler 和 sampler_state vertexshader 和 pixelshader string annotation texture 对象 用于表示一个IDirect3DTexture9对象 通过texture对象,可以直接在特效文件中设置纹理取样方式 例: texture tex; sampler 和 sampler_state texture Tex; sampler S0 = sampler_state { Texture = (Tex); MinFilter = LINEAR; MagFilter = LINEAR; MipFilter = LINEAR; }; 如果没用特效框架,就要先获取sampler的句柄 vertexshader 和 pixelshader 分别代表特效文件中所要用的一个具体的 vertex shader和pixel shader ID3DXEffect::SetVertexShader ID3DXEffect::SetPixelShader 代码片断 ID3DXEffect *effect; IDirect3DVertexShader9 *vs; D3DXHANDLE vsInEffect; // 设置以上三个变量 effect-SetVertexShader(vsInEffect, vs); 在特效文件中编写shader代码 OUTPUT Main(INPUT input){...} pass P0 { vertexshader = compile vs_2_0 Main(); ... } string对象 string filename = “texName.bmp”; HLSL的函数不会使用这种对象 应用程序获取字符串信息 可以进一步封装所使用的文件名字 Annotations 一种特殊的语法,称为“注释”或“注解” HLSL的函数不会使用这种对象 应用程序获取注解中的信息 是一种允许添加用户自定义信息到effect参数中的机制 一般与string对象连用 通过“annotation”的语法给变量添加注解 注解中的5部分: 1 数据类型 2 变量名称 3 等号 4 变量的值 5 分号(语句终结符) 例:

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
文档贡献者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档