总体性能——渲染模块性能

Unity性能要点参考标准 一、游戏性能总体趋势:        1、CPU:主要看帧数,如果多数帧在预期中可忽略,对于重点卡帧的点进行优化        2、内存:             2.1、Reserved Memory:总体内存,对于低端机总体内存尽量控制在150M以内             2.2、Reserved Mon Memory:堆内存,建议控制在40M以内 阅读详情


上述图例中,不透明渲染开销高,对应的画面为打斗画面;






半透明物体的渲染:


 

整个半透明的渲染,包括树、草、UI;

 

如果使用的是NGUI,看下Mesh.CreateVBO是不是很高,因为有时候会达到3%、5%甚至百分之十几;如果比较高,说明NGUI出现问题,因为这块都是有UIPanel.LateUpdate引起的;说明NGUI在不停地重建UI的Mesh;

Unity4.X会有ParticleSystem.RenderSingle,是说粒子系统在CPU端的开销;

BatchRenderer.Flush:对应API的Flush,对模型进行渲染;(Unity5.3之后版本才有)

MeshRenderer.Render:与半透明网格的渲染相关(花花草草,特效及其面片、UI);

Mesh.CreateVBO:如果数值太高,说明UI存在很大的问题;

在使用NGUI时,UI网格发生重建,重建时创建一些新的网格,对应在渲染里面,会引起UIPanel.LateUpdate的调用;

ParticleSystem.ScheduleGeometryJobs:对粒子系统的计算与处理;

ParticleSystem.SubmitVBO:粒子系统渲染的Drawcall;


不透明物体的渲染:



MeshRenderer.Render:场景模型的渲染;

BatchRenderer.Add(MeshSkinning.Render):蒙皮网格的渲染;


裁剪区域的渲染:



Culling:根据视锥体进行裁剪,一般耗时在15%~20%之间,MMO项目场景中GameObject数量越多,Culling耗时越多,一般优化空间不大;

Uniy4.X为Culling,Unity5.X是Scene Culling;

根据视锥体的锥状体和里面所有物体的包围盒进行求交,若果有交点,就会进入到渲染的PipeLine里面去;

XXX.OnPreCull 跟所做的图像的后处理相关;


蒙皮网格渲染



找出骨骼数(BoneWeights)大于0的,一般降低面片数就可以降低Update以及渲染方面的开销;

蒙皮网格渲染如何解决:

1:减少Skinned Mesh面片数;

2:某些特定场合可以降低Draw Call(使用MeshBaker插件);

(将蒙皮网格合成大的网格,比如有15个同种的怪物或士兵,将15个怪物使用同一个骨架;

但是这种方式在动态增减Skinned Mesh时,会造成较大的开销;且只能带来Drawcall的下降,对于Animator、MeshSkinnedUpdate等CPU的开销无太大帮助)


粒子系统渲染:


Unity5.3.0版本之前,粒子系统的渲染在CPU的主线程中都会有一定开销,

Unity5.3之后粒子系统被Unity挪到了子线程进行渲染,不再卡主线程;

粒子系统使用越多,覆盖面积越大时,开销越大;

粒子系统渲染的优化建议:

1:简化粒子系统、减小屏幕的覆盖面积;

2:尝试升级到Unity5.3版本之后



图像后处理:


Camera.ImageEffexts:图像或屏幕的后处理;

RenderPipeline.OnRenderImage:在做图像的后处理;

MeshRenderer.RenderStaticBatch和MeshRenderer.Render:对场景中物体的渲染;

Shadows.RenderShadowmap:开启了实时阴影的渲染(只是画Shadowmap的耗时),其实还会在开启Shadowmap时,光源会作为另外一个Camera对场景进行第二次的渲染,这次渲染的耗时也会放到Shadows.RenderShadowmap中,实际的开销高于这里显示的;

优化方案:

1:使用Asset Store中Mobile Ready的插件(DOF、Blur等);

2:在中低端机器上适度使用复杂特效;(简化特别复杂的或直接进行关闭)

3:在安卓端开启多线程渲染功能(默认不开启);

但是开启后会带来新的问题,如下图所示(对不透明物体的渲染走势波动太大):

Q:开启多线程后,UI渲染不稳定的原因?

A:NGUI和UGUI的UI Mesh随着动静没有分离或其他因素会产生网格的重建,网格重建后,半透明会非常之高;修复网格重建后,半透明渲染就能降下来;

影响多线程渲染的有:

1:动静没有分离,导致网格重建;

2:Drawcall太高;



实时阴影:



两个地方会增大实时阴影的耗时:

1:Shadowmap的分辨率;2024*2048还是1024*1024等;

