Ogre的材质.docVIP

  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文档。上传文档
查看更多
Ogre的材质

简单的Ogre材质分析 张忆楠 上个学期在学习图形学的课程中,班上的很多同学就发现,如果只用OpenGL的固定渲染管线手动绘制物体是一件及其令人头痛的事情,因为OpenGL真是一点也不强大,想要把物体绘制得逼真,最快最简单的方式就是设置好光线然后贴图。事实上Ogre也是这样,因为Ogre最重调用的是OpenGL或者DirectX的图形API,如果你曾经试过手动的创建物体,那么你肯定会发现它对这一点的窝囊程度一点也不逊色于底层API。 解决问题的方法还是一样的——贴图、设置或者计算光线、然后就是可编程管线。这一篇会告诉我们材质文件(*.material)文件的简单使用方法,同时也将介绍Ogre中使用显卡的可编程管线技术。在最后,我们会利用之前所说的东西做出物体边缘的高光效果。相关的工程会放在群共享里面。 先来看看这篇教程的最后我们会做出一个什么样的东西: (反光的平滑大理石) (模型边缘的高光) (老样子:以下文字背景加灰的都是摘抄或代码,摘抄内容非原创,但明确写明了出处。如果你讨厌看一大堆文字,也可以只看红字加粗部分,并简单看看上下文,这足够了解全文逻辑并快速搜寻重要信息。) 在开始下面的内容之前,有一个很好用的工具Yaose,我猜中文名叫做“要死”(It’s a joke ^_^),很适合用作材质文件的编写,可以在这里下载到:/downloads/Yaose。 我使用的是3.0alpha版。 材质文件和它的的结构 先来看看材质文件的结构 // This is a comment material walls/funkywall1 { // first, preferred technique technique 1 { // first pass pass { ambient 0.5 0.5 0.5 diffuse 1.0 1.0 1.0 // Texture unit 0 texture_unit { texture wibbly.jpg scroll_anim 0.1 0.0 wave_xform scale sine 0.0 0.7 0.0 1.0 } // Texture unit 1 (this is a multitexture pass) texture_unit { texture wobbly.png rotate_anim 0.25 colour_op add } } } // Second technique, can be used as a fallback or LOD level technique 2 { // .. and so on } } (摘自/docs/manual/manual_14.html#SEC23) 材质的脚本文件采用了类似于C++和CSS的写法:用//表示注释,{}表示对内容的限定,很有意思的是,材质文件也可以继承(更准确的说是复制):比如这个网页中的写法/docs/manual/manual_25.html#SEC139。 一种材质的声明这样写:material matName {….} 这并没有说一个材质文件只能写一个材质声明,其实一个材质文件可以写很多材质的声明在里面。名字似乎也没有什么命名规则,我甚至试过用数字开头的名称都可以通过。不过为了方便管理,一个推荐的做法是把名字写成分层结构的,比如如果张忆楠的模型要在Ogre里面被渲染,可以写成material Seu/Cose/GraphLab/Ina{ … }。后面的Technique和Pass命名也是类似的。不同的是,Technique和Pass如果没有被命名,系统会自动将其命名为1、2、3、4…. Technique: 进入material里面第一个看到的就是technique声明。technique表示渲染是选择的某种技术。比如如果我们选择technique 1,那么technique 2就不会被使用了。但是一般对于technique的选择是由Ogre引擎根据硬件条件完成的,如果你想要手动控制

文档评论(0)

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

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

1亿VIP精品文档

相关文档