

命令行功能怎么用
1)可直接在面板输入命令
2)“Import Commands”可以导入.txt文件格式,在txt中可以每一行输入一个常用命令,导入后则可以在面板右键时快捷选择输入
UE4指令集
前提条件:需要游戏是非shipping版本
Adb广播发送指令方法
1. 以指令r.ShowMaterialDrawEvents 1为例:
(1) 控制台输入:r.ShowMaterialDrawEvents 1
(2) Adb指令广播输入:
adb shell "am broadcast -a android.intent.action.RUN -e cmd 'r.ShowMaterialDrawEvents 1'"
GPU分析
GPU成本去向
1. 在控制台输入:ProfileGPU,弹出GPU查看器,确定GPU中的成本去向。
2. ProfileGPU命令允许快速识别各种传递的GPU成本,有时甚至可以具体至绘制调用。数据基于GPU时间戳, 通常非常准确。然而某些优化会降低数字的可靠性,因此最好以批判性的态度审视任何数字。
3. 一些驱动程序 倾向于在使用着色器几秒钟后对着色器成本进行优化。这种情况可能会很明显,因此等待一段时间或再测量一次以获得更高的置信度可能是有益的做法。
实时GPU分析器
1. 指令:stat GPU
2. 功能:实时GPU分析器为主要的渲染类别提供实时的逐帧统计信息。
截帧开启组名和材质名
1. 在RenderDoc截帧之前依次输入指令:
(1) ToggleDrawEvents
(2) r.ShowMaterialDrawEvents 1
CPU性能分析
CPU渲染相关耗时
1. 指令:stat SceneRendering
2. 功能:确定CPU渲染线程部分各个模块耗费的时间。
CPU逻辑相关耗时
1. 指令:stat Game
2. 确定逻辑模块中各个部分的耗时。
Stat分析详细CPU耗时分布
1. 开始录制Stat: stat startfile
2. 结束录制Stat: stat stopfile
内存分析
捕获内存快照Memreport
1. 捕获尽可能多的内存数据:memreport -full
2. 捕获内存数据快照的简化版:memreport
捕获三角形数量以及帧时间等
1. 指令:Stat Engine
其他
隐藏/显示某一类别的物体
1. 指令:showflag.XXXX 0/1
2. 功能:隐藏/显示某一类别物体,用来判断某一类别的物体对帧率/内存的影响,确定瓶颈。
3. 举例:
(1) ShowFlag.Landsxape 0隐藏地形;
4. 如果安卓包或ios包中,ShowFlag命令不生效,可以使用Show命令: show xxxx;
(1) Xxxx表示的对象和ShowFlag中完全一致。
(2) 举例:Show Landscape
5. 常见操作对象:
(1) Landscape地形对象;
(2) StaticMeshes静态网格体对象;
(3) SkeletalMeshes骨骼动画网格对象;
(4) DynamicShadows动态阴影对象
(5) Translucency半透明场景对象(对UI无效)
(6) Bounds网格体到的包围盒和包围球
(7) InstancedFoliage植被
(8) InstancedGrass草
(9) Particles粒子特效
分析各个模块耗时
1. 指令:Stat Unit 显示Frame耗时,Game耗时,Render耗时,以及GPU耗时。
2. 指令:Stat UnitGraph显示上述耗时的实时图表。
显示帧率
1. 指令:stat fps
显示Actor的包围盒
1. 一般只有在StaticMesh编辑窗口中查看,可以在编辑器窗口中输入指令:
ShowFlag.Bounds 1
2. 关闭时输入指令:ShowFlag.Bounds 0
运行时显示Camera信息
1. 启用debug camera:ToggleDebugCamera
显示场景光照复杂程度
1. 输入指令:viewmode lightcomplexity
2. 视图模式快捷键:Alt +7
显示刚体:
1. 指令:Show Collision(再次执行则关闭)
压力测试-调整分辨率
1. 指令:r.ScreenPercentage XX;例如XX为50表示调整为50%分辨率
查看遮挡剔除
1. 指令:r.visualizeOccludedPrimitives 1
Viewport高清截图
1. 指定分辨率截图:HighResShot 3840x2160
2. 以当前viewport分辨率的两倍进行截图:HighResShot 2
将全部控制台命令导出
1. 使用命令dumpconsolecommands,执行后,所有可用的命令会存储在\Saved\Logs\下的log文件中。
或者直接查看引擎源码:Engine\Source\Runtime\Engine\Private\UnrealEngine.cpp中函数:bool UEngine::Exec( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar )