[转]unity之LOD
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效果。

Unity的资源商店也提供了功能更为强大的LOD设置插件,以下为试用版的链接,如果是用于商业项目,请支持正版。
Smart LOD 1.0 - 大场景的优化神器(比unity自带的优化效率更高!)
http://www.narkii.com/club/thread-320869-1.html
同样还有Simple LOD等
在资产的导入管线基于LOD的命名约定
为了简化LOD设置,Unity在模型导入时有一个命名约定。
简单地创建你网格,名称后缀为_LOD0,_LOD1,_LOD2等,会为你创建LOD组,并作出相应的设置。
请注意,该约定假定最高分辨率的网格的LOD后面的数字是最小的。
在质量设置你可以为每个平台条件LOD设置,特别是LOD偏移和最大LOD层次。
[转自] http://www.narkii.com/club/thread-321290-1.html
[转]unity之LOD的更多相关文章
- 关于Unity中LOD和渲染队列----渲染通道通用指令(一)
每个shader里面有很多的subshader,如果所以的subshader都不执行的话就,就执行fallback.每个subshader都可以设置一个LOD,整个shader也有一个LOD. 系统就 ...
- Unity优化方向——优化Unity游戏中的脚本(译)
原文地址:https://unity3d.com/cn/learn/tutorials/topics/performance-optimization/optimizing-scripts-unity ...
- Unity3d笔试题大全
1. [C#语言基础]请简述拆箱和装箱. 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程. 1.在堆中开辟内存空间. 2.将值类型的数据复制到堆中. ...
- Light Probes
LightProbes (光照探针,光探测器?) 提供了一种方法用于捕获和使用 穿过场景中空白空间的 光(light)的信息. 和光照贴图相似(lightmaps),Light Probes也存储关于 ...
- Unity 中实现粒子系统的 LOD
模型的 LOD 比较简单,直接使用 Unity 提供的组件 LODGroup 挂到模型物体上,然后分别指定不同 LOD 级别的 Renderer 即可. LODGroup 并不是用距离来控制 LOD, ...
- Unity3D for VR 学习(10): Unity LOD Group 组件
LOD (Level of Detail), 远小近大思想. LOD,在Unity中是用到了空间换时间的优化方法:即程序加载2套模型,导致包会增大:在运行时刻,远处的用面数少的模型–模糊一些,近处用面 ...
- Unity中的Lod
http://blog.csdn.net/bigpaolee/article/details/48521371 LOD是( Level of Detail)的缩写,表示细节级别. 这里注意下,Lodg ...
- Unity Lod
LOD是Level Of Detais 的简称,多细节层次,根据摄像机与物体距离,unity会自动切换模型.一般离摄像机近的时候显示高模,离摄像机远的时候显示低模,借此来提升性能. 如果你在Blend ...
- Unity性能优化——LOD技术
LOD,中文名多层次细节,是游戏中最常用的技术,它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算.今天我们来实现使用它来做一个简单的优化例子. ...
随机推荐
- BZOJ 3227: [Sdoi2008]红黑树(tree)
BZOJ 3227: [Sdoi2008]红黑树(tree) 标签(空格分隔): OI-BZOJ OI-其它 Time Limit: 10 Sec Memory Limit: 128 MB Descr ...
- <strong>和 <b> 的区别
前几天,看到这样的一个笑话:甲:“我精通前端开发”,乙:“strong和b的区别是什么?” 甲:.... 其实我也搞不清有什么区别,因此我整理了一下: 一.为什么会有这样一个问题 我们在一个没有附加式 ...
- open cv & vs
原来基于vs和msdn一起读视频,结果发现现在的函数不能用了.找不到合适的解码器了,只好转战opencv. 具体怎么用,网上查吧,不过opencv读视频的例子,可以见这个. http://blog.c ...
- javascript入门笔记7-计时器
计时器 语法: setInterval(代码,交互时间) 参数说明: 代码:要调用的函数或要执行的代码串. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms). 例子: & ...
- Awt & Swing
AWT 是抽象窗口组件工具包,是 java 最早的用于编写图形节目应用程序的开发包. Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的. 具体的说就是: AWT 是Abs ...
- UITabBarController的tabBarItem图标真机不显示
在xib中分别设置了图标选择和未选择的图片 模拟器效果 选中 未选中 当时使用多种机型进行测试时发现部分机型第一次进入应用除第一个tabbaritem图标可以显示,其余均不能显示,点击其余tabbar ...
- 移动端h5页面meta标签设置
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable= ...
- linux最大进程数
使用 ulimit -a 命令,查看 max user processes 的输出,就是系统最大进程数 core file size (blocks, -c) unlimited data seg s ...
- Docker使用入门
docker images 查看本地镜像 docker ps -a 查询容器 docker ps -l 查询最近使用容器 docker rm CONTAINER_ID 删除容器 docker rm ...
- Aizu:2200-Mr. Rito Post Office
快递 Time limit 8000 ms Memory limit 131072 kB Problem Description 你是某个岛国(ACM-ICPC Japan)上的一个苦逼程序员,你有一 ...