【摘录】UNITY优化-有关骨骼数量的上限问题

1、顶点性能
一般来说,如果您想在iPhone 3GS或更新的设备上每帧渲染不超过40,000可见点,那么对于一些配备 MBX GPU的旧设备(比如,原始的 iPhone,如 iPhone 3g和 iPod Touch第1和第2代)来说,你应该保证每帧的渲染顶点在10000以下。
2、光照性能
像素的动态光照将对每个受影响的像素增加显著的计算开销,并可能导致物体会被渲染多次。为了避免这种情况的发生,您应该避免对于任何单个物体都使用多个像素光照,并尽可能地使用方向光。需要注意的是像素光源是一个渲染模式(Render Mode)设置为重要(Important)的光源。像素的动态光照将对顶点变换增加显著的开销。所以,应该尽量避免任何给定的物体被多个光源同时照亮的情况。对于静态物体,采用烘焙光照方法则是更为有效的方法。

3、角色
每个角色尽量使用一个Skinned Mesh Renderer,这是因为当角色仅有一个 Skinned Mesh Renderer 时, Unity 会 使用可见性裁剪和包围体更新的方法来优化角色的运动,而这种优化只有在角色仅含有一个 Skinned Mesh Renderer 时才会启动。角色的面数一般不要超过1500,骨骼数量少于30就好,角色Material数量一般1~2个为最佳。
4、静态物体
对于静态物体定点数要求少于500,UV的取值范围不要超过(0,1)区间,这对于纹理的拼合优化很有帮助。不要在静态物体上附加Animation组件,虽然加了对结果没什么影响,但是会增加CPU开销。
5、摄像机
将远平面设置成合适的距离,远平面过大会将一些不必要的物体加入渲染,降低效率。另外我们可以根据不同的物体来设置摄像机的远裁剪平面。Unity 提供了可以根据不同的layer 来设置不同的 view distance ,所以我们可以实现将物体进行分层,大物体层设置的可视距离大些,而小物体层可以设置地小些,另外,一些开销比较大的实体(如粒子系统)可以设置得更小些等等。
6、DrawCall
尽可能地减少 Drawcall 的数量。 IOS 设备上建议不超过 100 。减少的方法主要有如下几种: Frustum Culling , Occlusion Culling , Texture Packing 。 Frustum Culling 是 Unity 内建的,我们需要做的就是寻求一个合适的远裁剪平面; Occlusion Culling ,遮挡剔除, Unity 内嵌了 Umbra ,一个非常好 OC 库。但 Occlusion Culling 也并不是放之四海而皆准的,有时候进行 OC 反而比不进行还要慢,建议在 OC 之前先确定自己的场景是否适合利用 OC 来优化; Texture Packing ,或者叫 Texture Atlasing ,是将同种 shader 的纹理进行拼合,根据 Unity 的 static batching 的特性来减少 draw call 。建议使用,但也有弊端,那就是一定要将场景中距离相近的实体纹理进行拼合,否则,拼合后很可能会增加每帧渲染所需的纹理大小,加大内存带宽的负担。这也就是为什么会出现“ DrawCall 降了,渲染速度也变慢了”的原因。


上面是摘录内容,其中每个角色的同骨骼数量限制为什么要小于30呢?

根源来自于GLSL中顶点蒙皮时寄存器数量的限制,GLES寄存器数量为256,每个寄存器可以存储一个VEC4向量,现在大多数GLSL作顶点蒙皮时是用32个矩阵来存储蒙皮矩阵的,也就是说骷髅数量不能超过32

posted on 2018-02-22 15:13 时空观察者9号 阅读(...) 评论(...) 编辑 收藏

