0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Unity 3D优化三个的注意方面

汽车玩家 来源:CSDN 作者:Duke教授 2020-03-13 16:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Unity优化是一个很大的概念,我们优化时需要注意三个方面:CPU优化,GPU优化,内存优化。

CPU方面的优化:

(1) 减少DrawCall.

(2) 物理组件(Physics)。

(3) 减少GC(垃圾回收)次数。

(4) 脚本的代码质量。

一、对DrawCall的优化

1、什么是DrawCall ?

答:Draw Call就是CPU调用图形编程接口,比如DirectX或OpenGL,来命令GPU进行渲染的操作。

2、 如何减少DrawCall ?

答: 思路就是每个物体尽量减少渲染次数,多个物体最好一起渲染。所以有三个方案:

(1)使用批处理,Unity在运行时将物体合并一次渲染。这里分为动态批处理和静态批处理。

(2)通过把文理打包成图集尽量减少材质的使用。

(3)尽量减少反光,阴影之类的效果,因为那会使物体多次渲染。

静态批处理就是将没有生命的不同物体设置为Static。

动态批处理是引擎自动进行的,例如动态实例化Prefab(预制体)如果动态物体共享相同的材质,引擎会自动批处理。动态批处理有很大限制,网格物体顶点数不能超过900。

二、对物理组件的优化

1、设置一个合适的FixedTimestep。

2、尽量不要使用网格碰撞器,占用CPU计算。

三、处理GC的优化

虽然GC是用来处理内存的,但是的确会增加对CPU的开销,因此对于GC的优化目标就是尽量减少GC的触发。

GC是何时触发的?

1、堆的内存不足时,自动调用GC。

2、编程人员手动调用GC。

GC的优化说白了就是代码的优化,主要注意一下5点:

(1)字符串连接的处理。。

(2)尽量不要使用foreach,减少迭代器产生。

(3)不要直接访问gameObject的tag属性。换成“if(obj.CompareTag(”Player“))”

(4)使用对象池,以实现空间的重复利用。

(5)不要使用LinQ。

四、对代码质量的优化

(1)Transfrom组件获取一次就保留引用,而不是每次都获取。

(2)不用频繁的GetComponent

(3)使用内建数组,如Vector3.zero而不是new Vector(0,0,0)。

(4)对方法的参数优化,善于使用ref关键字。

GPU方面的优化:

GPU瓶颈:

(1)填充率,可以简单理解为图形处理单元每秒渲染的像素数量

(2)像素的复杂度,比如动态阴影、光照、复杂的shader等

(3)几何体的复杂度(顶点数量)

(4)GPU的显存带宽

影响GPU性能的无非就两大方面,一方面顶点数量过多,像素计算过于复杂;另一方面就是GPU的显存带宽。

优化方法:

① 减少顶点数量,简化计算复杂度。

② 压缩图片,以适应显存带宽。

一、减少顶点数量,简化计算复杂度

(1)保持材质的数目尽可能少,更容易批处理。

(2)使用纹理图集,代替小贴图。

(3)如果使用了纹理图集和共享材质,使用Renderer.sharedMaterial来代替Renderer.material。

(4)使用光照贴图(lightmap)而非实时灯光。

(5)使用LOD(多层次细节),好处就是那些离得远看不清的细节可以忽略。

(6)遮挡剔除

(7)使用mobile版的shader,因为简单。

二、压缩图片,减小显存带宽压力

(1)OpenGL ES2.0使用ETC1格式压缩等,在打包设置里有。

(2)使用MipMap,小图集

内存方面的优化:

(1)Unity3D的内部内存

(2)Mono的托管内存

