当前位置: 首页 > news >正文

Unity 性能优化之LOD技术(十)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激!

文章目录

  • LOD技术效果
  • 一、LOD技术是什么?
  • 二、LODGroup组件介绍
  • 三、LODGroup组件使用步骤
    • 添加组件
    • 添加模型
  • 四、Project Settings中与LOD组件相关参数
  • 总结


LOD技术效果

使用远、中、近三种情况来实现效果,当距离很远的时候模型就会隐藏不可见(视频没有录制到这种情况,不影响),如下视频:

LOD技术效果

一、LOD技术是什么?

LOD是Level of Detail的简称,意思是细节层次,它是一种优化技术。
LOD的原理,就是我们可以为一个游戏对象设定多个模型,这些模型消耗的游戏性能由高到低排列。会根据摄像机距离模型的远近自动显示对应的模型。
近的时候显示最精细的模型,距离中等的时候显示没那么精细的模型,远的时候显示粗糙的模型,最远的时候可以隐藏该模型。
使用LOD技术能起到优化渲染性能的效果。但是使用LOD技术也会增加内存占用

二、LODGroup组件介绍

有三种模式可以选择,None 、Cross Fade 和 Speed Tree
在这里插入图片描述
None 就是一个默认模式,不作处理。
Cross Fade为交叉淡入淡出,在这个选下还有一个可变属性叫Fade Transition Width(淡入淡出过渡宽度)Fade Transition Width 是一个从0~1之间的值,代表淡入淡出的过渡区域占当前LOD级别的比例。如果值较小的话,可以延迟两个LOD级别混合的开始并且过渡更快,因为Unity通常使用的是屏幕空间抖动或透明度来实现交叉渐变。
在这里插入图片描述
peed Tree 只需要物体提供0~1的状态,然后两个LOD级别的混合是从0开始到1结束的,也就是开始时是与前一级别的LOD一致,转换结束时就与后一个LOD级别完全匹配了。

三、LODGroup组件使用步骤

添加组件

把LODGroup组件添加在一个空物体身上。这个空物体身上不添加MeshRenderer组件,也不添加MeshFilter组件,但可以添加碰撞器。如果要添加刚体、脚本等,也可以添加到这个空物体身上的。
右击它们中的一个,点击Insert Before可以添加一个新的LOD级别到渲染条上。
右击它们中的一个,点击Delete,则可以删除该LOD级别。
鼠标悬停在两个LOD级别之间,按住鼠标左键,左右拖动,可以调整LOD级别的范围。

添加模型

LOD级别LOD 0、LOD 1、LOD 2分别表示摄像机从近处看、从中等距离处看、从远处看时,所使用的模型的信息。Culled表示不渲染该模型。
点开下方的LOD 0、LOD 1、LOD 2,点击+号可以添加在这种情况下要显示的模型
在该空物体的LODGroup组件中,点击选中要设置的LOD级别,在Renderers下方点击Add可以选择要显示的游戏对象,点击-号可以移除该游戏对象。
在这里插入图片描述

四、Project Settings中与LOD组件相关参数

Edit——Project Settings——Quality,中有控制整个项目LOD的参数。
LOD Bias的值小,则摄像机离物体的距离稍微有些变化,则不同的LOD级别就会切换。如果LOD Bias的值大,则摄像机需要与物体有比较大的距离变化,不同的LOD级别才会切换。

Maximum LOD Level表示所有LOD Group组件最大能使用LOD级别,超过这个限制的LOD级别的模型不会显示。注意,LOD级别0大于LOD级别1,LOD级别1大于LOD级别2,依次类推。例如把这个值设置为1,则即使摄像机到物体的距离达到了LOD级别为0的范围,则也不会切换到LOD级别为0的模型来显示。例如把这个值设置为2,则即使摄像机到物体的距离达到了LOD级别为0或者LOD级别为1的范围,则也不会切换到这些模型来显示。
在这里插入图片描述

总结

好记性不如烂笔头!
上一章:链接: 性能优化之UI和模型优化(九)
下一章:

相关文章:

  • vue 将echart 下载为base64图片
  • 【计算机毕业设计】谷物识别系统Python+人工智能深度学习+TensorFlow+卷积算法网络模型+图像识别
  • 解决 Spring Cloud GateWay报错:Exceeded limit on max bytes to buffer : 262144
  • 如何把docker里的内容拷贝出来
  • 挑战你的数据结构技能:复习题来袭【6】
  • 小白级教程—安装Ubuntu 20.04 LTS服务器
  • C++数组实现推箱子游戏
  • Python数据框操作 -- 提取数据
  • OpenCV中的圆形标靶检测——斑点检测算法(二)
  • 如果你收到客户这样的回复,说明订单快了!
  • Intersection Observer API---交叉观察器 API
  • java判断申请时间是否不晚于请假时间的下周一
  • 我的创作纪念日-成为CSDN创作者的 第4096天
  • 会计电子档案系统方案
  • 图像关键特征描述方法-小目标
  • 《深入 React 技术栈》
  • docker-consul
  • export和import的用法总结
  • overflow: hidden IE7无效
  • React Native移动开发实战-3-实现页面间的数据传递
  • React-Native - 收藏集 - 掘金
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Vim 折腾记
  • windows下如何用phpstorm同步测试服务器
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 浮动相关
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于HAProxy的高性能缓存服务器nuster
  • ------- 计算机网络基础
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 目录与文件属性:编写ls
  • 收藏好这篇,别再只说“数据劫持”了
  • 移动端 h5开发相关内容总结(三)
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​Python 3 新特性:类型注解
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​人工智能书单(数学基础篇)
  • ###C语言程序设计-----C语言学习(6)#
  • #Linux(权限管理)
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2020)Java后端开发----(面试题和笔试题)
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)VC++中ondraw在什么时候调用的
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)