【摘录】UNITY优化-有关骨骼数量的上限问题相关推荐

  1. unity怎么显示骨骼_Unity骨骼优化(转)

    用Unity做游戏经常会用到3D角色,也就会用到骨骼动画.骨骼动画对性能的影响其实非常大的,在说这个问题之前,先来说说骨骼动画的原理. 我之前做过多种骨骼动画,包括写过2D的骨骼动画系统(类似于现在比 ...

  2. Unity优化方面的一些小总结

    前言: 我做了3年的Unity了,但是却没有深入优化模块的内容,只能怪自己做项目的时候做的内容太杂乱了.去面试的时候被面试官问道优化方面的内容的时候自己一脸懵逼.本来有机会去MK的,让自己错失了. 所 ...

  3. Unity 优化建议

    转 https://blog.csdn.net/game_jqd/article/details/51899000 使用Profiler工具分析内存占用情况 System.ExecutableAndD ...

  4. Unity优化大全(八)之 GPU-Ligh和其他

    http://blog.csdn.net/u3d_ysj/article/details/48079299 前言:     在前面讲了下GPU的几何体和显存宽带方面的优化,这里在谈谈GPU的Light ...

  5. Unity优化大全(七)之 GPU-Ligh和其他

    在前面讲了下GPU的几何体和显存宽带方面的优化,这里在谈谈GPU的Light和其他一些优化准则吧! 进入主题:    首先在这里我会简单介绍相机的几种Rendering Path,然后在介绍常用灯光在 ...

  6. IGDATaiwan上Unity 优化讲座III

    IGDATaiwan上Unity 优化讲座III (罗志达) https://www.youtube.com/user/IGDATaiwan 议程: https://2019.tgdf.tw/agen ...

  7. unity怎么显示骨骼_浅谈Unity3D 骨骼动画

    最近研究了一下游戏中模型的骨骼动画的原理,做一个学习笔记,便于大家共同学习探讨. ps:最近改bug改的要死要活,博客写的吭哧吭哧的~ 首先列出学习参考的前人的文章,本文较多的参考了其中的表述: 一. ...

  8. 复习Unity优化技巧

    复习Unity优化技巧 一.引言 新的格局 有推荐的吗? 二.优化 第一章.优化图形性能 1.分析: A.GPU通常受填充率或者内存带宽制约. 填充率 渲染管线 B.CPU 通常受到需要渲染的批次数的 ...

  9. unity怎么显示骨骼_骨骼动画的原理及在Unity中的使用

    制作骨骼动画 我们看看这几步操作后,我们得到了那些数据: 1.每个皮肤顶点的初始世界坐标. 2.每个骨骼关节顶点的初始世界坐标. 3.每个顶点被骨骼顶点的影响信息. 4.骨骼如何移动. 骨骼动画原理 ...

最新文章

  1. 常用windows命令
  2. 昂贵的聘礼 Dijkstra法
  3. Vue+stylus实现自定义文字的loading组件
  4. python基础之常用的高阶函数
  5. python数学要求_python数学工具之积分(1)
  6. C++中的错误处理方法(含示例代码)
  7. .NET、C#和ASP.NET三者之间的区别与联系
  8. 组合数学之排列组合(Permutations and Combinations)(四种情况)
  9. 基于android下的amr转mp3
  10. 9月12日截止!2022年湖北省高新技术企业认定时间、程序、材料和相关要求
  11. 爬虫——Python爬英文文献ScienceDirect论文的标题、摘要,并保存在本地
  12. python灰色预测_【数学建模】灰色预测及Python实现
  13. TLS1.3抓包分析(3)——EncryptedExtentions等
  14. HTML5编写百度搜索网页,零基础打造一款属于自己的网页搜索引擎
  15. Android 项目开发填坑记 - 谷歌商店上架被拒 Apps On Device
  16. 全志V3s学习记录(4)uboot:开机logo
  17. Linux - 安装内核源码
  18. goproxy.io for Go modules
  19. 利用Canvas绘制雷达图
  20. 教程篇 | 史上最简单也最全新手Revit教程

热门文章

  1. SpringBoot+Vue+OpenOffice实现文档管理(文档上传、下载、在线预览)
  2. Docker中部署Mysql8数据库
  3. Vue中使用moment将时间戳数据格式化显示(el-table中)
  4. RedisDesktopManager客户端可视化工具下载安装与使用
  5. Winforn中设置ZedGraoh的GraphPane恢复到初始比例大小
  6. mac版lightroom cc_Photoshop问世30周年 Mac和iPad版获重要更新
  7. java 序列化 例子_Java序列化和反序列化例子
  8. 服务器系统防火墙例外,Windows Server 2012设置端口例外、防火墙设置方法
  9. 神策数据《银行4.0数字化运营体系构建的方法与实践》正式发布
  10. 内附视频讲解 | 券商财富管理数字化转型趋势分析与六大驱动力解读