unity自带LightMapping和3Ds Max烘焙贴图的小对比

 
        对于做虚拟现实的朋友来说,烘焙贴图应该不是一个陌生的东西。想要在有限性能的电脑上面即时运算较好的光影效果,一般都会采用烘焙贴图的方法。而除了在3dmax里面烘焙贴图之外,Unity3D也自带了LightMapping烘焙贴图的功能。下面我们来做一个小例子,对两者的意义和效果做一个小对比。更多内容请访问狗刨学习网 http://unity.gopedu.com
 
在3dmax里面,我简单的建立了几个模型,并分别赋予他们不同的颜色:

技术分享


然后使用3dmax自带的光线追踪渲染一下,会出现这样的效果:

技术分享


很明显的,光线追踪之后的渲染效果比没有光线追踪时立体感强了很多。这是因为高级渲染器模拟了真实环境里面光线的各种反射和散射,使物体看起来接近真实的效果。
我们所要做的烘焙,其实就是把这种经过高级渲染器计算的光影效果,记录在贴图上面。

技术分享


技术分享


技术分享


技术分享


我对上面的几个物体展了UV,并使用3dmax的烘焙功能,烘焙出相应的贴图。并把这个带着UV信息的模型导出为FBX,放进Unity里面。

技术分享

在unity里面,我拉出了两个模型,一个按照原来的颜色直接给予他材质,另外一个把3dmax里面烘焙的贴图贴上了模型,会出现上图的情况。场景里面也没有打灯光,假如是只有颜色的材质时,模型会没有任何的轮廓和立体感。而贴上了烘焙贴图的模型,看起来会和在3dmax里面使用光线追踪时渲染的效果差不多。
接下来我们对只有颜色的这个模型进行LightMapping烘焙处理。选择该模型,然后在Static里面选择Lightmap Static。

技术分享


在菜单栏的Window——>lightMapping打开lightMapping面板,在bake栏里面设置一下烘焙的参数,我这里用了如下参数:

技术分享


设置好之后,就可以烘焙了,在烘焙之前先保存场景,然后点击Bake Scene按钮。
经过漫长的等待(等待的时间取决于你的模型的复杂程度),烘焙结束,生成了贴图,我们可以在maps里面查看:

技术分享



这时候,我们可以进行一个小对比了:

技术分享


同样是场景里面没有灯光,但不论是经过Lightmapping烘焙的模型,还是在3DMax里面烘焙贴图的模型,都有了较为真实的光影效果。
既然两者都能达到差不多的效果,那么究竟他们之间有什么差别呢?
3dmax烘焙:
1、可以使用各种高级渲染器对模型进行烘焙,比如Vray。
2、可以烘焙像反射这样的效果。
3、因为光影是固定了,所以在引擎里面只能按照在3DMax里面的摆放,不然就会穿帮。所以模型贴图不能在各个不同场景通用。
unity的LightMapping烘焙:
1、设置的参数相对没有3DMax里面高级渲染器丰富。
2、只能烘焙光影的追踪效果,不能烘焙反射。
3、可以一个模型放在不同场景单独烘焙,模型可以通用。
4、由于每个场景需要烘焙一组贴图,所以如果场景多了,也会增加贴图数量。

至于两者之间的具体效果对比,这要根据烘焙时的具体参数来看。
这里注意的一点是,无论哪种烘焙,你都需要对模型进行展UV操作,假如UV没有展,或者UV的范围超出了0-1的框,烘焙都是会出错的。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。