惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
Arctic Wolf
U
Unit 42
爱范儿
爱范儿
WordPress大学
WordPress大学
博客园 - 司徒正美
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
美团技术团队
博客园_首页
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
H
Hacker News: Front Page
博客园 - 叶小钗
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
罗磊的独立博客
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Help Net Security
Help Net Security
雷峰网
雷峰网
S
Security @ Cisco Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Forbes - Security
Forbes - Security
T
Troy Hunt's Blog
V
V2EX
博客园 - 聂微东
Cloudbric
Cloudbric
大猫的无限游戏
大猫的无限游戏
Google Online Security Blog
Google Online Security Blog
S
Security Affairs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Commits to openclaw:main
Recent Commits to openclaw:main
IT之家
IT之家
S
SegmentFault 最新的问题
T
Threat Research - Cisco Blogs
J
Java Code Geeks
H
Heimdal Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
The Cloudflare Blog
Simon Willison's Weblog
Simon Willison's Weblog
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

学无止境

肌电手环数据初探 - 人机交互 - 未来 在Mac系统中实现STLink烧录固件(不用虚拟机!) - MacBook - 不看会后悔的实用技巧分享 hexo-action修复ssh-keyscan not found问题 - 个人博客 - 不看会后悔的实用技巧分享 Mac使用体验~ - 心情 - 清风明月 手拉手教你部署思源笔记+发布服务+外网访问 - 极空间 - 我的NAS捣鼓笔记 硕士生涯致谢 - 永恒 - 清风明月 硕士毕设展示,捣鼓一下未来适合AR眼镜的文本输入方式~ - 永恒 - 清风明月 2023 XR 设备体验分享~ - 永恒 - 清风明月 Rokid 空间小程序《我们的地球》开源~ - Rokid - 未来 Unity3D特效学习笔记(1)魔法球 - Unity3D - 未来 Rokid 新项目构建过程中,可能遇到的问题及解决方案 - Rokid - 未来 AR 应用创意分享:The Seed - 永恒 - 清风明月 AR 应用创意分享:魔刀千刃! - 永恒 - 清风明月 AR 应用创意分享:The Assistant - 永恒 - 清风明月 USB接口介绍 - 杂七杂八 - 不看会后悔的实用技巧分享 Unity3D优化笔记(10)其他优化 - Unity3D - 未来 Unity3D优化笔记(9)合并网格、动画、音频、物理优化 - Unity3D - 未来 Unity3D优化笔记(7)光照优化、图片优化 - Unity3D - 未来 Unity3D优化笔记(6)遮挡剔除 - Unity3D - 未来
Unity3D优化笔记(8)UI优化、模型优化和LOD技术 - Unity3D - 未来
本文作者: 宇凌喵 @学无止境 · 2023-10-19 · via 学无止境
  • 尽量避免使用 IMGUI 来做游戏时的 UI,因为 IMGUI 的开销比较大。
  • 如果一个 UGUI 的控件不需要进行射线检测,则可以取消勾选 Raycast Target。
  • 尽量避免使用完全透明的图片和 UI 控件。因为即使完全透明,我们看不见它,但它仍然会产生一定的性能开销。如果 UI 中一定要用到很多张完全透明的图片,则建议把这些完全透明的图片由单独的摄像机进行渲染,且这些 UI 不要叠加到场景摄像机的渲染范围内。
  • 尽量避免 UI 控件的重叠。如果多个 UI 有重叠的部分,则会稍微增加一些额外的计算和渲染的开销。虽然这部分开销通常是非常小的,但我们最好也尽量避免这种情况。
  • UI 的文字使用 TextMeshPro 比使用 Text 的性能更好。但是 TextMeshPro 对中文的支持不太好。

# 模型优化

模型导入 Unity 后,可以选中这个模型,在 Inspector 窗口设置它的属性。

  • 在 Model 选项卡

    • 启用 Mesh Compression 可以压缩模型,压缩程度越高,模型精度越低,但是模型也会节省一些空间。
    • 如果该模型不需要用代码来读写,则可以取消勾选 Read/Write Enabled。
    • 设置 Optimize Game Objects 可以优化模型,通常默认选择 Everything。
    • 如果该模型不需要使用法线,则可以把 Normals 设置为 None。
    • 如果该模型不需要用混合变形法线,则可以把 Blend Shape Normals 设置为 None。
    • 如果该模型不需要使用切线,则可以把 Tangents 设置为 None。
    • 如果该模型不需要用光照 UV 贴图,则可以取消勾选 Swap UVs 和 Generate Lightmap UVs。
  • 对于 Rig 选项卡

    • Animation Type 如果选择 Generic Rig 会比 Humanoid Rig 性能更好,但无法使用动画重定向。一般使用 Humanoid Rig 是为了对人型的角色进行动画重定向,所以要根据自己的情况来选择。
    • 如果模型不需要使用动画,例如一些完全不会动的石头等物体,则可以将 Animation Type 选择为 None。
    • Skin Weights 默认是 4,对于一些不重要的动画对象,本变量可以设置为 1,这样可以节省计算量。
    • 建议勾选 Optimize Bones,这样会自动剔除没有蒙皮顶点的骨骼。
    • 勾选 Optimize Game Object 可以提高角色动画的性能,但是在某些情况下可能会导致角色动画出现问题,是否勾选要看动画效果而定。
  • 对于 Animation 选项卡

    • 如果模型不需要使用动画,则可以取消勾选 Import Animation。

    • 设置 Anim.Compression 可以调整动画的压缩方式

      • Off 表示不压缩动画,这样动画文件可能会占用较大的空间,但是在运行时不会有任何信息损失,
      • Keyframe Reduction 表示使用关键帧算法来压缩动画,这样会显著减小动画文件的大小,同时保持相对较高的动画质量,
      • Optimal 表示会尽可能高地压缩网格,但是这样也会导致压缩时间增加。
  • 对于 Materials 选项卡

    • 如果使用 Untiy 的默认材质,则可以把 Material Creation Mode 设置为 None。

Edit——Project Settings——Player—— 勾选 Optimize Mesh Data,这样一来,Unity 会在构建的时候中对网格数据进行优化处理,以达到提高游戏性能的效果。但是这样往往会修改网格,我们勾选之后应该要进行测试,确保没有问题,再确定启用它。

把多个模型的网格合并为一个网格。可以使用自己写代码,使用 Unity 自带的 CombineMeshes 方法,也可以使用资源商店的插件,在资源商店搜 Mesh Combine 可以搜索到相关的插件,例如 Easy Mesh Combine Tool 等插件。

减少模型的顶点、面、材质、骨骼、蒙皮网格。这一般由美术人员来完成。

# LOD(Level of Detail)

LOD 是 Level of Detail 的简称,意思是细节层次,它是一种优化技术。

LOD 的原理,就是我们可以为一个游戏对象设定多个模型,这些模型消耗的游戏性能由高到低排列。会根据摄像机距离模型的远近自动显示对应的模型。近的时候显示最精细的模型,距离中等的时候显示没那么精细的模型,远的时候显示粗糙的模型,最远的时候可以隐藏该模型。

使用 LOD 技术能起到优化渲染性能的效果。但是使用 LOD 技术也会增加内存占用。

在 Unity 中可以使用 LODGroup 组件来实现 LOD 技术。