Unity LOD LODGroup (LOD Bias)

发表于2017-08-27
评论0 3.4k浏览

LOD是( Level of Detail)的缩写,表示细节级别,它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染效率的常用方法,缺点是占用大量内存。使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式。


LODGroup

  • 使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式
  • 根据摄像机离对象的远近,切换不同细节级别的对象,达到一种目的:近处的对象细节丰富,远处的对象忽略很多细节,从而减少渲染计算,提高流畅度。
  • 流畅度的提高,是靠切换不同级别的对象,这就使的原来一个对象,现在需要几种不同级别的对象,这增加了运行时内存的使用,也增加了美术的工作量

Shader LOD 
- 这个是另外一种控制细节级别的技术 
- 在一个Shader当中,可以给不同的subshader指定不同的LOD属性,例如:

    SubShader {
        LOD 200
        Pass {
//insert shader pass here
        }
    }
    SubShader {
                LOD 100
        Pass {
//insert shader pass here
        }
    SubShader {
                LOD 0
        Pass {
//insert shader pass here
        }
    }
  • 然后,就可以在脚本代码中指定一次全局Shader.globalMaximumLOD值,该值是LOD所执行的最大值,也就是说所有shader中的subshader的LOD值小于该全局值,该subshader才被执行。当然,也可以单独设置Shader.maximumLOD控制个别shader(??这里有疑问)
  • 参考:Unity Technologies - jonas echterhoff

LOD Bias 
- 执行unity编辑器菜单:Edit > Project Settings > Quality,会打开Quality Setting窗口 
- 参考 : 官方文档 Quality Setting 
- LOD Bias主要控制根据物体才屏幕中的百分比来控制LOD的变化,表现用大白话描述即是:如果该值小那么,摄像机离物体距离稍微有些变化,不同细节物体即会切换,该值大,那么摄像机需要与物体有很大的距离才会切换。 
- 目的:就是控制整个场景的细节。当应用运行的平台比较好,会倾向使用较高级别的画质,这时就把离摄像机虽然很远(相对来说)的物体也让他以好的级别渲染,这样整体画质更好;反之,设备较差,那么,会希望离摄像机最近时才展示最好级别的物体对象,具体稍微远(相对来说)立马切换成稍差级别的物体。这样在整体画质级别不变的情况下,保持流畅。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论