当前位置:   article > 正文

Unity相关技术(之前整理的)_unity3d的关键技术

unity3d的关键技术

1.LOD技术
层次细节(LOD),它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染效率的常用方法。使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式。
2.遮挡剔除技术
在场景空间中创建一个遮挡区域,该遮挡区域是有单元格(Cell)组成;每个单元格是构成整个场景遮挡区域的一部分,这些单元格会把整个场景拆分成多个部分,当摄像机能够看到该单元格时,表示该单元格的物体会被渲染出来,其他的不去渲染。当场景中包含大量模型时,造成渲染效率的降低(即帧速率FPS的降低),采用遮挡剔除技术,可以使得那些被阻挡的物体不被渲染提高渲染效率。
3.对象池技术
对象池就是我们将对象存储在一个池子中,当需要时在再次使用,而不是每次都实例化一个新的对象。池的最重要的特性,也就是对象池设计模式的本质是允许我们获取一个“新的”对象而不管它真的是一个新的对象还是循环使用的对象。在FPS中常用作需要被发射的子弹、粒子,等优点在于优化内存资源,提高系统性能。
4.场景异步加载技术
在切换场景的时候,使用异步接口进行load,还是之前说的,同步load会导致卡顿而影响渲染。通过异步加载场景,尽量减少阻塞的时间,因为场景加载完毕运行的时候,初始化相关例如awake和start还是会导致一定的卡顿,这个就要通过后面的方式来解决。
5.静态批处理技术
只在运行开始阶段,把需要进行静态批处理的模型合并到一个新的网格中,这意味着这些模型数据不可以在运行时刻被移动。它只需要进行一次合并操作,因此比动态批处理更加高效。将Inspector面板右上角的Static勾选(实际上只需要勾选Batching Static即可)。
6.动态批处理技术
每一帧把可以进行批处理的模型网格进行合并,再把合并后模型数据传递给GPU,然后使用同一个材质对其渲染。动态批处理条件相当苛刻。有时Unity动态批处理会自动完成,不需要我们操作。程序进行动态批处理后,物体们会合并成为一个物体的子物体。DrawCall会下降很多,减少了那些被合并模型原来的DC值,效果立杆见影。
7.合并网格技术
 加载,关联各个已有的SkinnedMeshRenderer,保持可以获取到对其的指向,这些SkinnedMeshRenderer并不显示。 对应部分共用一个SkinnedMeshRenderer展示,确保坐标和旋转角度的正确。 从关联的SkinnedMeshRenderer中获取需要的信息复制到展示用的SkinnedMeshRenderer。合并网格,将所有网格的信息合并到使用一个SkinnedMeshRenderer来渲染,降低CPU负担
8.单例模式技术
在我们的整个游戏生命周期当中,有很多对象从始至终有且只有一个。这个唯一的实例只需要生成一次,并且直到游戏结束才需要销毁。 单例模式一般应用于管理器类,或者是一些需要持久化存在的对象。意味着在内存中,只存在一个实例,减少了内存开销。适用于资源管理器,资源对象数据的加载和卸载(无状态不需要实例化的对象);单一客户端连接服务器等;生命周期在游戏中永不消毁的对象。
9.组合模式技术
组合模式可以清楚地定义分层次的复杂对象,表示对象的全部或部分层次,使得增加新部件也更容易,因为它让客户忽略了层次的不同性,而它的结构又是动态的,提供了对象管理的灵活接口。组合模式对于树结构的控制有着神奇的功效,例如在人力资源系统的组织架构及ERP系统的BOM设计中,组合模式得到重点应用。
组合模式的缺陷是使得设计变得更加抽象。对象的商业规则如果很复杂,则实现组合模式具有很大挑战性,并且,不是所有的方法都与叶部件子类有关联。
10. 装饰模式技术
装饰模式提供了比静态继承更好的柔韧性,它允许开发一系列的功能类用来代替增加对象的行为,这既不会污染原来对象的源码,还能使代码更容易编写,使类更具扩展性,因为变化都是由新的装饰类来完成。还可以建立连接的装饰对象关系链。
需要注意的是,装饰链不宜过长。装饰链太长会使系统花费较长时间用于初始化对象,同时信息在链中的传递也会浪费太多的时间。这个情况好比物品包装,包了一层又一层,大包套小包。另外,如果原来的对象接口发生变化,它所以的装饰类都要修改以匹配它的变化。派生子类会影响对象的内部,而一个Decorator只会影响对象的外表。
11. Lightmapping光照贴图技术
Lightmapping光照贴图技术是一种增强静态场景光照效果的技术,其优点是可以通过较少的性能消耗使静态场景看上去更加真实,丰富,更加具有立体感;缺点是不能用来实时地处理动态光照。当游戏场景包含了大量的多边形时,实时光源和阴影对游戏的性能的影响会很大。这时使用Lightmapping技术,将光线效果预渲染成贴图使用到多边形上模拟光影效果。
12.Dynamic Bone插件
为了增加角色运动的真实代入感,我们常常需要某些主体的附属物能跟随主体的运动自然地发生变化,如头发、衣服的运动等,这时候Dynamic Bone就能满足我们的需求,从而避免了美术设计师费时费力地重复工作,并且性能表现非常高效。该插件是源码开放的,适合移动设备。该插件的使用非常简单,开发者只需要在此设置一些根节点等相关参数。原理也不难理解:对于每个附属物体,获取骨骼根节点和控制节点的Transform信息。根据这两个结点信息,根据设定参数将运动传播出去。
13.Vectrosity插件
Unity3D中可以用Vectrosity插件画直线、画点、画曲线、画方框,这个插件可以说是Unity3D目前发现的一个画线最好的工具插件。
14.NGUI插件
NGUI是一款严格遵循KISS原则并用C#编写的插件,提供强大的UI系统和事件通知框架,主要用在界面设计之中。支持Flash,支持语言本地化即多语言,支持图像高低清配置,还会随着unity一直更新。
15. Itween插件
iTween是一个动画库,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等,核心功能就是对位移,缩放,颜色等数值进行插值。
16.Bitmap2Material插件
Bitmap2Material是一个强大的工具帮助您从位图中生成无缝材质(法线、高度、高光等),也可以帮助你直接在Unity中从任意位图产生完整的、高质量的、无缝的瓦片状材质(法线、高度、高光、环境遮挡等贴图),主要用于画面增强。
17.Playmaker插件
可视化脚本语言,具有高度有好的界面、整合性高、功能强大、修改容易等特点。开发者只需将集成的功能模块用连线的方式,通过逻辑关系将其连接,即可快速创建所需功能,非常适合非编程人员与项目制作使用。
18.BIG Environment Pack Vol.2插件
一款环境开发插件,有很多场景模型环境包。灌木丛拥有8个不同种类,一共超过80种变种。草拥有5个不同种类,一共超过21种变种。植物拥有8个不同种类,一共22种变种。树木拥有8个不同种类,一共240种变种。草丛拥有超过40种的预制
19.ProBuilder插件
ProBuilder 2.0允许用户进行快速、高度优化,编辑器水平的建设。从环境细节,到结构体,到整体水平生成自定义的几何形状并将其贴上文理。利用即时反馈和零中断创作过程的特性来进行创作和测试
20.DoTween插件
做动画非常的方便,直接链式结构写代码也非常的快。避免代码里面控制物体还需要写协程或者再Update里面循环。
21.Litjson插件
对Json数据处理非常的简洁方便,比如我们要去读取一个json的数据换成游戏里面的脚本类,只用 JsonMapper.ToObject的函数就搞定了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/965455
推荐阅读
相关标签
  

闽ICP备14008679号