网站地图 制作工具,wordpress 简单模板,英文服装商城网站建设,舆情报告分析案例参考自官方文档#xff1a; Performance Guidelines for Artists and Designershttps://docs.unrealengine.com/en-us/Engine/Performance/Guidelines
但是官方文档写的太粗燥#xff0c;对UE4没有一定了解#xff0c;很难理解文档的意图。这里我在官方文档的基础上#x…参考自官方文档 Performance Guidelines for Artists and Designershttps://docs.unrealengine.com/en-us/Engine/Performance/Guidelines
但是官方文档写的太粗燥对UE4没有一定了解很难理解文档的意图。这里我在官方文档的基础上结合自己遇到的问题重新整理了一下适合对UE4不熟的美术查阅。
以下是针对美术人员和关卡设计师的常规提升性能的指导意见
面向美术
尽量减少每个物体上的元件数量。比如概设美术在设计角色形象时有没必要为了表现效果为角色加很多装饰性部件要把握好。如果是做静帧动画没什么问题但若是实时渲染的游戏角色要做取舍。为了让元件的三角面数更合理比如每个元件的面数为300建议相关模型合并起来。比如如果游戏没有换装需求那么就将角色的帽子、肩甲等身体部件和身体合并以减少面数。Opaque贴图不透明贴图速度最快因为它的Z buffer裁切速度最快Masked贴图蒙版贴图稍微慢一点Translucent贴图半透明贴图最慢因为其性能消耗巨大。限制UV接缝数量和硬边Maya中叫软硬边、Max和Blender中叫光滑组数量因为这两项会在硬件中生成大量顶点。最坏的情况带硬边的高模会生成3倍于建模软件统计的顶点数比如Maya中显示模型顶点数为1万显卡中实际计算的顶点数为3万。Skined Mesh蒙皮网格物体的顶点处理性能消耗比Static Mesh静态网格物体的高。比如一个建筑从地面升起的动画这种只是整个模型坐标的变化就不要让动作美术去K动画而应该使用UE4的Timeline去控制StaticMesh的坐标变化以提升性能再比如门打开关闭的动画也不要手K可以参考官方ContentExamples中的使用Timeline的做法。当使用了morph targets比如表情动画或者WorldPositionOffset世界坐标偏移顶点处理的消耗会大大增加。因为要做缓存贴图的查找过程也会非常慢。 UE4材质中的Morph TargetsUE4材质中的WorldPositionOffset Tessellation曲面细分的性能消耗巨大UE4提供了的运行时曲面细分尽量避免使用Pre-tessellation预处理曲面细分就是手动在建模软件中做好细分曲面通常速度更快。现在的次世代流程大部分都是使用法线贴图低模也有部分次世代游戏在使用曲面细分比如PS4游戏《地平线黎明时分》 UE4材质中的Tessellation Multiplier开启方式修改D3D11Tessellation ModeMaya中制作细分曲面流程https://www.youtube.com/watch?vL5fOwSmSaW8
非常大的物体建议拆成多块这样可以更好的做视距裁切和灯光裁切贴图格式越小则材质性能越好。比如DXT1格式为4 bpp每像素的比特位数DXT5格式为8 bpp未压缩的ARGB为32 bpp。对于有Alpha通道的贴图默认的DXT1格式会压缩过度不支持Alpha通道导致效果丢失此时可以修改为低压缩率的格式比如UserInterface2D(RGBA)
贴图尺寸越小性能越好当贴图近距离显示时。有时更小的贴图尺寸甚至更加平滑作为双线性过滤bilinear filtering 时比贴图格式能提供更多的着色器shader效果。材质减少着色器指令shader instruction和贴图数量运行时的查找过程更快。为了优化材质可以使用UE4材质编辑器中的stats统计材质编辑器顶部菜单以及材质复杂度ShaderComplexity运行模式下F5场景编辑模式下Alt 8绿色表示消耗极低白色表示消耗极高。 点击Stats查看贴图采样数、贴图查找时长等。点击Platform Stats查看各个平台的性能统计桌面级、安卓、iOS等 如果贴图在很小的范围内还能看见比如视线远处的模型LOD则不要禁用纹理贴图Mip Maps否则会由于贴图缓存缺失而导致性能下降。 Mip Gen Settings 设置为 NoMipmaps表示禁用。一些材质蓝图的计算表达式比较耗比如sin、pow、cos、divide、Noise消耗较低的计算表达式包括multiply、add、subtract、clamp。阴影模型shading models最常见的光照模型游戏工业中用得多的性能消耗标准无光的区域消耗最低有光的区域是消耗较大这也是最常见的区域。其他光照模型比如照明模型Illumination models电影工业的光照模型的性能消耗更大。
面向关卡设计
限制Stationary固定光源不是静态光源和 Dynamic动态光源 灯光的数量。尽量避免使用区域光源Area light。4.20提供了区域光源 Rect Light。对场景中较小的物体编辑其属性draw distance来获得更佳的LOD裁切效果确保LOD设置在一个激进变化的范围内比如摄像机从很近一下拉倒很远距离变化很小的不用做LOD且LOD的定点数量变化倍数至少是两倍。优化时打开wireframe模式然后查看是否存在大的色块如果有说明优化有问题。如果使用Simplygon一款商业付费的UE4插件几分钟就可以处理掉整个项目的LOD。
尽量将类似信息的光源合并。比如车的头灯可以用一个光源以及一个光照函数让它看起来是两个灯的效果。静态光照最快固定光照稍慢一些动态光照最慢。按照需要尽量限制光照的衰减半径以及光锥的角度。动态/固定点光源是最费的。方向光源要稍好一些最好的是聚光灯光源。阴影贴图生成的性能开销和造成物体阴影的光照视锥体light frustum有关。光照函数具有额外的性能开销实际开销取决于材质并能防止灯光被渲染成 Tiled Light。IES profiles 具有额外性能开销比光照函数好一些并能防止灯光被渲染成 Tiled Light。但不要在可以用聚光灯光锥就能完成效果的情形下还使用 IES。Billboardsimposter meshes或 skybox textures 都能用来代替实际的几何体物件并有效的提高性能。好的关卡设计师能够将遮蔽裁剪纳入考虑优化关卡添加一些阻挡视线的物件来提高性能。使用 r.VisualizeOccludedPrimitives 可以直接查看。 控制台命令开启遮挡物件可视化:
r.VisualizeOccludedPrimitives 1避免使用 Light Propagation Volumes如果要使用使用 GIReplace 材质表达式或者在大部分物件上禁用它以提升性能。在不需要的地方应该关闭阴影生成 shadow cast一个个物件的关闭或者一个个灯光来关闭。在编辑器中使用 ProfileGPUCtrl Shift ,快速了解信息以及哪部分比较慢。贴花的性能开销和它们覆盖的像素数量有关。