Unity性能优化 --- 减少OverDraw

OverDraw(过度绘制)就是GPU多次重复绘制同一像素点的操作。在Unity 中渲染的图像由数百万个像素组成,如果这些像素被多次绘制,那么会造成GPU极大的性能损耗。例如下图多个物体叠加放在一起

注:棕色越深的地方,过度绘制的次数越多。

怎样减少OverDraw?

1.减少不透明的物体绘制。

1.1由于几何体效率低下导致的过度绘制和自身相交的几何体因为在同一绘制调用中无法保证像素渲染顺序导致的过度绘制。

将几何体拆分成小物体,以便Unity的物体渲染排序。

1.2减少有相互遮挡物体的批处理使用。

2.减少透明物体的过度绘制。

2.1减少渲染的透明图层的数量,

2.2减少透明几何体占用的屏幕大小,

缩小透明对象的大小;从Sprite中删除100%透明像素;制作一个紧密网格,减少完全透明区域(如何做?可参考这篇文章 Unity中如何修改Sprite的渲染网格-CSDN博客)。

在使用紧密网格后,即使外边框靠近也不会发生过度绘制。

3.尽量减少粒子系统的透明图层。

4.尽量不使用全屏的后处理效果。

5.在移动端使用加法混合代替alpha混合。

6.在打开全屏UI窗口时关闭3D渲染的相机。

参考链接:

Unity 过度绘制:提高游戏的 GPU 性能 |TheGamedev.Guru 游戏开发大师

How to create custom sprite meshes to reduce overdraw, tri-count and improve performance in Unity 2D (youtube.com)

相关推荐
jtymyxmz10 小时前
《Unity Shader》12.5 Bloom 效果
unity·游戏引擎
jtymyxmz12 小时前
《Unity Shader》12.6 运动模糊
unity·游戏引擎
jtymyxmz15 小时前
《Unity Shader》12.4.2 实现
unity·游戏引擎
sindyra17 小时前
Unity UGUI 之 Canvas Scaler
unity·游戏引擎
csdn_aspnet19 小时前
虚拟机性能优化,分享提升虚拟机运行效率的技巧与工具
性能优化·虚拟机
tecwlcvi32319 小时前
电脑性能优化之磁盘坏道修复教程,硬盘坏道检测与修复简易步骤教程?
性能优化·电脑
俊俊谢19 小时前
【浮点运算性能优化】浮点转定点算法库的多平台通用移植方案与性能评估优化
算法·性能优化·c·浮点转定点·多平台移植
在路上看风景20 小时前
2.Square Grid
unity
程序猿阿伟21 小时前
《突破Unity热更新瓶颈:底层函数调用限制与生态适配秘籍》
unity·游戏引擎