光源需要调用场管理器中的createLight方法然后提供光.pptVIP

光源需要调用场管理器中的createLight方法然后提供光.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文档。上传文档
查看更多
光源需要调用场管理器中的createLight方法然后提供光

光源 在Ogre中创建一个光源需要调用场景管理器中的createLight方法然后提供光源的名称,就跟我们创建实体和摄像机一样,光源仅仅有两个方法setPosition和setDirection(而且并不是像旋转,偏移,滚动一样有全套的移动函数)。如果你需要移动光源(例如创建一个光源跟随角色),你需要把光源绑定到场景节点上。 第9课 Ogre场景创建 点光源 首先我们要创建光源设置她的类型和她的位置: light = mSceneMgr-createLight(Light1); light-setType(Light::LT_POINT); light-setPosition(Vector3(0, 150, 250)); 现在我们已经创建好了光源,我们可以设置她的漫射色和镜面色了。让我们设置为红色: light-setDiffuseColour(1.0, 0.0, 0.0); light-setSpecularColour(1.0, 0.0, 0.0); 第9课 Ogre场景创建 有向光 light = mSceneMgr-createLight(Light3); light-setType(Light::LT_DIRECTIONAL); light-setDiffuseColour(ColourValue(.25, .25, 0)); light-setSpecularColour(ColourValue(.25, .25, 0)); 因为有向光是从无穷远的距离射来的,因此我们不需要设置她的位置,仅仅是设置她的方向。我们设置光的方向是z正半轴和y负半轴(类似从ninja的45度角正前方射过来): light-setDirection(Vector3( 0, -1, 1 )); 第9课 Ogre场景创建 聚光灯 light = mSceneMgr-createLight(Light2); light-setType(Light::LT_SPOTLIGHT); light-setDiffuseColour(0, 0, 1.0); light-setSpecularColour(0, 0, 1.0); 我们仍然需要设置位置和方向来确定聚光源。我们将创建一个聚光源盘旋在Ninja的右侧,然后直射下来: light-setDirection(-1, -1, 0); light-setPosition(Vector3(300, 300, 0)); 聚光源还允许我们指定光束的宽度。考虑一下手电筒的光束。中心的内光束比周围光束明亮一些。我们可以设置这两种宽度通过调用setSpotlightRange方法。 light-setSpotlightRange(Degree(35), Degree(50)); 第9课 Ogre场景创建 地形 在场景中添加地面 现在我们已经搞清楚了根对象和场景管理器,是时间来真正创建一个地面了(当然是在OGRE里)。场景管理器的基类定义了一个叫做setWorldGeometry的方法,使派生类便于创建场景。当使用地面场景管理器(TerrainSceneManager)时,它需要一个文件名来加载地面属性。在createScene函数中添加这行代码: mSceneMgr-setWorldGeometry( “terrain.cfg” ); 编译运行你的程序,稍微移动一下镜头就可以看到OGRE生成的地面了 第9课 Ogre场景创建 terrain.cfg 文件 terrain.cfg文件包含了许多生成地面的选项。需要注意的是,地面场景管理器设计的时候包含了分页的功能,只不过还没有被实现。不过OGRE有一个插件目前可以实现这个功能:Paging Scene Manager。 地面场景管理器使用高度图(Heightmap)来生成地面。你可以通过更改Heightmap.image的参数来改变高度图。你可以通过更改WorldTexture来更改地面的帖图。你还可以通过更改DetailTexture来使地面看得更逼真。你可以在/Media/materials/textures里找到terrain.cfg默认的几个图片。 第9课 Ogre场景创建 天空 OGRE提供三种天空:天空盒,天空穹和天空面。我们会逐个学习他们,现在你必须在chooseSceneManager函数中添加以下代码: ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); 第9课 Ogre场景创建 天空盒 天空盒实际上是一个包含了场景里所有对象的巨型立方体。 mSceneMgr-setSkyBox( true, Examples/SpaceSkyBox ); 参数第

文档评论(0)

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

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

1亿VIP精品文档

相关文档