CSDN真恶心

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

果然验证了简单的问题不简单,想要弄个导航立方体,遇到了各种各样的难题

 

首先是Ogre貌似并不能直接导入3ds模型,Ogre仅支持自己的.mesh格式的模型

所以我要通过一个叫做3ds2mesh的工具把我的立方体3ds转换成mesh

 

第二个难题是为立方体贴图

因为6个面标识着六个方向,所以要为六个不同的面贴不同的图

这就意味着我第一步的工作白费了!无法为一个现成的,空白的六面体贴图

这就意味着,要不我就用3dsMax把贴好图的立方体导出来,要不我就用代码生成一个立方体,并同时为每一个面定义贴图

我选择后者。(参考资料的传送门:http://0flyingpig0.blog.163.com/blog/static/9937055620101209433665/

 

第三个难题是,Ogre管理Material(材质)的方法和Irrlicht真的是完全不一样

在Ogre里面,如果想要控制光照,反面裁剪,纹理贴图,就要自己新建一个Material,并给Entity赋予这个Material

而Irrlicht里面只用设个标志位就好了

我不能说哪种方法更好,不过看起来Irrlicht的方法更简单,而Ogre的方法更专业

另外,材质也是可以使用脚本的,脚本后缀名为.material

(脚本使用方法传送门:http://www.ogre3d.org/docs/manual/manual_14.html#SEC23

(脚本教程传送门:http://www.ogre3d.org/tikiwiki/MadMarx+Tutorial+7&structure=Tutorials

 

第四个难题揭示了我是多么的天真。

现在我已经弄好了六面体,并且把它摆在场景中央

图片

一切看起来正常,六面体的正面正对着我。

貌似此时需要做的只是写玩导航逻辑就大功告成,也就是说我拖动六面体,场景镜头就会转动

可是我觉得把一个导航块放在场景中间有些不合适,所以我决定把它放在旁边

图片

尼玛啊……

它在逻辑上是朝向这正面,但是由于视角问题,变得好像不是朝向正面

解决方法我先在想到的有两种

第一种是让它倾斜一个角度朝向我,并把这个方向当做是初始方向,以后的旋转镜头都加上这个偏移量

第二种是将这个六面体渲染成一张texture(RTT)并贴出来

我先试试看第一种方法……

 

另外,Ogre管理资源的方法真的是非常的诡异,有空我要好好看看这篇东西http://www.ogre3d.org/tikiwiki/Resources+and+ResourceManagers&structure=Tutorials

posted on 2012-01-31 20:53  Kid桑  阅读(334)  评论(0编辑  收藏  举报