码迷,mamicode.com
首页 > 编程语言 > 详细

[转]unity之LOD

时间:2015-07-26 17:17:49      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

LOD技术有点类似于Mipmap技术,不同的是,LOD是对模型建立了一个模型金字塔,根据摄像机距离对象的远近,选择使用不同精度的模型。

它的好处是可以在适当的时候大量减少需要绘制的顶点数目。

它的缺点同样是需要占用更多的内存,而且如果没有调整好距离的话,可能会造成模型的突变。

通过一个例子来说明他的用处:

我们使用了3dsmax来说明LOD模型的制作,下载附件后打开场景文件,里面是三个面数不同的油桶造型,由左到右分别代表了高模,一般与低模的模型结构。

技术分享

选择左边的油桶模型,如图所示,这个模型的数据为三角面712,顶点数358。

技术分享

选择右边的模型,这个低模的数据很符合我们的要求,一般来说,用三个模型来制作LOD的效果就很足够了,例如建筑场景里面,最远端的房子只能看到类似盒子的效果,而镜头前面的楼房则是可以清楚的看到里面的许多细节,但是镜头推进到远处的楼房时,原来的盒子立即换成另一个可以战胜细节的模型,这个就是LOD的运作原理。

技术分享

将模型保存为FBX后,导入Unity进行测试,命名的方式建议是在物件的后面加上LOD的层级代号,这样比较方便我们直接用名称来选择高模与低模。

技术分享

在制作LOD之前,我们需要注意一个事情,那就是将不同面数的模型放在同一个位置,否则会发生模型位置错乱的情况,如图所示,使用Reset方式将中间的模型与低模移到与高模相同的位置。

技术分享 技术分享

接着建立一个空的Game Object,将其命名为prop_Barrell,我们准备用在这个空组件上面添加LOD的属性。

技术分享

选择Component > Rendering > LODGroup,然后就可以对LOD开始进行设置的工作。

技术分享

在LODGroup的设置里面列出了LOD的层级,底下的Add用来添加LOD所对应的模型,操作方法是先选择LOD : 0,按下Add,选择场景里面的prop_barell_LOD0模型。

技术分享

系统弹出一个提示,询问是否将这个选择的模型设置子物体,选择Yes,Reparent即可。

技术分享

如图所示,在选择Reparent后,LOD0的模型自动的设置为prop_Barell的子物件。

技术分享

设置完成LOD:0的层级后,选择LOD:1,按下Add,选择场景内的prop_barell_LOD1,接着选择LOD:2,按下Add,选择prop_barell_LOD2后即可完成整个LOD的设置。

技术分享

现在滑动LODGroup上方的相机图标来测试LOD的效果,模型在近处时使用的是LOD0所设置的高模,移到LOD1时则是显示为一般进度的模型,而在LOD3的层级时,模型就换为低模,移到最后的Culled插件,模型已经完全的消失了。

技术分享 技术分享

技术分享

此外,我们还可以任意的修改每一个层级的作用范围,只要拖动LOD分隔的线段即可,然后再根据相机的预览来调整出最合适的LOD效果。

技术分享

 

[转自] http://www.narkii.com/club/thread-321290-1.html

[转]unity之LOD

标签:

原文地址:http://www.cnblogs.com/MrZivChu/p/lod.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!