加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Unity学习(十二)场景优化LOD

(2016-04-25 18:12:12)
标签:

unity&lod

分类: Unity
最近项目真机测试,在场景没跑多久就有比较明显的发热情况,分析后发现渲染的消耗比较大,还好unity提供比较方便的渲染优化工具LOD。

LOD技术即Levels of Detail的简称,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

一.场景LOD
1.QualitySettings中的两个参数Lod Bias和Maximun LOD Level
Lod Bias:LOD的偏移值,预先设置的【LOD百分比】 / Lod Bias = 当前LOD的百分比
当设置一个最高效果,如果Lod Bias数值越大时,那么【LOD百分比】越小,此时兼容的物体越远,这时细节不变。在真实的环境中这样理解,在高配置机器上,设置了高画质,并设置对应的Lod Bias非常大,那么物体的细节就不会根据摄像机距离进行变化,反之设置低配置时,Lod Bias设置越小,那么细节变化就会非常明显。
Maximun LOD Level:游戏中使用的最高LOD级别。在该级别以上的模型不会被使用,并且在编译时忽略。(这将节省存储空间和内存空间)。

2.LOD Group组件(为了设置LOD百分比更加准确,将Lod Bias设置为1
1.创建空对象,增加LodGroup组件。
2.将要区分细节等级的模型分别加上_lod0,_lod1,_lod2,然后分别拖到对应的百分比上。
3.观察scene试图,设置对应的百分比即可。
http://s11/mw690/002wvREMgy71bUaXxx08a&690

这里选用三种粒子进行测试,RGB三种颜色,从近到远。
效果如下:

二.Shader LOD
在弄shader的时候,经常会看到LOD这个关键词,或许我们只知道有这个功能,并没有真正去使用过。其实可以想象一下,一个优化的非常好的游戏,绝不放过任何可以优化的方案,只是要付出更多的时间和精力。
方法比较简单,在同一shader不同的subshader中设置了LOD的参数之后,然后在代码中通过设置Shader.globalMaximumLOD的值来控制选用哪个级别的shader。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有