游戏性能优化指南:如何最大程度提升Unity游戏的帧率和流畅度

这篇具有很好参考价值的文章主要介绍了游戏性能优化指南:如何最大程度提升Unity游戏的帧率和流畅度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

指标介绍:

  • FPS(Frames per Second):显示当前游戏帧率。帧率越高,游戏画面越流畅。为提高帧率,可减少游戏对象数量、优化渲染方式等。

  • Draw Calls:显示当前帧需要渲染的次数。过多的Draw Calls会导致游戏运行缓慢。降低此指标可通过优化场景、材质或使用批处理技术等方式。

  • Tris:显示当前帧需要渲染的三角形数量。过多的三角形数量同样会导致游戏运行缓慢。减少此指标可采取降低模型细节、使用LOD技术等方法。

  • Memory:显示当前游戏所使用的内存大小。过高的内存占用会导致游戏运行缓慢或崩溃。降低此指标可通过优化资源加载和释放方式等方法。

  • Audio:显示当前游戏音频的播放情况,包括音频资源的大小和播放时间。优化音频资源的加载和播放方式可减少CPU占用率,提高游戏性能。

通过实时监控这些性能指标,开发者可以及时发现问题并采取相应的优化措施,提高游戏性能和流畅度。

如何优化Tris:

在Unity中,Tris是指场景中所有三角形的数量,也称为三角形数或面数。Tris是影响游戏性能的重要指标,它直接影响游戏的帧率和渲染性能。

Tris数量过多会导致游戏的帧率下降,因为GPU需要处理更多的三角形,在性能较差的设备上可能会出现卡顿现象。因此,在制作游戏时,需要尽可能减少Tris的数量,以提高游戏的运行效率。

以下是一些常用的减少Tris数量的方法:

  1. 使用简单的几何形状:在制作游戏时,尽量使用简单的几何形状,例如球体、立方体、圆柱等。这些几何形状的Tris数量较少,可以有效地减少三角形数量。

  2. 使用LOD(Level Of Detail):在场景中使用不同级别的模型或材质,以适应不同距离的观察者。在近距离观察时,使用高级别的模型或材质;远距离观察时,使用低级别的模型或材质。这样可以有效减少Tris数量,提高游戏性能。

  3. 合并网格:将多个网格合并为一个网格,以减少Tris数量。可以使用Unity自带的网格合并工具或第三方插件,例如ProBuilder。

  4. 使用遮挡剔除(Occlusion Culling):根据场景中物体的可见性,只渲染可见的物体,从而减少不必要的渲染操作。这样可以减少渲染的Tris数量,提高游戏性能。

通过使用这些技术,开发者可以有效减少Tris数量,优化游戏性能,提高游戏的帧率和流畅度。

批处理优化方法:

  1. 合并相同材质球的多个网格:将多个使用相同材质球的网格合并成一个网格,减少批次的数量。在使用Mesh Combine工具时,设置CombineInstances数组的材质球为相同的材质球即可。

  2. 使用材质球批次合并:使用相同的材质球对多个物体应用相同的材质,或者使用批处理材质球,将多个物体合并到同一个批处理中。

  3. 使用 GPU Instance(GPU 实例化):通过使用 GPU 实例化技术,可以将多个相同的网格实例化为一个批次进行渲染。这样可以减少不必要的绘制调用和渲染开销,提高游戏性能。

  4. 使用静态批处理:将不会进行移动或变化的物体合并为一个静态批次。静态批处理只需要进行一次渲染调用,减少了渲染开销。

  5. 减少动态批处理中的顶点数:动态批处理会对每个物体的每帧顶点进行重新计算,因此顶点数越多开销越大。可以通过优化模型或使用低多边形模型来减少顶点数。

  6. 使用 GPU Skinning:GPU Skinning 是一种在 GPU 上执行的骨骼动画渲染技术,可以大幅度提高骨骼动画的性能。它通过将计算部分放到 GPU 上,减轻了 CPU 的负载。

以上是一些常用的批处理优化方法。通过合理地使用这些方法,可以减少绘制调用次数和渲染开销,提高游戏的性能和流畅度。

最后,在进行优化时,建议使用 Unity Profiler 进行性能分析,找出性能瓶颈并有针对性地进行优化。同时,也可以尝试使用不同的优化方案,并进行测试和比较,选择最适合当前项目的优化方法。

具体验证:

一、让场景卡顿的原因

1.物体的阴影

开启软阴影由5->17

unity帧率优化,Unity3D,unity

unity帧率优化,Unity3D,unity

2.物体的位置深度影响

unity帧率优化,Unity3D,unity

如果将最左边的物体位置(0,-0.12,-1.62)->(0,1.05,-1.62)

unity帧率优化,Unity3D,unity

Batches 从7->8.

3.物体材质个数影响

unity帧率优化,Unity3D,unity

如果将材质统一成一个。batches 会从5->3

unity帧率优化,Unity3D,unity

4.Batches受子物体数量上的MeshRender 影响。(项目中多这种)

unity帧率优化,Unity3D,unity

父物体多渲染一个MeshRender  4->5

unity帧率优化,Unity3D,unity

 二、使用到的验证技术

Frame Debugger(帧调试器)是Unity引擎中的一个强大工具,它提供了详细的关于游戏帧渲染过程的信息。通过使用帧调试器,开发者可以更好地理解游戏在每一帧中发生的事情,并对性能进行调试和优化。