分辨率越高生成Shadow的效果越好,但带来的性能的开销就越大; 

Built-in Shadow Map分辨率比较高时,耗时高;

推荐文章:ScreenSpaceShadowMask Blur推荐

 

2:Shadow Receiver网格的数据量:形成Shadow时,会有一个接触面,网格的数据量决定了渲染阴影时的开销;

Shadow Receiver接收阴影的网格面片,面片越多,CPU占用高;

(使用Fast Shadow Receiver插件(可以尽可能降低Shadow网格的数据量),同时支持Shadowmap和Projector)

推荐文章:Fast Shadow Receiver - 快速阴影投射计算插件


推荐网站链接:如何读懂UWA性能报告?—渲染篇






DOTS和SRP绘制大量对象(BatchRendererGroup ) ////////////////////////////////////////////////////////// 使用 BatchRendererGroup 高效绘制大量对象 你知道BatchRendererGroup吗,这是一个从 Unity 2019.1 开始添加的次要 API 。 此 API 是针对DOTS/SRP优化的绘制网格的 API,旨在替代Graphics.DrawMesh等。 它也是Hybrid Renderer V2的基础,它是 ECS 的渲染 API,所以如果您想... 阅读详情

相关推荐

IMDb影评数据集:从下载到情感分析实战指南

本文提供了IMDb影评数据集从下载、探索到情感分析建模的完整实战指南。详细介绍了数据预处理、TF-IDF向量化方法,并对比了逻辑回归、随机森林、SVM及LSTM深度学习模型在情感分析任务上的应用与效果评估,帮助读者系统掌握自然语言处理的核心流程。

weixin_29052717的博客 450

Unity UI模块优化(1.原理)

参考链接:https://blog.uwa4d.com/archives/1875.html,详情请点击链接查看UWA的视频解析,本文为个人学习笔记,有删减。 NGUI VS UGUI 一.元素更新方式 1.共同点: NGUI: public class UIGeometry { public BetterList verts = new BetterList();

鳄鱼泪的博客 2200

二手分析仪器改造实战:如何用PMT搭建荧光检测电路(附完整电路图)

本文详细介绍了如何利用二手分析仪器中的光电倍增管(PMT)核心部件,进行荧光检测电路的实战改造。内容涵盖从PMT工作原理理解、高压供电电路设计、低噪声前置放大(跨阻放大器)到信号调理的完整流程,并提供了关键电路图与调试排错指南,旨在帮助电子爱好者与工程师低成本构建稳定、高灵敏度的专业检测系统。

weixin_29234239的博客 441

【Unity】万人同屏, 从入门到放弃之——自定义BatchRendererGroup合批渲染海量物体

这里我主要测试的使用BatchRenderGroup合批渲染的性能,使用Job System多线程并行修改矩阵数组的位置和旋转,以控制小人移动起来。由于Dots的限制太多,对于需要dlc或热更的项目来说,Dots就爱莫能助。瞬间惊呆了,你没看错,使用Batch Renderer Group创建一万的小人居然能跑600多帧!目前为止,我认为使用自定义BatchRendererGroup合批是PC端万人同屏的最优解了。10万个奔跑的3D人物,仍然有100帧以上,有23个线程并行计算移动。难道万人同屏要成了?

eFunTech 8819

微信小程序OCR身份证识别实战:从拍照到信息提取全流程解析

本文详细解析了微信小程序中OCR身份证识别的全流程实现,从环境配置、拍照上传到OCR核心识别及安全优化。通过微信开发者工具和OCR插件,开发者可快速构建高效的身份信息采集系统,提升用户体验和数据安全性。重点介绍了图像处理、加密传输及混合云架构等企业级解决方案。

j0k1l2m3n的博客 458

ggml_cgraph 详解

是 GGML 库的(Computation Graph)结构,它是深度学习框架的核心,用于表示、优化和执行神经网络的计算过程。

zhouzwd87的专栏 1203

Unity性能优化 :合批篇

Unity合批小知识 前言 在在早期Unity中,对于合批的处理手段主要是下面三种: Static Batching Dynamic Batching GPU Instancing 并且对于他们有着严格的使用限制,而在Unity推出SPR后,为了提升合批的范围与效率,提供了新的合批方式SPR Batcher,本篇文章就简单的介绍一下这些合批的技术 Draw Call、Batcher、 Sat pass Call 在开始了解合批之前,需要理解一些衡量CPU处理渲染速率的参考值 Draw Call Un

xinzhilinger的博客 1万+

【运动规划算法项目实战】Artificial Potential Field算法(附ROS C++代码)

