用Unity 许久了,经历过一个ARPG、一个战斗卡牌,这一次要准备做MMO,又有很多新的东西要学。
MMO对于其它游戏,首先让人纠结的就是大地图的问题,有很多优化手段,一点一点来做。
之前是听过LOD的,就先来学习LOD。
LOD是Level Of Detais 的简称,多细节层次。在游戏场景中,根据摄像机与模型的距离,来决定显示哪一个模型,一般距离近的时候显示高精度多细节模型,距离远的时候显示低精度低细节模型。
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
Note:
LOD至少需要一份高精度模型、一份低精度模型,这会增大安装包大小。
下面开始吧。
1、创建一个Cube,作为高模,注意高模以 _LOD0 结尾
创建一个 Capsule 作为低模,注意低模以 _LOD1 结尾,数字越大,代表模型精度越低!!
2、新建一个 GameObject,添加 LOD Group 组件
3、LOD Group 面板如下图
我们这里测试只有LOD0、LOD1,所以呢 右键 删掉 LOD2 吧!
4、把Map_LOD0 拖到 LOD0 里面,把 Map_LOD1 拖到 LOD1 里面
拖过去之后,弹出提示框,点 Yes 。
拖过去之后是这样的。转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
5、保存下,现在可以测试下,拖动 小摄像机 ,就可以看到效果
随着摄像机离模型越来越远,到了一定距离的时候,就从 Map_LOD0 切换到了 Map_LOD1。
但是仔细点就会发现,摄像机已经移动到了 LOD1,却没有马上切换到 LOD1,而是再过了一段距离才切换到LOD1,这是怎么回事?
在查看LOD的资料之后,发现这其实是 精度设置的问题。出现上面的问题是因为精度设置的低。
6、在Quality 面板中 设置 LOD 精度
在 Quality 面板的最下方找到 LOD Bias精度设置
注意,这里的 LOD 精度设置,里面填的数值是偏移数值,类似于缓冲。
数值越大,缓冲越大,当摄像机与模型距离,到达了需要切换到 低模的时候,不会立马切换,而是过了这个缓冲值再切换。
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
设置成 1 ,再次查看效果
现在是即时切换 了。
测试项目下载:
http://pan.baidu.com/s/1sl8FkGt