ue4 渲染等优化参考点。

图片使用支持的压缩纹理格式如ETC1,PVRTC,S3TC等格式而不是常见的jpg,png格式加快图片解析,这个UE4已经帮你做了。

下面是关于渲染效率提升的知识点:

影响OpenGL绘制的效率直接和OpenGL API相关的
一部分来自于其在CPU上执行的开销,一部分来自于渲染本身在GPU上执行的开销
CPU上执行的开销主要是由于调用API导致的OpenGL驱动的开销,这类开销一般可以分成三大类:
第一类是由于驱动提交渲染命令的开销,即调用OpenGL draw函数造成;通过批次合并(即将合理的方式将渲染状态相同多个可渲染物的draw绘制数据合并到一批绘制),以及实例渲染(即将诸多几何数据近似的可渲染物通过一次drawInstance函数绘制,而将这些可渲染物的区别通过数组传入渲染命令中),可以显著降低第一类开销
第二类是由于驱动提交状态命令导致的状态命令切换的开销,这种切换命令包括了固定管线中的各种光照函数的切换,片段测试与操作的切换,不同Shader, Texture之间的切换,甚至包括VBO, UBO等GPU缓冲对象之间的开销,这两类情况在D3D API使用时也是一样,甚至有表明在D3D中更显著;通过对可渲染物进行有效的排序,将状态相同的部分的可渲染物尽可能依次渲染,从而减少状态的切换,可以较明显减少第二类开销
第三类就是其他由于OpenGL API被调用导致加载或是同步数据的驱动开销,减少数据的传输,使用VAO,VBO等缓存数据,避免重传数据。

 

Mipmap用于:

  • 细节层次(LOD)[6] [7]

  • 提高图像质量。从大纹理渲染,其中仅使用小的,不连续的纹素子集可以容易地产生莫尔图案 ;

  • 通过减少采样以渲染每个像素的纹素数量,或增加所采样本的存储位置,加快渲染时间;

  • 减轻GPUCPU上的压力

    该图显示了mipmap如何减少远距离的混叠。请注意左侧图像上的莫尔条纹图案

Mipmap生成工具:

ue4自带生成纹理工具(必须是2的幂次方或者将power of two mode 设置为非None)

针对Adobe Photoshop的NVIDIA Texture Tools插件

https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop

 

 

 

下面是UE4中可以提高渲染效率的一些参考点

阴影效率:

光照选择:

https://blog.csdn.net/u010385624/article/details/89339320

尤其建议使用固定光源的级联阴影

 

LOD 取消阴影:

 

 

 

减少drawCall:

尽量减少一个物体使用多个材质(材质material,不是texture)(因为一个材质至少会有一次drawCall):

使用合并Actor工具,进行顶点合并或者合并为多实例。

Instanced Static Mesh(不使用LOD)

HierarchicalInstancedStaticMeshComponent(使用LOD)

https://answers.unrealengine.com/questions/127435/using-instanced-meshes-doesnt-reduce-draw-calls.html

 

https://blog.csdn.net/qq_31788759/article/details/81254696

 

 

减少顶点数:

自动生成LOD

静态网格体LOD

https://api.unrealengine.com/CHN/Engine/Content/Types/StaticMeshes/HowTo/AutomaticLODGeneration/index.html

 

 

HLOD

http://api.unrealengine.com/CHN/Engine/HLOD/index.html

 

骨架网格体LOD

https://api.unrealengine.com/CHN/Engine/Content/Types/SkeletalMeshes/SkeletalMeshReductionTool/index.html

 

 

地形渲染优化

地形细节级别(LOD)系统已经过修改。现在,它不再根据距离,而是根据屏幕大小决定组件的细节,与静态网格体LOD系统的工作原理相似。LOD分配将基于屏幕中的大小为远景三角形给出更一致的尺寸,从而达到前所未有的精细度。

 

(左图为旧方法;右图为新方法)

您可以前往 视口>查看器>LOD 查看地形LOD。

以下设置可根据屏幕大小控制出现LOD过渡的地方。此外,您现在还可以对材质曲面细分进行控制,使用启动动态阴影的定向光照时可提升性能。

 

 

减少渲染物体数:

剔除距离体积(Cull Distance Volume)

http://api.unrealengine.com/CHN/Engine/Actors/Volumes/index.html#%E5%89%94%E9%99%A4%E8%B7%9D%E7%A6%BB%E4%BD%93%E7%A7%AF%EF%BC%88culldistancevolume%EF%BC%89

剔除距离体积(Cull Distance Volume)

剔除距离体积(Cull Distance Volume) 是优化工具,借助它们,你可以基于对象距摄像机的距离和其大小对对象进行剔除(不绘制到屏幕)。它可以在对象尺寸小到可被视为不重要时不绘制对象,从而帮助你优化场景。按照沿其最长有效维度的边界框计算大小,选择的剔除距离是与该大小最接近的剔除距离。

剔除距离体积(Cull Distance Volume)设置取决于 剔除距离(Cull Distances) 属性,如以下 细节(Details) 面板截图所示。

上图中的属性定义下列行为:

  • 体积内大小最接近50单位(距离等于或小于85单位)的对象会在它们距摄像机500单位或更远时被剔除(消失)。

  • 体积内大小最接近120单位(距离介于85单位和210单位之间)的对象会在它们距摄像机1000单位或更远时被剔除(消失)。

  • 体积内大小最接近300单位(距离等于或大于210单位)的对象将永不会被剔除,因为在这种情况下,0被当作无穷大,这意味着永远不可能距摄像机足够远。

要设置,首先向“剔除距离(Cull Distances)”数组中添加一个新条目,方法是单击按钮。接下来,只需填入给定对象的大小以及你希望该尺寸或小于该尺寸的对象被剔除时所处的距离。无需按照特定的顺序创建这些属性。

可视性和遮挡剔除

http://api.unrealengine.com/CHN/Engine/Rendering/VisibilityCulling/index.html

 

着色器效率:

加速片源着色:减少模糊处理等循环操作,使用纹理查询来代替程序化生成,仅在必要时使用归一化( Normalization),将更多片源着色器工作放到顶点着色器中完成, 减少除法操作。计算尽量简单:能够得到一个近似值就尽量用,不要用类似sin(),cos(),tan()的比较消耗的操作。

减少纹理带宽:减少纹理尺寸,使用mipmapping, 压缩所有的彩色纹理

 

显示效果效率

可延展性参考

http://api.unrealengine.com/CHN/Engine/Performance/Scalability/ScalabilityReference/index.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值