在机器人行业中,路径规划是一个关键的任务,它涉及到如何让机器人在复杂的环境中安全而高效地移动。人工势场算法(Artificial Potential Field Algorithm)是一种常用的路径规划方法,它借鉴了物理学中的势能概念,通过模拟力的作用来引导机器人的移动。本文将详细介绍人工势场算法的原理、在路径规划中的应用、算法优缺点以及代码实现。人工势场算法基于两种势场:斥力场和引力场。斥力场使机器人远离障碍物,而引力场将机器人吸引到目标位置。

xiewf的博客 1万+

Unity BatchRendererGroup 在低端设备上也实现高帧率

BatchRendererGroup(或BRG)是一个API,可以有效地从c#生成绘制命令并生成gpu实例化绘制调用。由于它不使用托管内存,您还可以使用Burst编译器生成命令。优点缺点能够从突发作业中快速生成drawstance命令你必须自己生成最优批次的绘制命令使用持久的大型GPU缓冲区来存储每个实例的任何自定义属性您必须自己管理GPU内存和自定义属性偏移分配支持广泛的平台,包括OpenGLES 3.0及以上版本兼容标准的SRP着色器(点亮和未点亮)。

Kaitiren的专栏 3009

迟滞电压比较器电路的原理与计算

迟滞电压比较器是一种具有双阈值特性的电路,通过正反馈机制实现抗噪声干扰功能。文章详细分析了其工作原理,包括同相型和反相型两种结构的电压阈值计算与电阻设计方法,并提供了已知门限求电阻和已知电阻求门限的推导公式。工程应用中需注意输出类型匹配、电阻取值范围、噪声裕量设计等问题。该比较器在信号处理、波形转换等场景中具有重要应用价值,设计时需综合考虑供电电压、参考电压和噪声特性等因素。

硬核科技 2688

使用lightGBM进行数据建模及预测

在机器学习领域中,数据建模和预测一直是非常重要的任务。而lightGBM作为一种基于梯度提升算法的高效机器学习框架,被广泛应用于数据建模和预测中。本文将介绍如何使用lightGBM进行数据建模和预测。到此,我们已经成功使用lightGBM对数据进行了建模和预测。使用lightGBM可以快速、高效地完成数据建模和预测任务,是机器学习领域中不可或缺的工具之一。使用lightGBM进行数据建模及预测。

qq_37934722的博客 1019

UWA发布 | Unity手游性能蓝皮书

2022年度Unity手游性能的综合表现

UWA—简单优化,优化简单! 1174

飞牛NAS打造成童年经典游戏机

这篇文章介绍如何使用飞牛NAS搭建经典游戏模拟器。首先需开启Docker并下载RetroArch-web镜像,随后创建容器并设置端口映射。启动后上传游戏ROM文件(如NES格式),在模拟器中加载即可游玩。文章以修改版坦克大战为例,详细说明按键配置方法。同时还提到公网访问需配置DDNS或使用ZeroTier内网穿透。通过这套方案,用户可以在NAS上重温红白机等经典游戏体验。

dgnankai的专栏 886

总体性能-CPU性能占用

>33ms 一般切场景处CPU占用耗时较多;

起个名字好难啊 695

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

UWA总体性能篇_数值标准(二)

CPU性能占用中: >33ms帧数占比最好不超过10% GC调用: Unity引擎开发的项目中,其内存分配主要由三部分组成:程序代码、托管堆(Managed Heap)以及本机堆(Native Heap)。其中,对于目前绝大多数基于Unity引擎开发的项目而言,其托管堆是由Mono分配和管理的。“托管” 的本意是Mono可以自动地改变堆的大小来适应你所需要的内存,并且适时地调用垃圾回收...

岁月静好 855

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

从零构建元宇宙渲染模块,深度解读C++高性能图形管线设计

掌握元宇宙的C++实时渲染模块化设计,从零构建高性能图形管线。详解低延迟渲染、场景分块与多线程优化,适用于VR/AR与大型虚拟世界开发。聚焦代码复用与性能突破,提升系统可维护性,值得收藏。

LogicNest的博客 998

《聚爆Implosion》性能精析:这是我们测过性能最棒的手游

今天侑虎科技为大家带来由台湾雷亚游戏研发、龙渊网络发行的3DARPG移动游戏《聚爆Implosion》的UWA测评报告分析。从画面表现力上来看,该游戏无疑为一款重度3D ARPG移动游戏,而且,它在各种档次移动设备上的性能效率几乎无可挑剔。可以毫不夸张地说,《聚爆Implosion》是目前UWA测评过的所有游戏中性能最棒的一款!在此,我们将对该款游戏的性能数据进行深度剖析,希望通过这篇文章可以让大家对移动游戏各个模块的运行效率有更为深刻的认知,并对大家的项目研发有所帮助。 __________.

