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

Unity项目性能优化列表

1、对象池

2、检查内存是否泄露。内存持续上升(闭包、委托造成泄露)

3、检查DrawCall数量,尽量减少SetPassCall

4、尽量多的利用四种合批

  1. 动态合批(Dynamic Batching)
  2. 静态合批(Static Batching)
  3. GPUInstancing
  4. SRP Batcher

动态合批消耗内存把多个网格组合在一起合并提交渲染, 既然是网格合并,那对合并的物体有很多要求

静态合批就是提前把物体的网格缓存一份。

GPUInstancing是利用GPU控制顶点动画,略过了CPU额外处理那一步

SRP Batcher的原理是缓存渲染数据和渲染状态,只有这俩发生变化时才会提交Drawcall,因此也是浪费内存换效率的做法。

5、3D游戏 LOD技术

LOD原理就是把远处的物体换个低模,顶点和面数少了,渲染压力自然就下来了。

6、资源压缩节约内存

7、伤害跳字数量多优化

 一般的几个跳字可以不管,但如果UI非常多,并在在字体发生各种动画时可能会造成DrawCall多浪费的情况,因此可以利用顶点合并,或者GPU控制顶点等骚操作优化伤害跳字。

8、加载卡顿时考虑分帧加载或预加载

加载大量对象卡顿时,可以考虑分帧加载,或者预加载,这个要酌情考虑。

9、检查Overdraw

检查一个位置是否overdraw,打开工具看到颜色发红的地方就说明这个地方的颜色被多次渲染了,大概率是由于透明物体导致的。 


http://www.kler.cn/a/411607.html

相关文章:

  • 数据结构 (6)栈的应用举例
  • Ubuntu安装不同版本的opencv,并任意切换使用
  • 【PX4_Autopolite飞控源码】中飞控板初始化过程中的引脚IO控制(拉低/拉高)
  • WSL安装不同版本ubuntu(已有ubuntu20.04,再装ubuntu18.04)
  • 算法日记 33 day 动态规划(打家劫舍,股票买卖)
  • ArcGIS API for Javascript学习
  • Java基础——(一)Java概述
  • Linux——基础命令(1)
  • 林业推荐系统:Spring Boot实现技巧
  • 解决 MySQL 8.x 身份验证问题的最佳实践20241126
  • 如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack
  • 2024农历年余下的数模比赛名单已出炉!
  • 鸿蒙心路旅程:从实践到创新——开发者的深度技术分享
  • 《Python 股票交易分析:开启智能投资新时代》(二)
  • UE5 Create Dynamic Material Instance(创建动态材质实例) 概述
  • 多边形拟合算法详解及代码解释
  • kmeans 最佳聚类个数 | 轮廓系数(越大越好)
  • 余弦相似度
  • Http 请求协议
  • MT6769/MTK6769核心板规格参数_联发科安卓主板开发板方案
  • .NET9 - Swagger平替Scalar详解(四)
  • MySQL中in和exists的区别
  • C++设计模式(工厂模式)
  • 2023年十四届蓝桥杯Scratch01月stema选拔赛—鹦鹉学舌
  • 【初阶数据结构与算法】栈和队列leetcode刷题之用栈实现队列,用队列实现栈
  • linux上制作启动盘命令