UE4/UE5 虚幻引擎,材质篇,纹理,Compression and Memory压缩和内存

前言:

我们执行压缩的原因是,因为内存和带宽有限,因此必须压缩。
无法将所有一切都保留不压缩,尤其是在非常大的项目中,这是非常难以做到的。
显然,纹理分辨率会影响内存和带宽而不会影响渲染性能。
如果你使用的纹理数量和纹理大小出现问题,那么就会影响带宽和内存,可能会导致延迟、冻结和卡顿,但不会造成帧率损失。

● 帧率过低一般并非源于纹理问题,如果纹理出现问题,那么你会看到显示的纹理分辨率非常低。
● 低于你导入时的分辨率,你会看到延迟、冻结和卡顿之类的现象,但不会出现帧率低。这是我们可能区分可能出现的性能问题的方法。
如果发生任何此类问题,通常与加载相关,通常与纹理相关。

● 如果使用内存不多,那么只需解压项目中的全部纹理即可。
尤其是如果你的项目并非游戏,并且你可以控制硬件,那么这样的解决方式是可以接受的。
如果是游戏,那么禁用压缩几乎肯定无法解决问题,只有在不得不采用未压缩纹理的极端特殊情况下,才能禁用压缩。

一、压缩类型
BC(Block Compression)表示“块压缩” 。
DXTC(DirectX Texture comporession)表示“DirectX纹理压缩”。

二、DXTC5压缩 

透明通道几乎不进行压缩,DXTC5表示压缩红色、绿色和蓝色并且包含透明,
但不会真的对透明进行压缩。透明的文件大小与其他通道组合在一起的大小相同。

三、BC5压缩
BC压缩和DXTC压缩的问题在于,它实际非常难以精确处理法线贴图的颜色组合。
它无法按法线贴图将不同颜色混合在一起的方式,来压缩法线贴图,这是系统中的一个弱点。

如果需要100%未压缩的法线贴图,请将其设置为“矢量置换贴图”,这是一项普遍适用的压缩。
它不会进行任何操作,只是按原样导入。

四、TextureStats纹理统计数据(Window窗口——>Statistics统计数据)

TextureStats纹理统计数据,会显示编辑器中当前内存中的所有纹理。这些纹理与游戏中的纹理并不一定相同,运行项目时,这是编辑器中包含的纹理。而编辑器倾向于加载更多纹理,包括不必要的纹理。

资料来源:

https://dev.epicgames.com/community/learning/courses/2dy/materials-master-learning/Y0q/compression-and-memory

猜你喜欢

转载自blog.csdn.net/qq_39934403/article/details/125526473