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和模型优化(九)
下一章:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/601573.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest(二):关于pytest自动化脚本编写中,初始化方式setup_class与fixture的对比

一、自动化脚本实例对比 下面是一条用例,使用pytest框架,放在一个类中,两种实现方式: 1.1 setup_class初始化方式 1. 优点: 代码结构清晰,setup_class 和 teardown_class 看起来像传统的类级别的 setup 和 teardown 方法。2. 缺点: 使用 autouse=True 的 fixture 作为…

free5gc+ueransim操作

启动free5gc容器 cd ~/free5gc-compose docker-compose up -d 记录虚拟网卡地址,eth0 ifconfig 查看并记录amf网元的ip地址 sudo docker inspect amf "IPAddress"那一行,后面记录的即是amf的ip地址 记录上述两个ip地址,完成UER…

MCU通过UART/SPI等接口更新flash的方法

MCU可提供一种方便的方式来更新flash内容以进行错误修复bugfix或产品更新update。可以使用以下任何模式更新flash内容: •系统内编程(ISP,In-System Programming):用于使用内部bootloader程序和UART/SPI对片上闪存进行编程program或重新编程reprogram。 •应用程序内编程…

一毛钱不到的FH8208C单节锂离子和锂聚合物电池一体保护芯片

前言 目前市场上电池保护板,多为分体方案,多数场合使用没有问题,部分场合对空间有进一步要求,或者你不想用那么多器件,想精简一些,那么这个芯片就很合适,对于充电电池来说,应在使用…

AI论文速读 |2024[IJCAI]TrajCL: 稳健轨迹表示:通过因果学习隔离环境混杂因素

题目: Towards Robust Trajectory Representations: Isolating Environmental Confounders with Causal Learning 作者:Kang Luo, Yuanshao Zhu, Wei Chen, Kun Wang(王琨), Zhengyang Zhou(周正阳), Sijie Ruan(阮思捷), Yuxuan Liang(梁宇轩) 机构&a…

AI数据中心网络技术选型,InfiniBand与RoCE对比分析

InfiniBand与RoCE对比分析:AI数据中心网络选择指南 随着 AI 技术的蓬勃发展,其对数据中心网络的要求也日益严苛。低延迟、高吞吐量的网络对于处理复杂的数据密集型工作负载至关重要。本文分析了 InfiniBand 和 RoCE 两种数据中心网络技术,帮助…

91、动态规划-不同的路径

思路: 首先我们可以使用暴力递归解法,无非就是每次向下或者向右看看是否有解法,代码如下: public class Solution {public int uniquePaths(int m, int n) {return findPaths(0, 0, m, n);}private int findPaths(int i, int j,…

数据结构-线性表-应用题-2.2-12

1)算法的基本设计思想:依次扫描数组的每一个元素,将第一个遇到的整数num保存到c中,count记为1,若遇到的下一个整数还是等于num,count,否则count--,当计数减到0时,将遇到的下一个整数保存到c中,计…

04.2.配置应用集

配置应用集 应用集的意思就是:将多个监控项添加到一个应用集里面便于管理。 创建应用集 填写名称并添加 在监控项里面找到对应的自定义监控项更新到应用集里面 选择对应的监控项于应用集

[疑难杂症2024-004] 通过docker inspect解决celery多进程记录日志莫名报错的记录

本文由Markdown语法编辑器编辑完成. 写作时长: 2024.05.07 ~ 文章字数: 1868 1. 前言 最近我负责的一个服务,在医院的服务器上线一段时间后,利用docker logs查看容器的运行日志时,发现会有一个"莫名其妙"的报错&…

Verilog中4bit超前进位加法器

4bit超前进位加法器的逻辑表达式如下: 中间变量GiAiBi,PiAi⊕BiGi​Ai​Bi​,Pi​Ai​⊕Bi​ 和:SiPi⊕Ci−1Si​Pi​⊕Ci−1​,进位:CiGiPiCi−1Ci​Gi​Pi​Ci−1​ 用Verilog语言采用门级描述方式&am…

Buuctf-Misc题目练习

打开后是一个gif动图,可以使用stegsolve工具进行逐帧看。 File Format:文件格式 Data Extract:数据提取 Steregram Solve:立体试图 可以左右控制偏移 Frame Browser:帧浏览器 Image Combiner:拼图,图片拼接 所以可以知道我们要选这个Frame Browser …

odoo实施之创建行业demo

创建数据库,添加公司数据 选择应用,获取15天免费试用 创建完成 设置客户公司logo 创建用户 更改用户语言 前置条件:配置邮件 开发模式下,额外信息 加载demo数据

微信小程序 手机号授权登录

手机号授权登录 效果展示 这里面用的是 uni-app 官方的登录 他支持多端发布 https://zh.uniapp.dcloud.io/api/plugins/login.html#loginhttps://zh.uniapp.dcloud.io/api/plugins/login.html#login 下面是代码 <template><!-- 授权按钮 --><button v-if&quo…

微软 AI 研究团队推出 SIGMA:一个开源研究平台,旨在推动混合现实与人工智能交叉领域的研究与创新

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

如何永久删除服务和相关文件夹

如何永久删除服务和文件夹&#xff1f; How can I remove the service and folder permanently? 以AlibabaProtect服务为例 takeown /f "C:\Program Files (x86)\AlibabaProtect sc delete AlibabaProtect我运行了上述操作&#xff0c;并通过任务管理器杀死了“阿里巴巴…

AI时代的就业转型与个人发展

AI时代的就业转型与个人发展&#xff1a;机遇与挑战并存 AI出现的背景&#xff1a;技术革命的浪潮 随着21世纪信息技术的突飞猛进&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一场技术革命的产物&#xff0c;正逐渐从科幻小说走向现实世界的…

linux的信号量的使用

1.信号量 在多线程情况下&#xff0c;线程要进入关键代码就得获取信号量&#xff08;钥匙&#xff09;{sem_init(&sem, 0, 0);}&#xff0c;没有信号量的情况下就一直等待sem_wait(&sem)&#xff0c;只到别人把钥匙&#xff08;sem_post(&sem)&#xff09;给你。 …

淘宝数据分析——Python爬虫模式♥

大数据时代&#xff0c; 数据收集不仅是科学研究的基石&#xff0c; 更是企业决策的关键。 然而&#xff0c;如何高效地收集数据 成了摆在我们面前的一项重要任务。 本文将为你揭示&#xff0c; 一系列实时数据采集方法&#xff0c; 助你在信息洪流中&#xff0c; 找到…

Linux提示:mount: 未知的文件系统类型“ntfs”

mount: 未知的文件系统类型“ntfs” 在Linux系统中&#xff0c;如果遇到“mount: 未知的文件系统类型‘ntfs’”的错误&#xff0c;这通常意味着您的系统没有安装支持NTFS文件系统的软件。为了挂载NTFS文件系统&#xff0c;您需要安装ntfs-3g软件包。以下是如何在不同Linux发行…