U3D优化

容易忽略的美术资源的优化:

优化的美术制作真是一种感觉和经验的积累,能看出制作水平的不是做的效果多么犀利,而是得看制作的效果与对机器的要求等的性价比。

  • 关于合并:  100个三角形的MESH,在渲染时与1500个面数的物体是没太大差别的,最佳的渲染设置应该在每个模型大约1500-4000个三角面。
  • 材质共享:  如果需要通过脚本来访问复用材质属性,改变Renderer.material将会造成一份材质的拷贝。应该使用Renderer.sharedMaterial来保证材质的共享状态。
  • 批处理动态物体需要在每个顶点上进行一定的开销,也有一些约束:
    1. 对VB的显存大小也有一定限制,如果着色器使用顶点位置,法线和UV值三种属性,那么只能批处理300顶点以下的物体;如果着色器需要使用顶点位置,法线,UV0,UV1和切向量,那只能批处理180顶点以下的物体了。
    2. 拥有lightmap的物体含有额外(隐藏)的材质属性,比如:lightmap的偏移和缩放系数等。所以,拥有lightmap的物体将不会进行批处理(除非他们指向lightmap的同一部分)。
    3. 使用不同缩放(scale)的物体将不能批次。分别拥有缩放尺度(1,1,1)和(2,2,2)的两个物体将不会进行批处理。
    4. 另外一个值得吸收的经验是非均匀缩放动画在unity中非常的慢,均匀缩放会快很多。
  • 骨骼数量控制:一般来说游戏中的骨骼数量为15-60个。骨骼越少运行速度越快,一般来说30块骨骼就可以让角色动的很舒服了。建议每个角色30个骨骼,就按照这个规范吧。
  • 尝试用压缩贴图格式,或用16位代替32位。

程序开发层面的注意点:

  1. 垃圾回收器收集垃圾内存时负载较大,对移动设备是个大问题,因此要从代码层面减少临时内存的生成,

1)         移除代码中的任何字符串连接,因为这会给GC留下大量垃圾。

2)         用简单的“for”循环代替“foreach”循环。由于某些原因,每个“foreach”循环的每次迭代会生成24字节的垃圾内存。一个简单的循环迭代10次就可以留下240字节的垃圾内存。

