Unity性能优化
文章平均质量分 77
记录Unity后期优化和性能调优相关的内容
VirtualCreator
本人在制作AVR,MR,虚拟仿真和游戏,拥有丰富的经验。熟悉Android,Windows等原生开发,图像特效开发,内容制作,愿和大家一起共勉交流。
展开
-
Unity 渲染优化可能会遇到的问题s
Draw Call半透明物体渲染多层纹理渲染Graphics.PresentAndSyncVBO相机后处理特效转载 2023-05-23 16:08:42 · 494 阅读 · 0 评论 -
Unity3D性能优化——渲染篇
之前的文章中,我们了解了Profiler工具,以及在实际项目中unity的CPU优化分析及方法,本文我们主要了解在我们的项目中GPU的性能分析,以及对GPU性能进行优化的相关技术。转载 2023-05-22 16:25:13 · 5372 阅读 · 0 评论 -
Unity3D性能优化——CPU篇
就当前的游戏优化而言,主要是围绕CPU、渲染、内存,三大方面来进行,而这三大方面又可以细分很多模块,比如在CPU中有渲染、 物理、 脚本、 GC、UI、垂直同步以及全局光照等模块。转载 2023-05-22 16:18:59 · 1131 阅读 · 0 评论 -
Unity3D性能优化——工具篇
性能优化是游戏项目开发中一个重要且必须的元素。用户和项目的需求在并且会持续增长。而即便在硬件设备高速发展的今天,游戏特效、画质、场景复杂度的需求也都向着榨干硬件性能的趋势提升,无论研发团队有多么丰富的经验积累,性能优化永远是一个非常棘手而又无法绕开的问题。转载 2023-05-22 16:13:50 · 1029 阅读 · 0 评论 -
关于DrawCall的一些测试和总结
Draw call一般包含了要画什么(点/线/三角形),顶点数据在哪里(显存地址),是怎么组织的。图形API把draw call丢给驱动,驱动丢给GPU前端,GPU开始解释并执行。单个Draw call的代价本身并不大,但提交的任务可大可小,如果用大量的draw call每次提交少量任务,那么问题就来了,原因在于GPU处理任务的速度可能会大于CPU提交任务的速度,导致pipeline经常空闲下来。要优化有两种办法,一是合并任务,减少提交次数,二是改革图形API和驱动,进一步减少单个Draw call的代转载 2022-08-11 11:24:09 · 488 阅读 · 0 评论 -
Unity中的合理优化GC
在游戏运行的时候,数据主要存储在内存中,当游戏的数据在不需要的时候,存储当前数据的内存就可以被回收以再次使用。内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使用的过程。 Unity中将垃圾回收当作内存管理的一部分,如果游戏中废弃数据占用内存较大,则游戏的性能会受到极大影响,此时垃圾回收会成为游戏性能的一大障碍点。 本文我们主要学习垃圾回收的机制,垃圾回收如何被触发以及如何提GC收效率来提高游戏的性能。...转载 2022-08-11 11:16:44 · 173 阅读 · 0 评论 -
【修复】A Native Collection has not been disposed, resulting in a memory leak.
I have an error of "A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details. (Filename: Line: 0)" I have enabled full stack traces on everything in the project settings and in the stack trace loggi原创 2022-07-26 10:53:49 · 6925 阅读 · 0 评论 -
Unity 2020.2 优化了 Time.deltaTime,以实现更流畅的游戏体验
Unity中国2021年1月9日12:12关注Unity 2020.2 已经开发下载(点击回看),新版本中,我们修复了许多开发平台的通病:不连贯的Time.deltaTime。它造成了游戏中的运动会出现颤动、抖动的现象。在本文中,我们将介绍背后原因,以及新版Unity中推出的解决方案。自电子游戏出现以来,对流畅运动的追求从未停止。而要实现独立于帧的运动,则要用到时间增量(Delta Time):右滑查看完整代码上方代码可以实现对象以不变的矢量向前运动的效果,且运动会无视游戏的帧...转载 2022-05-26 17:59:05 · 1035 阅读 · 0 评论 -
Unity帧率的计算和显示
要显示帧率,得先知道帧率是什么:帧率是Unity单位时间内刷新的次数。所以,帧率=帧数/单位时间。那么,代码怎么写就很简单了:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;[RequireComponent(typeof(Text))]public class Test : MonoBehaviour { const floa原创 2022-05-26 15:55:49 · 2412 阅读 · 0 评论 -
Unity 使用 GPU 計算,使用 ComputeShader + ComputeBuffer
如果你會看這篇文章,代表你玩 Unity 已經玩到很深入了,CPU 計算已經不能滿足你,這時你不得不把注意力轉到 GPU 身上。GPU 的介紹就不用我多說了,就是超越CPU的存在。如果用 Texture2D 來畫你想要的圖案速度會慢的驚人,如果你用 Shader ( GPU ) 來畫將會快上幾千倍,好了,唬爛就到此為止,我們回歸正題。這是一個簡單 Unity 的 GPGPU 計算,使用 ComputeShader。將輸入的數字丟入GPU,然後乘以兩倍再傳回 CPU。你可以往下拉直接看結果圖,就明白我再說转载 2022-05-18 19:21:23 · 2118 阅读 · 2 评论 -
Unity-Profiler[总结记录]:
WaitForTargetFPS是关于帧数限制的,你可能开了垂直同步,防止撕裂。在显示器的帧缓存会被不同步的显卡的帧缓存给替换掉,导致显示器显示到一半的时候,内存被换掉,你看到上频是上一针的画面,下频是下一针的画面,游戏刷新的频率越快,撕裂就越严重,所以就会撕裂了。开了垂直同步,是指将游戏帧数锁定到和你的显示器刷新频率一样的,因为显卡和显示器的刷新频率不一样。简单的说,WaitForTargetFPS消耗越高,说明被压缩的帧数越多,能用的资源越多,等待的可用的进程越多。只要关闭垂直同步就可以..原创 2022-05-13 10:54:10 · 797 阅读 · 0 评论 -
Unity5 Status窗口数据全释义
Unity5的 Statistics上的统计信息和Unity4 有一些区别, Statistics窗口,全称叫做Rendering Statistics Window,即渲染统计窗口(或渲染数据统计窗口),窗口中罗列出关于渲染、声音、网络状况等多种统计信息 ,下面详细的解释一下这些项的意义。FPSFPS(Time per frame andFPS):frames per seconds表示引擎处理和渲染一个游戏帧所花费的时间,该数字主要受到场景中渲染物体数量和 GPU性能的影响...转载 2021-04-08 20:37:54 · 628 阅读 · 0 评论 -
程序闪退崩溃的几种原因
内存 1.内存泄漏;2.加载资源崩溃。 CPU 1.程序运算过于复杂。 软硬件兼容 1.运行环境和硬件支持不匹配。如安卓系统不匹配,软件运行环境缺失等。 系统内存回收机制 1.系统在内存很紧张的时候会回收前台进程。 程序内部机制 1.部分插件或者代码在运行时检测运行状态异常主动地执行软件退出。 【转载请注明本文链接】......原创 2020-09-08 13:51:37 · 6141 阅读 · 0 评论 -
游戏的帧同步
原链接:http://www.sohu.com/a/153269736_163917这是王者荣耀技术分析系列第二篇,有兴趣请持续关注。1、2、从《王者荣耀》来聊聊游戏的帧同步3、游戏服务器的架构演进农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万人。 如此可观的数据,令人十分钦佩。当然,作为技术人,更愿意从技术上了转载 2020-09-09 16:29:15 · 1538 阅读 · 0 评论 -
Unity 对DrawCall的计算
1.正常情况下,用最简单的光照或无光照的shader渲染一个mesh, 一个dc2.unity5对烘焙做了修改,烘焙的物体仍然可以接受实时光,这样如果烘焙的物体再受一个实时光,那就是2个dc,unity4不是3.多一盏实时光,就会多一个drawcall,如果使用了deferred shading,则不一样,一些光源会被合并到后面计算,dc会合并减少4.开了实时阴影,会根据情况增加2-4个drawcall,这和cascade的使用有关,如果没有cascade,就是加两个,如果开了cascad...转载 2020-09-10 16:46:49 · 781 阅读 · 0 评论 -
Unity 手游面数控制
武器面数武器模型控制在150个三角面,187个顶点以内。贴图控制在1张,最大256*256,最好128*128。场景面数场景(地形、建筑、其他装饰物)面数控制在10000面左右,贴图控制在最多2张512*512。主角面数主角模型控制在900-1300个三角面(以最终导入unity3d中的三角面数量为准)。贴图控制在1张,最好256×256,最多512×512。小怪面数小怪模型控制在600-900个三角面(以最终导入unity3d中的三角面数量为准)。贴图控制在1张,最大256×256。...转载 2020-09-10 17:25:44 · 4447 阅读 · 2 评论 -
深入浅出聊优化:从Draw Calls到GC
前言:刚开始写这篇文章的时候选了一个很土的题目。。。《Unity3D优化全解析》。因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因而给自己“文(dou)学(bi)”加工留下的余地就少了很多。但又觉得这块是不得不提的一个地方,平时见到很多人对此处也给予了忽略了事,需要时才去网上扒一些只言片语的资料。也恰逢年前,寻思着周末认真写点东西遇到节假日没准也没什么人读,所以索性就写了这篇临时的文章。题目很土,因为用了指向性很明确的“Unity3D”,让人少了遐(瞎)想的空间,同时用了“高大全”这样...转载 2020-09-16 09:32:41 · 303 阅读 · 0 评论 -
Unity优化之减少Drawcall
简单来说,Drawcall就是屏幕渲染一次所需要的开销,为了较少消耗,提高性能,一般有以下几种方法。一: 批处理1.动态批处理如果动态物体共用着相同的材质,那么Unity会自动对这些物体进行批处理。动态批处理操作是自动完成的,并不需要你进行额外的操作,你可以在buildsetting中设置他。动态批处理是消耗2倍的内存来提升显示的速度,也就是空间换时间,如果内存消耗过大,需要考虑时间和空间的平衡。如果发现动态批处理后DC并没有减少,你可以检查以下方面:<1>批处理动态物体转载 2020-09-17 10:40:42 · 412 阅读 · 0 评论 -
Unity 中的优化技术
写在前面这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得的~Digital Tutors是一个非常棒的教程网站,包含了多媒体领域很多方面的资料,非常酷!除此之外,还参考了Unity Cookie中的一个教程。还有很多其他参考在下面的链接中。这篇文章旨在简要地说明一下常见的各种优化策略。不过对每个基础有非常深入地讲解,需要的童鞋可以自行去相关资料。还有一些我认为非常好的参考文章:Performance Optimization for Mobil...转载 2020-09-17 11:54:41 · 641 阅读 · 0 评论