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

Unity 网格的细节级别 (LOD) 学习

Unity LOD学习

文档

网格的细节级别 (LOD)
https://docs.unity.cn/cn/2020.3/Manual/LevelOfDetail.html

在项目中使用

自动设置导入

文档:

https://docs.unity.cn/cn/2020.3/Manual/importing-lod-meshes.html

可以在外部 3D 应用程序中创建具有不同细节级别的网格以便用于 Unity 的 LOD 系统。如果正确命名了这些网格,则 Unity 在导入模型时会自动为这些网格创建游戏对象并配置 LOD Group 组件。

命名规范:

ExampleMeshName_LOD0 表示第一个 LOD 级别(即细节化程度最高的版本)
ExampleMeshName_LOD1
ExampleMeshName_LOD2

在这里插入图片描述

然后将BoxLODGroup导入为fbx,在unity中会自动创建LODGroup

在这里插入图片描述

直接使用,不导入让unity自行设置

  1. 创建一个空物体,并添加LOD Group组件
    在这里插入图片描述

  2. 设置LOD,
    在这里插入图片描述
    设置模型为LOD Group的子物体,如果不设置就没有用辣~
    在这里插入图片描述

  3. 设置完成,
    在这里插入图片描述

  4. 设置其他的距离
    在这里插入图片描述

  5. 设置完成

在这里插入图片描述

界面介绍

在这里插入图片描述

建议之间看Unity文档:

https://docs.unity.cn/cn/2020.3/Manual/class-LODGroup.html#transitions

原理

细节级别 (LOD) 是一种减少 Unity 渲染远距离网格所需的 GPU 操作数量的技术。
当场景中的某个游戏对象距离摄像机很远时,与距离摄像机很近的游戏对象相比,可以看到的细节将会减少。但默认情况下,Unity 会使用相同数量的三角形来渲染两个远近不同距离的游戏对象。这可能会浪费 GPU 运算资源,从而影响场景中的性能。
LOD 技术允许 Unity 根据与摄像机的距离来相应减少为游戏对象渲染的三角形数量。 要使用此技术,游戏对象必须具有大量网格,这些网格的几何体的细节级别逐渐降低。 这些网格称为 LOD 级别。游戏对象离摄像机越远,Unity 渲染的 LOD 细节级别越低。此技术减轻了这些远处游戏对象给硬件带来的负担,因此可以提高渲染性能。
LOD 级别是一个网格,用于定义 Unity 为游戏对象的几何体渲染的细节级别。当游戏对象使用 LOD 时,Unity 将根据游戏对象与摄像机的距离来显示该游戏对象的相应 LOD 级别。
每个 LOD 级别都存在于单独的游戏对象中,每个游戏对象都有一个显示该 LOD 级别的 Mesh Renderer 组件。对于最低级别的细节,可以使用公告牌资源 (Billboard Asset),这种情况下 Unity 将显示公告牌资源而不是 3D 网格。Unity 根据需要显示和隐藏这些游戏对象。LOD 级别必须是相关的游戏对象的子游戏对象。

注意点

要使用此技术,游戏对象必须具有大量网格,这些网格的几何体的细节级别逐渐降低。` 
当游戏对象使用 LOD 时,Unity 将根据游戏对象与摄像机的距离来显示该游戏对象的相应 LOD 级别。
LOD 级别必须是相关的游戏对象的子游戏对象。

与脚本的交互

在不显示对应LOD的时候物体上的脚本是否会运行?

现在LOD级别是3,我在LOD1级别上挂载脚本,是否可以运行?
LOD 1 的脚本会运行,且OnEnable 和OnDisable 在切换LOD的时候不会再次执行。

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    private void OnEnable()
    {
        Debug.Log("OnEnable:" + gameObject.name);
    }

    private void Update()
    {
        Debug.Log("Update:" + gameObject.activeSelf + "__" + gameObject.name);
    }

    private void OnDisable()
    {
        Debug.Log("OnDisable:" + gameObject.name);
    }
}

在这里插入图片描述在这里插入图片描述


http://www.kler.cn/news/323737.html

相关文章:

  • Python Web架构:微服务与服务网格的实践
  • C. Cards Partition 【Codeforces Round 975 (Div. 2)】
  • 强化-极限
  • Netty入门
  • 机器学习(4):机器学习项目步骤(一)——定义问题
  • Pytorch实现Transformer
  • 激光slam学习笔记4--slam_in_autonomous_driving编译碰到问题汇总
  • 基于Python+flask+MySQL+HTML的全国范围水质分析预测系统,可视化用echarts,预测算法随机森林
  • [Redis][Zset]详细讲解
  • FastAPI前置知识及快速入门
  • Python入门:类的异步资源管理与回收( __del__ 方法中如何调用异步函数)
  • CMake构建学习笔记18-cpp-httplib库的构建
  • 【目标检测】隐翅虫数据集386张VOC+YOLO
  • 【web阅读记录】web相关概念及知识整理
  • 【机器学习】——支持向量机
  • uni-app 封装websocket 心跳检测,开箱即用
  • SCAU学习笔记 - 面向对象程序设计课后习题
  • GAMES101(20节,动画和仿真)
  • 如何提升JavaScript安全性,保护应用程序免受威胁
  • Ubuntu 离线安装 docker
  • 深度对比:etcd、Consul、Zookeeper 和 Nacos 作为注册中心和配置中心的优势与劣势
  • 前端请求音频返回pcm流进行播放
  • 大数据毕业设计选题推荐-豆瓣电子图书推荐系统-数据分析-Hive-Hadoop-Spark
  • 【Anti-UAV410】论文阅读
  • Miniforge详细安装教程(macOs和Windows)
  • 尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)
  • SpringBoot gateway如何支持跨域?
  • Spring的IOC和DI入门案例分析和实现
  • AWS注册时常见错误处理
  • RabbitMQ——消息的可靠性处理