wubaohu1314的博客 600

JAVA面试题分享四百八十七:如何将性能体验优化做到TOP级别

是一个比较常规的切换动效,却在项目中引入了一个第三方库来实现,该库的使用也是有一些学习成本,因为其具备实现比较复杂的动效能力,在业务动效具备一定复杂度且非首屏的场景下,是可以考虑引入使用的,否则类似这种首屏便需要加载的动效,还是慎重。虽然骨架屏可以让用户在视觉上得到反馈,毕竟不是真实的数据,总体还是有一些简陋,用户也可能并不知道这块区域实际渲染的是什么样的内容,若是网络环境不好,很可能会长时间的停留在骨架屏阶段,为了增强一些体感,使用缓存进一步对页面进行优化。

之乎者也·的博客 1250

Unity大型国战手游《六龙争霸》性能测评精讲

原文链接:http://blog.uwa4d.com/archives/6L.html 今天我们为大家带来由祖龙娱乐研发、腾讯代理的MMO国战手游《六龙争霸3D》的测评报告分析。作为iOS畅销榜单上的老面孔,这款基于Unity引擎开发的游戏为何历时长久而经典不衰?除了精细的画质、丰富的任务策划,当然还离不开杰出的性能。大作是如何养成的?大家快来围观它的性能数据! CPU性能

UWA—简单优化,优化简单! 1129

FPS手游《战地先锋》性能案例精讲

一、CPU性能 该游戏在CPU占用方面的性能非常不错,下图为该游戏在红米Note2 设备上按照剧情进行游戏时的性能数据。可以看出,在红米Note2 上运行的24979帧中,超过33ms的帧数占比为4.3%,超过50ms的帧数占比为1.2%。考虑到切换场景时资源加载的开销,一款游戏如果超过33ms的帧数占比低于10%,则说明该游戏在绝大多数时刻的运行中都是...

weixin_33778544的博客 223

New | GOT Online 支持Draw Call、Triangle检测,性能简报分析功能全面提升!

UWA GOT Online又双叒叕更新功能了!凭借“本地化”和“快”两大天然优势,该工具成为广大开发团队在对项目质量保障时的标配选择。近期,我们基于大家的建议和需求,支持了Draw Call和Triangle的使用情况统计,同时也大幅加强了性能简报的分析力度,快来瞧瞧吧! 一、新增Draw Call和Triangle使用统计 渲染对于大部分的Unity项目都是性能的重灾区,在UWA每年发布的...

UWA—简单优化,优化简单! 359

UWA 2021Unity性能优化汇总

UWA今天发布2021年度手游蓝皮书,UWA发布 | Unity手游性能蓝皮书 从测试机型分布、引擎各模块开销、内存占用等方面进行汇总分析,呈现Unity手游行业现状。 报告目录: 1)Unity手游测试机型分布 2)Unity手游CPU模块性能开销分析 3)Unity手游内存模块性能开销分析 机型分布 从移动设备品牌的角度来看,游戏研发团队在平时测试使用中的主流品牌依次是华为(23%),小米(20%)、红米(13%)、OPPO (11%)、三星(10%)和Vivo (10%);由于出海的

Peter的博客 2291

UWA发布|Unity手游性能蓝皮书

作为游戏行业的服务商,UWA不仅为游戏开发者提供高效的性能优化工具,也致力于为行业提供更全面、更具体的信息和服务。为此,UWA今天发布2019-2020年度手游蓝皮书,从总体性能数据、引擎各模块开销、内存占用等方面进行汇总分析,呈现Unity手游行业现状。 这是侑虎科技原创文章,欢迎转发分享,未经官方授权请勿转载。如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。(QQ群:793972859) MMORPG作为目前游戏市场上的头部力量,在UWA测评过的项目中,也占据了主要份额,因此我们以该类型的测

UWA—简单优化,优化简单! 907

Unity精品FPS手游《全民枪战》测评精讲

今天我们为大家带来电竞手游《全民枪战》的测评报告分析,在我们测评过的大量项目中,《全民枪战》是一款性能相当优秀的移动FPS游戏。在此,我们将对该款游戏的性能数据进行深度剖析,希望通过这篇文章可以让大家对移动游戏的运行性能有更为深刻的认知,并对大家的项目研发有所帮助。

UWA—简单优化,优化简单! 1269
上一篇: 总体性能-CPU性能占用
下一篇: 总体性能——物理模块性能
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独立游戏开发指南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值