帧调试器可以帮助开发者解决以下问题:

  1. 渲染顺序和批处理:帧调试器可以显示每一帧中的渲染顺序以及批处理情况。这使开发者能够识别哪些物体被合并到同一个批次渲染,以及是否存在未优化的渲染调用。

  2. Draw Calls(绘制调用)数量:帧调试器可以显示每一帧中的Draw Calls数量,即渲染管线中执行的渲染指令次数。通过降低Draw Calls数量,开发者可以提高游戏的性能。

  3. 资源使用情况:帧调试器提供了对纹理、材质和着色器等资源的使用情况的可视化展示。这有助于开发者发现资源的浪费和优化潜力。

  4. 三角形数量:帧调试器显示每个物体或模型的三角形数量。这可以帮助开发者识别具有高三角形数量的物体,并尝试优化它们以提高游戏性能。

通过使用帧调试器,开发者可以深入了解游戏的渲染流程和性能瓶颈,并采取相应的优化措施。优化后的游戏将拥有更高的帧率、更顺畅的动画和更好的用户体验。因此,帧调试器是Unity游戏开发过程中不可或缺的一项工具。

解决方式:

介绍几个插件吧,GPU、MeshBacker 、 Mesh Combine文章来源地址https://www.toymoban.com/news/detail-736348.html

到了这里,关于游戏性能优化指南:如何最大程度提升Unity游戏的帧率和流畅度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity GPU Skinning Tool: 提升3D游戏动画性能的新利器

    项目地址:https://gitcode.com/ForeverZack/Unity-Gpu-Skinning-Tool 在Unity引擎的世界里,Unity GPU Skinning Tool是一个强大的工具,它将骨骼动画计算从CPU转移到GPU,显著提高了游戏中的角色动画性能。对于那些需要大量3D角色与复杂动画的游戏开发者而言,这是一个非常值得尝试的技术。 Un

    2024年04月25日
    浏览(36)
  • Unity游戏开发客户端面经——性能优化(初级)

    前言:记录了总6w字的面经知识点,文章中的知识点若想深入了解,可以点击链接学习。由于文本太多,按类型分开。这一篇是 性能优化 常问问题总结,有帮助的可以收藏。 性能优化,主要聚焦在 内存、 CPU、GPU 三大方向上。 1.1 详细介绍    Unity内存占用组成 Unity(基本

    2024年03月22日
    浏览(41)
  • Cocos 微信小游戏内存与性能优化指南(iOS端)

    前言 由于微信小游戏普通模式是基于 C++ 渲染层与 JS 编译引擎在原生平台模拟 HTMLCanvas 渲染能力的方案,其中 JS 代码的编译执行效率会极大影响游戏运行的性能。通常 JS 引擎都提供了 JIT 能力用于提高编译速度,这使得小游戏能够在 Android 端取得优异的性能。但是在 IOS 端由

    2024年02月08日
    浏览(28)
  • Unity手机游戏发热发烫优化指南与技巧

    Unity手机游戏发热发烫优化指南与技巧 很多小伙伴做完游戏后,发布到Android,运行,游戏很流畅,也不卡顿,但是跑一会游戏,手机就发热,发烫。客户提出需求,能否让它不发烫? 本文从以下3方面来分析手机发烫的问题,给大家提供一个解决此类问题的通用思路: 对啦!这里有

    2024年02月10日
    浏览(43)
  • 顶级工程师教你移动端游戏性能优化!Unity官方教程!

    ** 本期将给大家介绍如何提高资源、项目配置和图形的性能。所有教程均来自Unity官方,感兴趣的朋友可以去Unity官网查看完整教学内容。 降低或禁用 Accelerometer Frequency(加速度计频率) Unity每秒钟是会以一定次数统计移动设备的加速度计状态的。如果我们的程序不会用到加

    2024年02月20日
    浏览(31)
  • 【Unity URP 小知识】SRP如何提升了性能

    渲染过程,一般都是先设置各类状态(设置如何清除各种显卡中的帧缓冲,设置使用的Shader程序,设置要绘制的顶点数据(以及Shader中的顶点数据如何对应到这些顶点数据),设置要使用的Uniform变量,设置面剔除,设置深度缓冲、模板缓冲,Blend混合等等),然后调用DrawCa

    2024年02月12日
    浏览(31)
  • Elasticsearch 8.X DSL 如何优化更有助于提升检索性能?

    根据我的实战和咨询经验,我发现如下几个问题。 当然,这是在和球友交流确认问题之后总结出来的。 2.1 问题1:bool 组合嵌套过深。 官方实际是有参数来约束的,indices.query.bool.max_nested_depth——bool 最大支持的嵌套层数是 20 ,并且过大的嵌套层数会导致“堆栈溢出”异常问

    2024年02月16日
    浏览(25)
  • 活字格性能优化技巧(3):如何巧用CDN提升含页面的访问速度

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。   上两篇中我们分享了如何利用 数据库主键 和 表格设置默认不加载数据 来提升应用系统访问的性能。在本篇中一起来看看如何

    2023年04月10日
    浏览(28)
  • Android 上玩转 DeepLink:如何最大程度的向 App 引流,【微信小程序

    android:name=“.RouterActivty” android:theme=“@android:style/Theme.Translucent.NTitleBar” 我们假设一个用例:用户在印象笔记里写了一篇笔记,笔记里有一个链接: http://news.zhoulujue.com/article/123456/ 。 那么问题来了:用户点击以后,将会发生什么? 答案是:很大的可能是系统弹出一个对话框

    2024年04月27日
    浏览(29)
  • 【Unity3D赛车游戏】【五】Unity中汽车加速效果是如何优化的?

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity游戏demo – 😶‍🌫️版本: Unity2021 😶‍🌫️适合人群:Unity初学者 😶‍🌫️学习目标:3D赛车游戏的基础制作 😶‍🌫️技能掌握

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包