UE3优化

转自:http://www.cnblogs.com/NEOCSL/p/3320510.html

 优化问题有很多内容可讲,涉及林林总总。今天我总结一下优化注意的地方。

  1.从AnimTree和SkeletalMesh说起

  不管是任何Actor,Tick是最耗性能的因素。从动画的角度来说,一涉及到执行就是tick的过程。然而,在其不做得时候尽可能将其关闭。

  最首先考虑的是不要更新你不需要的模型动画,遵循以下哦:

  ①将不需要的模型隐藏掉,例如你在Matinee中搭建舞台播放了过场动画,最后将所有的演员Hidden

  ②尽可能将bUpdateSkelWhenNotRendered=false 意思是在不渲染的时候更新吗?当然设置成false啦。你都不渲染了我何必要更新呢。但是注意这个可能会出错,通常情况是这个pawn可能有跟骨骼动画的时候。这个选项通常是false的,所以你不用操心。

  解决了渲染的问题,我们再来操心动画的执行效率了。

  ①尽可能在AnimTree中不要多执行半混合动画,CPU进行全权重的动画节点是非常高效的

  ②尽可能将AnimTree简化,UTpawn的Tree是非常吓人的。越多的节点就越多的Tick。尽可能用少的节点做多动画,AnimNodeSlot是非常好的方式。

  ③将node的属性bSkipTickWhenZeroWeight设为True。这样在非100%权重混合的时候也减去了Tick的痛苦

  ④如果bUpdateSkelWhenNotRendered不能设为false,则在SkleControls设置bIgnoreWhenNotRendered

  ⑤在AnimNodeBlendPerBones设置bForceLocalSpaceBlend=true。为了CPU

  其他几项

  ①尽可能的少绘制meshes.例如不要绘制背上背的枪

  ②减少骨骼

  ③将bRorceRefpose=true

  ④尽可能使用AnimNodeSlots 解决一切问题,战争机器中翻滚上弹,Take Cover,掏枪都是这么来的PlayCustomAnim

时间: 2024-10-09 00:06:09

UE3优化的相关文章

UE3代码阅读需知

转自:http://www.cnblogs.com/hmxp8/archive/2012/02/21/2361211.html 掌握一款庞大的引擎,要一下子掌握真的很难,慢慢地从Editor,Script,各个模块细节,再到源码,一步一个脚印必须扎实,还有,必须学会温故而知新,有很多东西一开始一阅而过,以为简单,实则不然,今天,就不想从最基本的CodeOrientation中学到了很多~ 下面就总结一下相关资料: 阅读一款3D引擎的方法备忘 (转自平民程序 - linghuye's blog)

UE3名称结构(Name)

解释说明: (1) 直接通过FName的index进行比较来判断两个FName是否相等 (2) 通过FName的index从全局Names数组中取出对应的FNameEntry,可以获得FName的字符串内容 (3) 全局NameHash链表数组是为了优化查找而存在的数据结构 (4) 创建一个FName时,会在全局NameHash链表数组查找是否已存在: 若存在则直接设置当前FName的index:若不存在才会创建新的FNameEntry,并添加到Names末尾和对应NameHash链表的头部 (

iOS开发——项目实战总结&UITableView性能优化与卡顿问题

UITableView性能优化与卡顿问题 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候,就会堆积很多cell.如果重用cell,为cell创建一个ID 每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell 2.避免cell的重新布局 cell的布局填充等操作 比较耗时,一般创建时就布局好 如可以将cell单独放到一个自定义类,初始化时就布局好

Java性能优化之JVM GC(垃圾回收机制)

Java的性能优化,整理出一篇文章,供以后温故知新. JVM GC(垃圾回收机制) 在学习Java GC 之前,我们需要记住一个单词:stop-the-world .它会在任何一种GC算法中发生.stop-the-world 意味着JVM因为需要执行GC而停止了应用程序的执行.当stop-the-world 发生时,除GC所需的线程外,所有的线程都进入等待状态,直到GC任务完成.GC优化很多时候就是减少stop-the-world 的发生. JVM GC回收哪个区域内的垃圾? 需要注意的是,JV

MySQL 索引优化原则

一.索引优化原则 1.最左前缀匹配原则,联合索引,mysql会从做向右匹配直到遇到范围查询(>.<.between.like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整. 2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优

sql优化

1.all: 全表扫描,遍历全表找到匹配的行 index:索引全扫描,遍历整个索引来查询匹配的行 range:索引范围扫描,常见于<,>,>=,between等操作符 ref: 使用非唯一索引扫描或唯一索引的前缀扫描,返回匹配某个单独值的记录行 eq_ref:类似ref,区别就是使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配.简单来说,就是多表连接中使用primary key或者unique index 作为关联条件 const/system:单表中最多有一个匹配行,查询起

试试SQLSERVER2014的内存优化表

原文:试试SQLSERVER2014的内存优化表 试试SQLSERVER2014的内存优化表 SQL Server 2014中的内存引擎(代号为Hekaton)将OLTP提升到了新的高度. 现在,存储引擎已整合进当前的数据库管理系统,而使用先进内存技术来支持大规模OLTP工作负载. 就算如此,要利用此新功能,数据库必须包含"内存优化"文件组和表 即所配置的文件组和表使用Hekaton技术. 幸运的是,SQL Server 2014使这一过程变得非常简单直接. 要说明其工作原理,我们来创

Linux性能优化之磁盘优化(三)

前言 关于本章内容,设计的东西比较多.这里会有关于文件系统.磁盘.CPU等方面的知识,以及涉及到关于这方面的性能排查等. 术语 文件系统通过缓存和缓冲以及异步I/O等手段来缓和磁盘的延时对应用程序的影响.为了更详细的了解文件系统,以下就简单介绍一些相关术语: 文件系统:一种把数据组织成文件和目录的存储方式,提供了基于文件的存取接口,并通过文件权限控制访问.另外,一些表示设备.套接字和管道的特殊文件类型,以及包含文件访问时间戳的元数据. 文件系统缓存:主存(通常是DRAM) 的一块区域,用来缓存文

一个配置表优化的想法

今天下班在班车上想了一个关于配置表存储的小优化,起因是早上的时候发现了一个bug,这个bug是由于在运行时动态更改了一个列表配置导致的. 其实关于这种运行时"偷偷"改配置的问题我之前也有考虑过,这种应该是一不小心就会写出的,这不终于都出了一个. 至于如何预防这种问题,我认为在python里面似乎也没有什么好的解决方法,因为它不像c++有const语义,但有一个稍尽人事的预防措施就是把列表型的配置读成元组(tuple).而由此衍生出的一个想法便是:把配置表中所有的列表型配置都读成共享的元