网站大量收购闲置独家精品文档,联系QQ:2885784924

3D 程序的设计 材质 2 .docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3D 程序的设计 材质 2

3D 程序设计 材质 2 转 阅读:0评论:0作者:ganshuai发表于2010-04-04 14:07原文链接 代码6-6:在Samples/Media/materials/scripts/Examples.program中的程序声明 //Basic hardware skinning using one indexed weight per vertex vertex_program Ogre/HardwareSkinningOneWeight cg { source Example_Basic.cg entry_point hardwareSkinningOneWeight_vp profiles vs_1_1 arbvp1 includes_skeletal_animation true } 代码6-6中列出了叫做Ogre/HardwareSkinningOneWeight的顶点程序声明。首先它声明了这个程序使用的是cg语言,进而告知Ogre需要调用Cg运行时库通过来硬件渲染管线来处理程序。并且这个声明也告诉了Ogre从Example_Base.cg(我们之前定义的代码6-5)中可以找到程序源代码。对于一个Cg程序来说,它需要一个程序入口点,这样Cg就可以从它来运行整个程序了(Cg是一种类似C的语言,它支持结构化的代码设计)。我们通过entry_point标签来把它定义到hardwareSkinningOneWeight_vp函数上(在真实的代码中可能同时有很多函数)。(另外:HLSL程序也需要声明一个入口点来进入程序,而汇编和GLSL语言就没有这个需要:其中GLSL使用main函数作为入口点,汇编程序的运行只是简单的从顶部运行到底部。) 同时在代码中也提供了profiles(描述)属性,用来把这个程序的profiles信息交给Ogre和Cg以便运行时使用。Ogre通过这个属性信息来做技术的匹配工作:如果特殊的硬件集合无法支持现在所提供的profiles信息,Ogre就会再选择下一个要求较低的技术来匹配,直到找到能用的为止。Cg程序也使用这个profiles信息;汇编程序使用一个类似的机制来处理,被称为syntax;DirectX HLSL使用target来定义GPU性能需求。这些不同的名词其实都讲的一样的东西,而且可以使用一样的值(举例来说,现在的设置对汇编程序的syntax同样有效)。GLSL程序直接编译成本地GPU机器码,所以不需要这种参数。 最后,在这个例子中,声明了在Ogre中硬件加速骨骼动画的支持,Ogre将要使用这个程序代替软件蒙皮通路来提供给蒙皮使用(我们将要在第九章了解到更多的关于Ogre动画的相关细节)。只有当你确定需要这个功能的时候再打开它,否则就把这行从程序里面去掉。 代码6-7:就是使用上面提到的硬件蒙皮程序的材质,你可以在文件中找到 material Examples/Robot { //Hardware skinning techniique technique { pass { vertex_program_ref Ogre/HardwareSkinningOneWeight { param_named_auto worldMatrix3x4Array[0]world_matrix_array_3x4 param_named_auto viewProjectionMatrix viewproj_matrix param_named_auto lightPos[0]light_position 0 param_named_auto lightPos[1]light_position 1 param_named_auto lightDiffuseColour[0]light_diffuse_colour 0 param_named_auto lightDiffuseColour[1]light_diffuse_colour 1 param_named_auto ambient ambient_light_colour } //alternate shadow caster program shadow_caster_vertex_program_ref Ogre/HardwareSkinningOneWeightShadowCaster { param_named_auto worldMatrix3x4Array[0]world_matrix_array_3x4 param_named_auto viewProjectionMatrix viewproj_matrix param_named_auto ambient ambient_light_colour } texture_unit

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档