(3)若干自己引入或第三方DLL所需的内存(非重点)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11320

    浏览量

    225832
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5258

    浏览量

    136039
  • Unity
    +关注

    关注

    1

    文章

    131

    浏览量

    23384
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深度解析3D眼镜电子电路设计难点与实践——YANTOK自主设计方案落地

    是注重实测调试,通过反复测试不同场景下的电路性能,优化参数设置,解决同步异常、功耗过高等问题,YANTOK两款产品的电路优化,均基于大量场景实测数据完成。 四、总结:自主设计赋能3D
    发表于 04-08 11:21

    3D打印机散热风扇:热管理核心与选型优化指南

    ;要是在本身就比较热的环境里工作,风扇的散热效率还会进一步下降,导致打印件出现翘曲、变形的问题。根据大家的使用经验,超过六成的3D打印机故障都和热管理不当有关系。、解决散热问题的办法:从选风扇到优化系统
    发表于 01-19 15:05

    2D、2.5D3D封装技术的区别与应用解析

    半导体封装技术的发展始终遵循着摩尔定律的延伸与超越。当制程工艺逼近物理极限,先进封装技术成为延续芯片性能提升的关键路径。本文将从技术原理、典型结构和应用场景三个维度,系统剖析2D、2.5D3
    的头像 发表于 01-15 07:40 1117次阅读
    2<b class='flag-5'>D</b>、2.5<b class='flag-5'>D</b>与<b class='flag-5'>3D</b>封装技术的区别与应用解析

    常见3D打印材料介绍及应用场景分析

    3D打印材料种类丰富,不同材料性能差异明显。本文介绍PLA、ABS、PETG等常见3D打印材料的特点与应用场景,帮助读者了解3D打印用什么材料更合适,为选材提供基础参考。
    的头像 发表于 12-29 14:52 852次阅读
    常见<b class='flag-5'>3D</b>打印材料介绍及应用场景分析

    一文掌握3D IC设计中的多物理场效应

    EDA半导体行业正处在一关键转折点,摩尔定律的极限推动着向维集成电路(3D IC)技术的转型。通过垂直集成多个芯粒,3D IC 在性能、功能性和能效
    的头像 发表于 12-19 09:12 691次阅读
    一文掌握<b class='flag-5'>3D</b> IC设计中的多物理场效应

    iDS iToF Nion 3D相机,开启高性价比3D视觉新纪元!

    、uEye Nion iTof 3D相机 | 产品特点 1. 大优势特点概括 精度卓越 具备120万像素超高分辨
    的头像 发表于 12-15 14:59 534次阅读
    iDS iToF Nion <b class='flag-5'>3D</b>相机,开启高性价比<b class='flag-5'>3D</b>视觉新纪元!

    技术资讯 I 多板系统 3D 建模,提升设计精度和性能

    制造环节测试、优化设计,进行概念验证,提高成本效益和设计精度。工程师在CAD程序中设计新器件。3D建模3D建模指的是利用专业软件创建维对象(无生命的或有生命的)或
    的头像 发表于 11-21 17:45 2636次阅读
    技术资讯 I 多板系统 <b class='flag-5'>3D</b> 建模,提升设计精度和性能

    地平线与Unity中国达成战略合作

    近日,中国智驾科技领军企业地平线与全球领先的实时3D内容创作和运营平台Unity正式签署战略合作协议。双方将深度融合地平线HSD (Horizon SuperDrive) 人机交互系统与Unity
    的头像 发表于 11-03 16:43 1658次阅读

    技术资讯 I 图文详解 Allegro X PCB Designer 中的 3D 模型映射

    本文要点面对市面上的一切要将PCB板放进一盒子里的产品的设计都离不开3D模型映射这个功能,3D协同设计保证了产品的超薄化、高集成度的生命线;3D模型映射将PCB设计从传统的二维平面拉
    的头像 发表于 10-17 16:16 1952次阅读
    技术资讯 I 图文详解 Allegro X PCB Designer 中的 <b class='flag-5'>3D</b> 模型映射

    使用NVIDIA AI Blueprint打造3D世界

    在传统工作流中,建模师必须构建占位模型、低精度资产来填充 3D 场景,优化核心资产以完成场景。之后,可以优化、细化并最终完成视觉效果。
    的头像 发表于 09-23 14:35 1111次阅读

    玩转 KiCad 3D模型的使用

    时间都在与 2D 的焊盘、走线和丝印打交道。但一完整的产品,终究是要走向物理世界的。元器件的高度、接插件的朝向、与外壳的配合,这些都是 2D 视图难以表达的。 幸运的是,KiCad 提供了强大的
    的头像 发表于 09-16 19:21 1.2w次阅读
    玩转 KiCad <b class='flag-5'>3D</b>模型的使用

    iTOF技术,多样化的3D视觉应用

    视觉传感器对于机器信息获取至关重要,正在从二维(2D)发展到维(3D),在某些方面模仿并超越人类的视觉能力,从而推动创新应用。3D 视觉解
    发表于 09-05 07:24

    AD 3D封装库资料

     AD  PCB 3D封装
    发表于 08-27 16:24 8次下载

    TechWiz LCD 3D应用:局部液晶配向

    ,并增加Condition层 此层为局部摩擦的层,所以要注意区域的设置; 设置完成后要生成mesh文件 2.2在TechWiz LCD 3D软件中将Local Mask的顶部以及底部配向角度添加进来 3. 结果查看 3.1
    发表于 06-16 08:46

    3D AD库文件

    3D库文件
    发表于 05-28 13:57 6次下载