用Ogre生成天龙八部的lightmap和minimap的简单方法

自从在一家创业小公司当了客户端主程以后,就忙的没有时间写博客了,整个公司没有一个人有完整的项目经验,所有一切都在摸索中前进,但初生牛犊不怕虎,项目还算进展顺利。但我始终认为,安静下来总结整理一下工作心得是必要的,可惜这个愿望恐怕得等到这个项目忙完以后。

 

周末有点时间,还是可以抽空随便写点东西。

 

lightmap的重要性不用多说,没必要所有阴影都动态去渲染,那些一辈子也不会动的静态物体,贴一张lightmap就行了,可惜Ogre只提供动态阴影给我们,帮人也不帮到底。

 

如何生成天龙八部一样lightmap,如果你去百度一下,他们会告诉你各种方法,什么光线追踪,shader,之类

 

以上都是告诉你,自己去产生一个阴影。但是Ogre已经帮我们产生了动态阴影,我们就没必要再自己去生成阴影,

 

只要用动态阴影的渲染一张静态阴影图,保存下来不就行了么。

 

那么如何用Ogre的动态阴影去产生一张静态的阴影图呢?

 

1)先学会渲染一张minimap的缩略图,缩略图大家都应该会吧,创建一个垂直俯瞰的摄像机,平行投影拍一张就是

 

2)改进minimap,让垂直俯瞰的摄像机的视口只渲染地形队列。不渲染其他队列

这样拍出来的minimap就只有阴影和地形纹理混合后效果了

   Ogre::RenderQueueInvocationSequence* rqis =
    Ogre::Root::getSingleton().createRenderQueueInvocationSequence("Lightmap maker");
   Ogre::RenderQueueInvocation* rqi =
    rqis->add(Ogre::RENDER_QUEUE_WORLD_GEOMETRY_1, "World Geometry");
   viewport->setRenderQueueInvocationSequenceName("Lightmap maker");

 

3)再改进一下,把地形材质设置为BaseWhite,全白,那么minimap就变成了lightmap了。

 

4)Ogre的阴影并不好用,所以你需要优化,怎么优化,或者用shader实现,以后再写。

 

//这是动态阴影的图片、、、、、、、、、、、、、、、、、、、、、、、、、、

 

//这是贴上lightmap的图片

./这是阴影图、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

 

附上代码,看看思路就好!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值