3)         更改我们检查游戏对象标签的方法。用“if (go.CompareTag (“Enemy”)”来代替“if (go.tag == “Enemy”)”

  1. 使用#pragma strict 简单的添加#pragma strict在脚本顶部,之后Unity将禁用脚本的动态类型,强制你使用静态类型。
  2. 缓存各种组件、Object查找
  3. 尽量使用固定的内置数组:内置数组是非常快的。ArrayList或Array类很容易使用,更方便使用。但是他们有完全不同的速度。内置数组还有好处是,内存连续,元素对齐。
  4. 不要使用System,System.Xml以及其他系统自带的DLL,会多出几兆空间,找找开源的。
  5. 尽量采用内置的高效的shader吧,例如(built-in)Shader mobile,如果自己写,复杂的数学计算函数别用,alphatest慎重(美术几何挖洞来实现吧)。shader中注意float/half/fixed的使用。

http://www.cnblogs.com/hellohuan/p/3716357.html

U3D优化,布布扣,bubuko.com

时间: 2024-12-15 16:21:52

U3D优化的相关文章

Unity3d优化之路

Unity3d优化之路.U3D的架构部分已经讲了很多了,这里我想讲讲对于U3D优化的亲身体验. 优化之路分三块: 一.渲染级别. GUI部分:我使用的是NGUI,它对动态移动.旋转.缩放GUI支持的是比较差的,所以我尽量不要把过多的移动旋转缩放的部分写在GUI中,但很多情况下是避免不了的,比如:大量的伤害数字,物品掉落,图标的移动和旋转等,为了不让GUI去控制这些渲染物体,一小部分我使用3D面片代替,而大部分使用程序去生成面片渲染脱离了GUI的控制.另外在那些静态的GUI中,我使用了静态物体优化

U3D内存优化

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院  U3D内存优化 读了Hog关于内存管理文章, 自己测试了下. 有以下收获: (1)Unity的Profiler性能监测是非常准确. (2)测试复盘的 结果也完全与Hog的一致 (3)但是场景里已经放的物体,删除后,GameObject,Transform等复制出来的是被删掉了.但是引用的贴图却没有被删除.使用Resources.UnloadUnusedAssets并没有效果. 或者实时创建的,依然没有被释放. 最后用了Resource

u3d性能优化

原文地址:http://blog.csdn.net/molti/article/details/8520418 性能优化需要从多方面入手,大家在项目中遇到的问题还是很普遍的,欢迎大家补充. 图形方面: 1. AlphaBlen优于AlphaTest.乍一看,以为是说错了,之前在为性能优化寻找突破点的时候,以为的在u3d的官方文档中看到,说是移动设备为AlphaBlen做了非常多的优化,而使用AlphaTest返回会降低性能,和传统的端游图形有很大不同哦. 内存/显存的占用: 1. 尽力少单场景复

U3D开发性能优化笔记(待增加版本)

U3D开发性能优化笔记: .NGUI: Atlas优化; .poolmanager使用; .控制同屏drawcall次数; .SHADER优化顶点和运算; .合批与动态剔除; .逻辑部分优化;(如看到不到的物件不要做公告板位置运算,不要播放animation) .物理帧UPDATE降低; .关闭垂直同步,降低图片采样,声音预加载 方案 等等 ..; .模型骨骼不要超过32根; .贴图不要太大,建议512 *512 以下; .少用 CUTOFF和 aplha混合; .3D游戏效率基本原则就是费内存

U3d 手游优化概述

移动平台瓶颈 体积小 芯片要求改 功耗小 影响计算系能 带宽小 传输方面受限 性能优化 资源方面 美术方面 自带地形(地形是非常占用资源的) a.控制地形的分辨率 b.地形高度图尺寸小于257 c.地形纹理中尽量使用少的混合纹理数目,尽量不要超过4个 纹理数据 a.纹理格式 尽量采取压缩格式 b.纹理尺寸 长宽小于1024 同时应该尽量小够用就好 c.尽量使用Mipmap 虽然Mipmap 有可能会增加程序的大小,但会提高渲染效率. 动态物体 a.控制面片数量 300-2000面片 b.控制Sk

U3D 性能优化

官方优化文档--优化图像性能 http://docs.unity3d.com/Documentation/Manual/OptimizingGraphicsPerformance.html Unity3D性能优化专题 性能优化是一个异常繁琐而又涉及到项目开发的方方面面的一个过程,它的本质是在运行时的一个时间里尽可能完美展现丰富的内容. 实现优化可以通过优化资源.渲染.粒子.物理等模式: 也可以通过修改模型大小.减少纹理尺寸并结合Unity3D的一些相关特性来提升游戏的性能. 随着移动端的设备硬件

drawcall优化

Unity(或者说基本全部图形引擎)生成一帧画面的处理过程大致能够这样简化描写叙述:引擎首先经过简单的可见性測试,确定摄像机能够看到的物体,然后把这些物体的顶点(包含本地位置.法线.UV等),索引(顶点怎样组成三角形),变换(就是物体的位置.旋转.缩放.以及摄像机位置等).相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好.然后通知图形API--或者就简单地看作是通知GPU--開始绘制,GPU基于这些数据.经过一系列运算.在屏幕上画出成千上万的三角形.终于构成一幅图像. 在Unit

Unity 技术之对集成显卡进行优化

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. 多边形数量问题 对于现今的大部分图形卡来说,多边形数量并不是大问题.我们一般认为对象数量和填充率更为重要.不幸的是,大部分老的集成芯片(Intel 945 / GMA 950 和类似型号)并非如此.其重要性要看顶点着色器或灯光的复杂度以及 CPU 的速度(不错,大部分集成显卡转换并照亮 CPU

(北京)初创公司诚聘U3D/美术/特效/HTML5/C#后端

北京欢庆时刻信息技术有限公司成立于2015年,旨在为中国及全球的体育迷提供最为创新.最令人激动的体育互动娱乐产品. 通过创新与技术,我们打造让用户感到惊艳并依赖的产品,致力于让用户无论是在现场.在电视机前还是在路途中,都能通过我们的产品及服务更好地体验体育赛事带来的刺激.精彩以及感动. HTML5 前端工程师 职位描述: 负责开发移动端 HTML5 页面功能: 基于 HTML5/CSS3 构建可重用的代码和组件: 持续优化前端体验,完善 UI/UX 设计: 提升页面相应速度和可扩展性: 与其他团