可可西

UE4纹理技术及相关命令

纹理Texture)是材质中使用的图像。一个材质可能会有一张基础颜色的纹理贴图,一张高光纹理和一张法线贴图。除此以外,还有可能有自发光贴图以及粗造度贴图。另外,纹理也可以在材质之外直接使用,如绘制到HUD。

在大多数情况下,纹理在PhotoShop等外部软件里面创建,然后导入虚幻编辑器中。然而,有些纹理(如渲染纹理),则从场景中获取一些信息实时生成出来,并在其他地方使用。

 

虚幻引擎最大纹理mip数量为15,即最大渲染纹理size为16384。注:能支持多大size取决于图形硬件和驱动,目前PC和主机上顶级显卡最大可支持16384。

详见:UnrealEngine\Engine\Source\Runtime\RHI\Public\RHIDefinitions.h中的enum { MAX_TEXTURE_MIP_COUNT = 15 }

在UnrealEngine\Engine\Config\BaseDeviceProfiles.ini还可以进一步对不同Texture Group的纹理单独配置支持的最大纹理尺寸。

[/Script/Engine.TextureLODSettings]
TextureLODGroups=(Group=TEXTUREGROUP_World,MinLODSize=1,MaxLODSize=16384,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_SimpleAverage,NumStreamedMips=-1)

FTextureLODGroup中各字段说明:

字段 缺省值 解释
TextureGroup Group TEXTUREGROUP_World 纹理分组
int32 MinLODMipCount 0 最小Mip索引值 例如:为0时表示最小mip的级别为1
int32 MaxLODMipCount 12 最大Mip索引值  例如:为12时表示最大mip的级别为13
int32 LODBias 0

Texture Group(纹理分组)的LOD偏移

一个负值或正值,cook时确定要偏移的mip级别数量(会去掉高精度的mip,能有效减小包体)

int32 LODBias_Smaller -1 【低内存适配】Smaller档位内存(Android、IOS下为3-4GB)手机的LODBias
int32 LODBias_Smallest -1 【低内存适配】Smallest档位内存(Android为3GB、IOS下为2GB)手机的LODBias
ETextureSamplerFilter Filter   Mip采样类型 如:Point(最近点采样),linear(线性插值采样)、Anisotropic(各向异性采样)
int32 NumStreamedMips -1

NumStreamedMips为允许流送(Streaming)的mip数量。
如果纹理有10个mip,NumStreamedMips是2,则只允许流送输入或输出2个最高的mip(因此,该LOD组的纹理在内存中都有8-10个mip)。
将NumStreamedMips设置为0,意味着不流送任何mip,使用该LOD组的纹理始终完全加载。
将NumStreamedMips设置为-1(缺省值),意味着允许流送输入或输出所有mip(注:实际上虚幻引擎对<=7的mip不进行流送,是常驻内存的)。

TextureMipGenSettings MipGenSettings TextureMipGenSettings::TMGS_SimpleAverage 自动Mip生成的算法 如:SimpleAverage、Sharpen0、...、Sharpen10、NoMipmaps、LeaveExistingMips、Blur1、Blur2、...、Blur5
int32 MinLODSize 1 渲染的最小mip的size,以像素为单位指定,为范围1到16384中的2的幂值
int32 MaxLODSize 4096 渲染的最大mip的size,以像素为单位指定,为范围1到16384中的2的幂值
int32 MaxLODSize_Smaller -1 【低内存适配】Smaller档位内存(Android、IOS下为3-4GB)手机的MaxLODSize
int32 MaxLODSize_Smallest -1 【低内存适配】Smallest档位内存(Android为3GB、IOS下为2GB)手机的MaxLODSize
FName MinMagFilter NAME_Aniso 缩小或放大某层mip纹理的采样类型 如:Point、Linear、Aniso
FName MipFilter NAME_Point 不同mip层进行混合采样的类型 如:Point、Linear
ETextureMipLoadOptions MipLoadOptions ETextureMipLoadOptions::AllMips mip加载选项  ①Default:使用LODGroup中的设置   ②AllMips:加载所有mips  ③OnlyFirstMip:仅加载最高级别的Mip

 

mip级别和size的关系如下:

Mip1 Mip2 Mip3 Mip4 Mip5 Mip6 Mip7 Mip8 Mip9 Mip10 Mip11 Mip12 Mip13 Mip14 Mip15
1x1 2x2 4x4 8x8 16x16 32x32 64x64 128x128 256x256 512x512 1024x1024 2048x2048 4096x4096 8192x8192 16384x16384

即:size=2^(级别-1)。另外,64x64的级别也可以用-1表示(内部转换时,当为-1时会将级别修改为7)

需要注意的是,虚幻引擎对<=7的mip不进行流送,是常驻内存的。

 

贴图(Texture2D)

注1:Maximum Texture Size为长边的最大纹理size,缺省值为0

注2:使用LeaveExistingMips,可以导入外部制作好的mipmap(只能是ARGB8888格式的dds)

注3:贴图Combined LOD Bias(最终的LOD偏移)最后由贴图属性中的LOD Bias、Num Cinematic Mip Levels(数值为1表示将贴图在游戏中的分辨率降低1个mip等级,而播放过场动画时不做降低)、Texture Group中的LOD Bias叠加得到。

         具体计算逻辑详见:UTextureLODSettings::CalculateLODBias函数

注4:烘焙贴图时,会将贴图中的Texture.LODBias +TextureGroup.LODBias个级别的高清mip层都删除掉(防止包体太大)。

        在过场动画时,使用的mip层级为剔除完Texture.LODBias +TextureGroup.LODBias后的剩余部分。而其他正常游戏时,使用的mip还要继续去掉NumCinematicMipLevels个高清mip层数。

注5:勾选Never Stream,所有mip将始终常驻内存

注6:更多Texture2D属性字段的说明,详见:纹理属性

 

MipMap

注1:勾上Mip Level,选择Level级别,会强制使用当前mip级别进行预览。

注2:不勾Mip Level,放大缩小贴图时,会根据MinMagFilter和MipFilter设定的过滤算法(各TextureGroup有指定自己的MinMagFilter和MipFilter),来显示贴图的像素颜色

mip级别和size的关系如下:

级别 Mip1 Mip2 Mip3 Mip4 Mip5 Mip6 Mip7 Mip8 Mip9 Mip10 Mip11 Mip12 Mip13
Level 12 11 10 9 8 7 6 5 4 3 2 1 0
size 1x1 2x2 4x4 8x8 16x16 32x32 64x64 128x128 256x256 512x512 1024x1024 2048x2048 4096x4096
颜色 绿

 

以下实验,修改完贴图的Filter之后,需重启编辑器来验证:

Filter为Nearest       注:MinMagFilter=point,MipFilter=point

或Filter为Bi-linear  注:MinMagFilter=linear,MipFilter=point

 

Filter为Tri-linear   注:MinMagFilter=linear,MipFilter=linear

 

Filter为Default(From Texture Group)   注:MinMagFilter=aniso,MipFilter=point  或MinMagFilter=aniso,MipFilter=linear

 

r.MipMapLODBias 0  // 不对mipmap精度进行偏移

r.MipMapLODBias 2  // 将mipmap精度降低2级

r.MipMapLODBias -2  // 将mipmap精度提高2级

 

贴图数组(TextureArray)

选择分辨率一样的贴图,然后右键选择“Create Texture Array”来创建贴图数组资源

 

创建出来的贴图数组资源如下:

 

立方体贴图(CubeMap)

立方体贴图(CubeMap)提供了一种进行环境映射的简单方法,通过这种方法,像天空、周围环境这样的远景可以映射到一个全景贴图上。

在底层,这些贴图存储为6张图片,映射到立方体的内表面上。更多信息详见:立方体贴图

 

3D贴图(TextureVolume)

3D贴图,又叫体积纹理,是一种特殊类型的资源,可以帮助在2D纹理中存储和使用3D体积信息。更多信息详见:体积纹理

 

LightMap和ShadowMap

当关卡xxxxx有LightMap(光照贴图)和ShadowMap(阴影贴图)时,会保存在xxxxx_BuiltData.uasset文件中。

在Levels面板中双击xxxxx关卡,可将xxxxx关卡设为当前关卡,然后切换到World Settings面板的Lightmass标签,就可以看到xxxxx关卡的LightMap和ShadowMap。双击这些LightMap和ShadowMap,即可打开。

 

Lightmass烘焙出的LightMap

 

Lightmass烘焙出的ShadowMap

 

注:计算颜色时,直接将LightMap、ShadowMap与BaseColor进行相乘

 

设备分档(DeviceProfile)

可通过菜单:Window -- Developer Tools -- Device Profiles来打开Device Profiles面板

注:左边面板每项前有一个小尖锥的图标,向下为Pin状态,表明该项会显示在右边list中,向右为UnPin状态,则表示该项不要显示在右边list中

 

载入Device Profiles面板上数据

按照如下顺序进行覆盖读取(后面覆盖前面的数据):

① 引擎的UnrealEngine\Engine\Config\BaseDeviceProfiles.ini 

② 项目的Config\DefaultDeviceProfiles.ini(若存在的话)

③ 项目的Saved\Config\Windows\DeviceProfiles.ini (若存在的话)

 

保存Device Profiles面板上数据

点击右上角上的Save as Default按钮后,会将Device Profiles面板上的所有值保存到项目的Config\DefaultDeviceProfiles.ini    注:如果没有,则会创建一个

如果修改的数值,没有点击Save as Default按钮,则在关闭编辑器时,会将修改保存在项目的Saved\Config\Windows\DeviceProfiles.ini的临时文件中

 

继承关系

以Windows平台为例来进行说明

① 名称为Windows、WindowsNoEditor、WindowsServer、WindowsClient都属于Windows类型的平台

② WindowsNoEditor(windows客户端cook版本)、WindowsServer(windows ds cook版本)、WindowsClient会继承并覆写Windows的Profile数值    注:它们的Base Profile Name都为Windows

③ 修改Windows的Profile数值会影响所有的windows类型的程序(后续被覆写的数值除外)

 

以下为IOS相关的数据:

更多设备描述信息详见:设置设备描述自定义Android的设备描述和可延展性

 

控制台变量(Console Variable)

r.TextureStreaming 0  // 关闭texture streaming。即使在纹理从来没有被用于渲染,所有纹理mip都将被完全加载到内存中。内存会暴增。

可进行如下设置来开启项目的TextureStreaming

这个设置会保存到DefaultEngine.ini中

[/Script/Engine.RendererSettings]

r.TextureStreaming=True

注1:可通过控制台变量r.TextureStreaming 0/1来动态修改关闭和开启Texture Streaming。关闭后,所有的mip都将被完全加载到内存中。

注2:开启了TextureStreaming之后,引擎会基于纹素大小(texel size)和物体的bounds来计算各个像素(pixel)最适合比例的纹理lod级别。若所需内存超过PoolSize大小,会取更小size的纹理lod级别。

 

r.Streaming.PoolSize  // 查看当前texture streaming内存池的大小  注1:该Pool包含UI纹理、NeverStream纹理、CubeMap和流送纹理。在某些平台上,这个池还可以保存非纹理资源,例如GPU粒子缓冲区和顶点缓冲区。 注2:该Pool为Texture显存的上限。

r.Streaming.PoolSize 0  // 设置texture streaming内存池的大小为不受限制

r.Streaming.PoolSize 100  // 设置texture streaming内存池的大小为100MB   注:也可通过stat streaming来看到其当前大小

Required Pool:纹理流送器需要根据其指标加载的mip数据量。Required Pool超过r.Streaming.PoolSize时,会进行一些妥协,部分纹理将不会以其所要求的分辨率加载。

Visible Mips:可见纹理mip当前占用的内存。这并不包含Forced Mips。

Hidden Mips:非可见纹理mip当前占用的内存。这并不包含Forced Mips。为防止首次显示纹理时出现低精度纹理,流送器会提前预流送纹理,但通常会比所需要的少一个 mip(详见 r.Streaming.HiddenPrimitiveScale)。

Forced Mips:强制流入纹理当前占据的内存。纹理通常通过游戏性机制在一小段时间内强制流入。这并不包含NonStreaming Mips。

Cached Mips:不再需要的纹理mip所占据的缓存。当纹理流送器内存不够时,会被释放用来流入所需的Mips。

Wanted Mips:实际流入的所需池大小。达到 100% 后,流送器将停止发送 IO 请求加载新 mip。Wanted Mips 等于 Visible Mips + Hidden Mips + Forced Mips + UnknownRef Mips

Safety Pool:Engine配置文件中,[TextureStreaming]标签下的MemoryMargin配置的数值。

Temporary Pool:调整纹理大小时流送器可用的额外内存量,由r.Streaming.MaxTempMemoryAllowed 控制。

Streaming Pool:为r.Streaming.PoolSize配置的数值。流送器通常会将所有可用内存用于流送新 mip,或将之前流送的 mip 尽可能久地保存在内存中。

                             Streaming当前实际占用的内存为:约等于Visible Mips + Hidden Mips + Force Mips + UnknownRef Mips + Cached Mips。

NonStreaming Mips:常驻Mips占用的内存。

Texture使用的内存约等于 Safety Pool(5 MB) + Temporary Pool(50 MB) + Visible Mips(0.15 MB) + Hidden Mips(0.0 MB) + Force Mips(0.0 MB) + UnknownRef Mips(42.68 MB) + Cached Mips(0.0 MB) + NonStreaming Mips(66.4 MB) = 164.23 MB

更多stat streaming说明请参考:报告纹理流送指标

 

 

当r.Streaming.PoolSize很小时,会在左上角提示:TEXTURE STREAMING POOL OVER XXX MiB BUDGET

场景中显示的纹理也会变得很糊,效果不好

r.Streaming.PoolSizeForMeshes  1 // Mesh使用独立的PoolSize,为-1(缺省值)时Mesh和Texture共用Pool  单位MB

r.Streaming.FramesForFullUpdate  1000  // 每次完整更新的帧数间隔设为100帧。缺省值为5帧。每次更新都会重新计算每个纹理所需的分辨率,并生成mip加载或卸载请求。较高的值会降低纹理流送器CPU使用率,而较低的值则会提高其反应能力。

r.Streaming.MaxTempMemoryAllowed 30  // 设置更新纹理的临时内存量为30MB,缺省为20MB。设置太大会浪费内存,设置过小则会让纹理流送器的吞吐量低。

r.Streaming.HLODStrategy 0 // 将HLOD的Stream策略为0  注:0 : 允许流送所有mip。  1 : 仅流送最后一个mip,始终加载其他mip。  2 : 不流送任何mip,始终加载所有mip。

r.Streaming.DropMips 2  // 丢掉Cache Mips和Hidden Mips  注:0 : 不丢掉任何mip。 1 : 丢掉缓存的mip。 2 : 丢掉缓存和隐藏的mip。

r.Streaming.HiddenPrimitiveScale 0.8  // 物体不可见(即其边界框被遮挡)时,提前将最大分辨率的0.8倍对应分辨率的mip载入,防止首次显示纹理时出现低精度纹理。

r.Streaming.UsePerTextureBias  1  // 设置为1表示每个贴图使用自己的Bias,不使用全局MipBias

r.Streaming.MipBias 3   // 设置全局的MipBias为3,所有贴图、静态模型都会从最高精度向下偏移3个层级的mip   注1:r.Streaming.UsePerTextureBias需设置为0,该命令才会生效   注2:不影响地形贴图的Bias。不限制HLOD贴图的最大分辨率。对LightMap和ShadowMap仅限制最大分辨率

r.Streaming.TextureMipBias 2 // 设置全局的MipBias为2,所有贴图都会从最高精度向下偏移2个层级的mip  注:uam自己扩展的命令

r.UITextureLODBias 1  // 设置所有UI贴图的MipBias为1   注1:UI贴图需要包含mipmap数据   注2:对已经加载了UI贴图不生效,对后续加载的UI贴图生效

更多控制台变量详见:纹理流送配置

 

一些全局变量

/** True if the RHI supports texture streaming */
extern RHI_API bool GRHISupportsTextureStreaming;
/** Amount of memory allocated by textures. In kilobytes. */
extern RHI_API volatile int32 GCurrentTextureMemorySize;
/** Amount of memory allocated by rendertargets. In kilobytes. */
extern RHI_API volatile int32 GCurrentRendertargetMemorySize;
/** Current texture streaming pool size, in bytes. 0 means unlimited. */
extern RHI_API int64 GTexturePoolSize;

 

对于场景中的StaticMesh对象,可勾选Force Mip Streaming,让该物件所有的MipMap贴图常驻内存

注:设置StaticMeshActor的Streaming Distance Multiplier(流送距离乘数)的值,会影响StaticMeshActor的Primitive Distance的数值。

 

构建纹理流送(Build Texture Streaming)

执行Build Texture Streaming,会将以下信息保存到关卡的umap及BuiltData.uasset文件中

① Primitive的bound

② StaticMesh的纹理坐标大小

③ 对每个纹理采样的纹理坐标的scale

利用这些信息,引擎可以更准确地按照距离选择Texture对应的mip层级    注:如果没有build,引擎会使用保守式启发的算法来选择

 

画质分档(Scalability)

将Quality分为Low(0)、Medium(1)、High(2)、Epic(3)、Cinematic(4),共五档。

更多信息详见:UnrealEngine\Engine\Source\Runtime\Engine\Public\Scalability.hUnrealEngine\Engine\Source\Runtime\Engine\Private\Scalability.cpp

在编辑器中设置如下:

 

当关闭编辑器时,会保存在UnrealEngine\Engine\Saved\Config\Windows\EditorSettings.ini中

[ScalabilityGroups]
sg.ResolutionQuality=100.000000
sg.ViewDistanceQuality=3
sg.AntiAliasingQuality=3
sg.ShadowQuality=3
sg.PostProcessQuality=3
sg.TextureQuality=1
sg.EffectsQuality=3
sg.FoliageQuality=3
sg.ShadingQuality=3

具体各级别对应数值配置在:UnrealEngine\Engine\Config\BaseScalability.ini

[TextureQuality@1]
r.Streaming.MipBias=1
r.Streaming.AmortizeCPUToGPUCopy=0
r.Streaming.MaxNumTexturesToStreamPerFrame=0 ;每帧流送纹理的最大个数,为0表示不限制
r.Streaming.Boost=1
r.MaxAnisotropy=2
r.VT.MaxAnisotropy=4
r.Streaming.LimitPoolSizeToVRAM=1
r.Streaming.PoolSize=600
r.Streaming.MaxEffectiveScreenSize=0

; ... ... [AntiAliasingQuality@3] r.PostProcessAAQuality=4 [ViewDistanceQuality@3] r.SkeletalMeshLODBias=0 r.ViewDistanceScale=1.0 [ShadowQuality@3] r.LightFunctionQuality=1 r.ShadowQuality=5 r.Shadow.CSM.MaxCascades=10 r.Shadow.MaxResolution=2048 r.Shadow.MaxCSMResolution=2048 r.Shadow.RadiusThreshold=0.01 r.Shadow.DistanceScale=1.0 r.Shadow.CSM.TransitionScale=1.0 r.Shadow.PreShadowResolutionFactor=1.0 r.DistanceFieldShadowing=1 r.DistanceFieldAO=1 r.AOQuality=2 r.VolumetricFog=1 r.VolumetricFog.GridPixelSize=8 r.VolumetricFog.GridSizeZ=128 r.VolumetricFog.HistoryMissSupersampleCount=4 r.LightMaxDrawDistanceScale=1 r.CapsuleShadows=1 [PostProcessQuality@3] r.MotionBlurQuality=4 r.AmbientOcclusionMipLevelFactor=0.4 r.AmbientOcclusionMaxQuality=100 r.AmbientOcclusionLevels=-1 r.AmbientOcclusionRadiusScale=1.0 r.DepthOfFieldQuality=2 r.RenderTargetPoolMin=400 r.LensFlareQuality=2 r.SceneColorFringeQuality=1 r.EyeAdaptationQuality=2 r.BloomQuality=5 r.FastBlurThreshold=100 r.Upscale.Quality=3 r.Tonemapper.GrainQuantization=1 r.LightShaftQuality=1 r.Filter.SizeScale=1 r.Tonemapper.Quality=5 ; DOF settings. r.DOF.Gather.AccumulatorQuality=1 ; higher gathering accumulator quality r.DOF.Gather.PostfilterMethod=1 ; Median3x3 postfilering method r.DOF.Gather.EnableBokehSettings=0 ; no bokeh simulation when gathering r.DOF.Gather.RingCount=4 ; medium number of samples when gathering r.DOF.Scatter.ForegroundCompositing=1 ; additive foreground scattering r.DOF.Scatter.BackgroundCompositing=2 ; additive background scattering r.DOF.Scatter.EnableBokehSettings=1 ; bokeh simulation when scattering r.DOF.Scatter.MaxSpriteRatio=0.1 ; only a maximum of 10% of scattered bokeh r.DOF.Recombine.Quality=1 ; cheap slight out of focus r.DOF.Recombine.EnableBokehSettings=0 ; no bokeh simulation on slight out of focus r.DOF.TemporalAAQuality=1 ; more stable temporal accumulation r.DOF.Kernel.MaxForegroundRadius=0.025 r.DOF.Kernel.MaxBackgroundRadius=0.025 [EffectsQuality@3] r.TranslucencyLightingVolumeDim=64 r.RefractionQuality=2 r.SSR.Quality=3 r.SSR.HalfResSceneColor=0 r.SceneColorFormat=4 r.DetailMode=2 r.TranslucencyVolumeBlur=1 r.MaterialQualityLevel=1 ; High quality r.AnisotropicMaterials=1 r.SSS.Scale=1 r.SSS.SampleSet=2 r.SSS.Quality=1 r.SSS.HalfRes=0 r.SSGI.Quality=3 r.EmitterSpawnRateScale=1.0 r.ParticleLightQuality=2 r.SkyAtmosphere.AerialPerspectiveLUT.FastApplyOnOpaque=1 ; Always have FastSkyLUT 1 in this case to avoid wrong sky r.SkyAtmosphere.AerialPerspectiveLUT.SampleCountMaxPerSlice=4 r.SkyAtmosphere.AerialPerspectiveLUT.DepthResolution=16.0 r.SkyAtmosphere.FastSkyLUT=1 r.SkyAtmosphere.FastSkyLUT.SampleCountMin=4.0 r.SkyAtmosphere.FastSkyLUT.SampleCountMax=128.0 r.SkyAtmosphere.SampleCountMin=4.0 r.SkyAtmosphere.SampleCountMax=128.0 r.SkyAtmosphere.TransmittanceLUT.UseSmallFormat=0 r.SkyAtmosphere.TransmittanceLUT.SampleCount=10.0 r.SkyAtmosphere.MultiScatteringLUT.SampleCount=15.0 fx.Niagara.QualityLevel=3 [FoliageQuality@3] foliage.DensityScale=1.0 grass.DensityScale=1.0 ;foliage.DiscardDataOnLoad=0 ;grass.DiscardDataOnLoad=0 [ShadingQuality@3] r.HairStrands.SkyLighting.IntegrationType=2 r.HairStrands.SkyAO.SampleCount=4 r.HairStrands.Visibility.MSAA.SamplePerPixel=4 r.HairStrands.Interpolation.UseSingleGuide=0

; ... ...

 

更多信息请查看: 可延展性参考

 

使用代码来整体一起来设置Quality

FQualityLevels CurrQualityLevels = Scalability::GetQualityLevels();
CurrQualityLevels.SetFromSingleQualityLevel(LevelNum); // LevelNum : 0(Low),  1(Medium),  2(High),  3(Epic),  4(Cinematic)
Scalability::SetQualityLevels(CurrQualityLevels, true);

 

FQualityLevels结构体详见:

/** UnrealEngine\Engine\Source\Runtime\Engine\Public\Scalability.h */
namespace Scalability
{ 
    // ... ...

    /**
     * Structure for holding the state of the engine scalability groups
     * Actual engine state you can get though GetQualityLevels().
    **/
    struct ENGINE_API FQualityLevels
    {
        float ResolutionQuality;
        int32 ViewDistanceQuality;
        int32 AntiAliasingQuality;
        int32 ShadowQuality;
        int32 PostProcessQuality;
        int32 TextureQuality;
        int32 EffectsQuality;
        int32 FoliageQuality;
        int32 ShadingQuality;

        // ... ...
    };
    
    // ... ...
};

 

使用控制台命令来设置Quality

SCALABILITY auto  // 自动执行Scalability::BenchmarkQualityLevels()来测试cpu和gpu性能,来决定给各个子项分别设置什么档位,并将信息保存ini配置文件中

SCALABILITY reapply  // 获取当前Scalability::GetQualityLevels()来设置一遍

SCALABILITY cine  // 设置到最高Cinematic档位,并将信息保存ini配置文件中

SCALABILITY N  // 当N为1即设置到Medium档位,并将信息保存ini配置文件中

 

各个子项单独用命令来设置

sg.AntiAliasingQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.AntiAliasingQuality.NumLevels Number of settings quality levels in sg.AntiAliasingQuality
default: 5 (0..4)
sg.EffectsQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.EffectsQuality.NumLevels Number of settings quality levels in sg.EffectsQuality
default: 5 (0..4)
sg.FoliageQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.FoliageQuality.NumLevels Number of settings quality levels in sg.FoliageQuality
default: 5 (0..4)
sg.PostProcessQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.PostProcessQuality.NumLevels Number of settings quality levels in sg.PostProcessQuality
default: 5 (0..4)
sg.ResolutionQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
10..100, default: 100
sg.ShadingQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.ShadingQuality.NumLevels Number of settings quality levels in sg.ShadingQuality
default: 5 (0..4)
sg.ShadowQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.ShadowQuality.NumLevels Number of settings quality levels in sg.ShadowQuality
default: 5 (0..4)
sg.TextureQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.TextureQuality.NumLevels Number of settings quality levels in sg.TextureQuality
default: 5 (0..4)
sg.ViewDistanceQuality Scalability quality state (internally used by scalability system, ini load/save or using SCALABILITY console command)
0:low, 1:med, 2:high, 3:epic, 4:cinematic, default: 3
sg.ViewDistanceQuality.NumLevels Number of settings quality levels in sg.ViewDistanceQuality
default: 5 (0..4)

 

载入Scalability数据

Windows下会按照如下顺序进行覆盖读取(后面覆盖前面的数据):

① 引擎的UnrealEngine\Engine\Config\BaseScalability.ini 

② 项目的Config\DefaultScalability.ini(若存在的话)

③ 项目的Saved\Config\Windows\Scalability.ini (若存在的话)

 

Android下会按照如下顺序进行覆盖读取(后面覆盖前面的数据):

① 引擎的UnrealEngine\Engine\Config\BaseScalability.ini 

② 项目的Config\DefaultScalability.ini(若存在的话)

③ 引擎的UnrealEngine\Engine\Config\Android\AndroidScalability.ini

④ 项目的R6Game\Config\Android\AndroidScalability.ini(若存在的话)

⑤ 项目的Saved\Config\Android\Scalability.ini (若存在的话)

 

IOS下会按照如下顺序进行覆盖读取(后面覆盖前面的数据):

① 引擎的UnrealEngine\Engine\Config\BaseScalability.ini 

② 项目的Config\DefaultScalability.ini(若存在的话)

③ 引擎的UnrealEngine\Engine\Config\IOS\IOSScalability.ini

④ 项目的R6Game\Config\IOS\IOSScalability.ini(若存在的话)

⑤ 项目的Saved\Config\IOS\Scalability.ini (若存在的话)

 

Exec命令

具体实现详见:UnrealEngine\Engine\Source\Runtime\Engine\Private\Streaming\StreamingManagerTexture.cppbool FRenderAssetStreamingManager::Exec函数   注:非SHIPPING包这些命令才有效。

DumpTextureStreamingStats  // 打印Texture Streaming池的状态

DumpRenderAssetStreamingStats // 同上

[2022.03.22-15.14.48:879][215]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:DumpTextureStreamingStats
[2022.03.22-15.14.48:897][215]--------------------------------------------------------
[2022.03.22-15.14.48:897][215]Texture Streaming Stats:
[2022.03.22-15.14.48:897][215]Total Pool Size (aka RenderAssetPool) = 8796093022208.00 MB
[2022.03.22-15.14.48:897][215]Non-Streaming Mips = 35.82 MB
[2022.03.22-15.14.48:897][215]Remaining Streaming Pool Size = 30.01 MB
[2022.03.22-15.14.48:897][215]Streaming Assets, Current/Pool = 3.24 / 30.01 MB (11%)
[2022.03.22-15.14.48:897][215]Streaming Assets, Target/Pool =  10.01 / 30.01 MB (33%)
[2022.03.22-15.14.48:897][215]--------------------------------------------------------

 

ListStreamingTextures    // 列出进行TextureStreaming的贴图

[2022.03.22-15.24.16:898][705]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:ListStreamingTextures
[2022.03.22-15.24.16:916][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [43] : LightMapTexture2D /Game/FrontEnd/Levels/SelectMap/SelectMapLevel_BuiltData.SelectMapLevel_BuiltData:LQ_Lightmap_1_1
[2022.03.22-15.24.16:917][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=2048x2048 BudgetBias=0 Group=TEXTUREGROUP_Lightmap
[2022.03.22-15.24.16:917][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [42] : Texture2D /Engine/EngineMaterials/BlendFunc_DefBase.BlendFunc_DefBase
[2022.03.22-15.24.16:917][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=16x16 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:917][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [41] : Texture2D /Engine/EngineMaterials/BlendFunc_DefBlend.BlendFunc_DefBlend
[2022.03.22-15.24.16:917][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=16x16 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:917][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [4] : Texture2D /Engine/EngineMaterials/DefaultDiffuse.DefaultDiffuse
[2022.03.22-15.24.16:917][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=1024x1024 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [12] : Texture2D /Engine/EngineMaterials/DefaultWhiteGrid.DefaultWhiteGrid
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=128x128 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [10] : Texture2D /Engine/EngineMaterials/InvalidLightmapSettings.InvalidLightmapSettings
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [3] : Texture2D /Engine/EngineMaterials/T_Default_Material_Grid_M.T_Default_Material_Grid_M
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=1x1 Wanted=1x1 MaxAllowed=512x512 LastRenderTime=4274.307 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [2] : Texture2D /Engine/EngineMaterials/T_Default_Material_Grid_N.T_Default_Material_Grid_N
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=1x1 Wanted=1x1 MaxAllowed=256x256 LastRenderTime=4274.307 BudgetBias=0 Group=TEXTUREGROUP_WorldNormalMap
[2022.03.22-15.24.16:918][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [11] : Texture2D /Engine/EngineMaterials/WeightMapPlaceholderTexture.WeightMapPlaceholderTexture
[2022.03.22-15.24.16:919][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=2x2 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:919][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [1] : Texture2D /Engine/EngineResources/Black.Black
[2022.03.22-15.24.16:919][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=32x32 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:921][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [5] : Texture2D /Engine/EngineResources/DefaultTexture.DefaultTexture
[2022.03.22-15.24.16:921][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=128x128 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [0] : Texture2D /Engine/EngineResources/WhiteSquareTexture.WhiteSquareTexture
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=32x32 BudgetBias=0 Group=TEXTUREGROUP_World
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [9] : Texture2D /Engine/Functions/Engine_MaterialFunctions02/ExampleContent/Textures/CylindricalNormals.CylindricalNormals
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x1 Wanted=1x1 MaxAllowed=1x128 BudgetBias=0 Group=TEXTUREGROUP_WorldNormalMap
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [108] : Texture2D /Game/ArtResource/Assets/Avatar/Gloves/Textures/Chr_M01_Gloves_01_D.Chr_M01_Gloves_01_D
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=1024x1024 MaxAllowed=1024x1024 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [107] : Texture2D /Game/ArtResource/Assets/Avatar/Gloves/Textures/Chr_M01_Gloves_01_MA.Chr_M01_Gloves_01_MA
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=512x512 MaxAllowed=512x512 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:922][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [106] : Texture2D /Game/ArtResource/Assets/Avatar/Gloves/Textures/Chr_M01_Gloves_01_NR.Chr_M01_Gloves_01_NR
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=1024x1024 MaxAllowed=1024x1024 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [89] : Texture2D /Game/ArtResource/Assets/Avatar/Gloves/Textures/Chr_Npc06_Gloves_01_D.Chr_Npc06_Gloves_01_D
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [88] : Texture2D /Game/ArtResource/Assets/Avatar/Gloves/Textures/Chr_Npc06_Gloves_01_MA.Chr_Npc06_Gloves_01_MA
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [87] : Texture2D /Game/ArtResource/Assets/Avatar/Gloves/Textures/Chr_Npc06_Gloves_01_NR.Chr_Npc06_Gloves_01_NR
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:923][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [98] : Texture2D /Game/ArtResource/Assets/Avatar/Hair/Textures/Chr_M01_Hair_Eyebrown_SkinType0_01_D.Chr_M01_Hair_Eyebrown_SkinType0_01_D
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=512x512 MaxAllowed=512x512 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [97] : Texture2D /Game/ArtResource/Assets/Avatar/Hair/Textures/Chr_M01_Hair_Eyebrown_SkinType0_01_HSR.Chr_M01_Hair_Eyebrown_SkinType0_01_HSR
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=512x512 MaxAllowed=512x512 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterHightlightShiftRoot
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [96] : Texture2D /Game/ArtResource/Assets/Avatar/Hair/Textures/Chr_M01_Hair_Eyebrown_SkinType0_01_NR.Chr_M01_Hair_Eyebrown_SkinType0_01_NR
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=256x256 MaxAllowed=256x256 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [76] : Texture2D /Game/ArtResource/Assets/Avatar/Hair/Textures/Chr_M01_Hair_Eyebrows_02_HSR.Chr_M01_Hair_Eyebrows_02_HSR
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterHightlightShiftRoot
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [75] : Texture2D /Game/ArtResource/Assets/Avatar/Hair/Textures/Chr_NPC06_Hair_01_HSR.Chr_NPC06_Hair_01_HSR
[2022.03.22-15.24.16:924][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterHightlightShiftRoot
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [74] : Texture2D /Game/ArtResource/Assets/Avatar/Hair/Textures/Chr_NPC07_Hair_01_NR.Chr_NPC07_Hair_01_NR
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [77] : Texture2D /Game/ArtResource/Assets/Avatar/Hair/Textures/Chr_NPC07_Hair_Beard_01_HSR.Chr_NPC07_Hair_Beard_01_HSR
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterHightlightShiftRoot
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [103] : Texture2D /Game/ArtResource/Assets/Avatar/Head/Textures/Chr_M01_Head_SkinType2_02_D.Chr_M01_Head_SkinType2_02_D
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=1024x1024 MaxAllowed=1024x1024 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [99] : Texture2D /Game/ArtResource/Assets/Avatar/Head/Textures/Chr_M01_Head_SkinType2_02_NR.Chr_M01_Head_SkinType2_02_NR
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=1024x1024 MaxAllowed=1024x1024 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:925][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [105] : Texture2D /Game/ArtResource/Assets/Avatar/Head/Textures/Chr_M01_Teeth_SkinType0_01_D.Chr_M01_Teeth_SkinType0_01_D
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=128x128 MaxAllowed=128x128 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [104] : Texture2D /Game/ArtResource/Assets/Avatar/Head/Textures/Chr_M01_Teeth_SkinType0_01_NR.Chr_M01_Teeth_SkinType0_01_NR
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=64x64 Wanted=128x128 MaxAllowed=128x128 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [83] : Texture2D /Game/ArtResource/Assets/Avatar/Head/Textures/Chr_NPC07_Head_01_D.Chr_NPC07_Head_01_D
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [82] : Texture2D /Game/ArtResource/Assets/Avatar/Head/Textures/Chr_NPC07_Head_01_MA.Chr_NPC07_Head_01_MA
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=128x128 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [81] : Texture2D /Game/ArtResource/Assets/Avatar/Head/Textures/Chr_NPC07_Head_01_NR.Chr_NPC07_Head_01_NR
[2022.03.22-15.24.16:926][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:927][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [86] : Texture2D /Game/ArtResource/Assets/Avatar/Leg/Textures/Chr_Npc06_Leg_01_D.Chr_Npc06_Leg_01_D
[2022.03.22-15.24.16:927][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:927][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [85] : Texture2D /Game/ArtResource/Assets/Avatar/Leg/Textures/Chr_Npc06_Leg_01_MA.Chr_Npc06_Leg_01_MA
[2022.03.22-15.24.16:927][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:927][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [84] : Texture2D /Game/ArtResource/Assets/Avatar/Leg/Textures/Chr_Npc06_Leg_01_NR.Chr_Npc06_Leg_01_NR
[2022.03.22-15.24.16:927][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:927][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [111] : Texture2D /Game/ArtResource/Assets/Avatar/Leg/Textures/Chr_Npc_Leg_Instructor_01_D.Chr_Npc_Leg_Instructor_01_D
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=512x512 Wanted=512x512 MaxAllowed=512x512 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [110] : Texture2D /Game/ArtResource/Assets/Avatar/Leg/Textures/Chr_Npc_Leg_Instructor_01_MA.Chr_Npc_Leg_Instructor_01_MA
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=256x256 Wanted=256x256 MaxAllowed=256x256 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [109] : Texture2D /Game/ArtResource/Assets/Avatar/Leg/Textures/Chr_Npc_Leg_Instructor_01_NR.Chr_Npc_Leg_Instructor_01_NR
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=512x512 Wanted=512x512 MaxAllowed=512x512 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [114] : Texture2D /Game/ArtResource/Assets/Avatar/Shoes/Textures/Chr_NPC01_02_shoes_Instructor_D.Chr_NPC01_02_shoes_Instructor_D
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=256x256 Wanted=256x256 MaxAllowed=256x256 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:928][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [113] : Texture2D /Game/ArtResource/Assets/Avatar/Shoes/Textures/Chr_NPC01_02_shoes_Instructor_MA.Chr_NPC01_02_shoes_Instructor_MA
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=128x128 Wanted=128x128 MaxAllowed=128x128 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [112] : Texture2D /Game/ArtResource/Assets/Avatar/Shoes/Textures/Chr_NPC01_02_shoes_Instructor_NR.Chr_NPC01_02_shoes_Instructor_NR
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=256x256 Wanted=256x256 MaxAllowed=256x256 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [73] : Texture2D /Game/ArtResource/Assets/Avatar/Shoes/Textures/Chr_Npc06_shoes_01_D.Chr_Npc06_shoes_01_D
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [72] : Texture2D /Game/ArtResource/Assets/Avatar/Shoes/Textures/Chr_Npc06_shoes_01_MA.Chr_Npc06_shoes_01_MA
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=128x128 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [71] : Texture2D /Game/ArtResource/Assets/Avatar/Shoes/Textures/Chr_Npc06_shoes_01_NR.Chr_Npc06_shoes_01_NR
[2022.03.22-15.24.16:929][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [16] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_F01_Torso_01_D.Chr_F01_Torso_01_D
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=1024x1024 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [15] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_F01_Torso_01_MA.Chr_F01_Torso_01_MA
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [14] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_F01_Torso_01_NR.Chr_F01_Torso_01_NR
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=1024x1024 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [117] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_M01_Torso_01_01_D.Chr_M01_Torso_01_01_D
[2022.03.22-15.24.16:930][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=1024x1024 Wanted=1024x1024 MaxAllowed=1024x1024 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [116] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_M01_Torso_01_01_MA.Chr_M01_Torso_01_01_MA
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=512x512 Wanted=512x512 MaxAllowed=512x512 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [115] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_M01_Torso_01_01_NR.Chr_M01_Torso_01_01_NR
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2189|    Current=1024x1024 Wanted=1024x1024 MaxAllowed=1024x1024 LastRenderTime=0.000 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [19] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_M01_Torso_merge_D.Chr_M01_Torso_Merge_D
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=1024x1024 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [18] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_M01_Torso_merge_MA.Chr_M01_Torso_Merge_MA
[2022.03.22-15.24.16:931][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [17] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_M01_Torso_Merge_NR.Chr_M01_Torso_Merge_NR
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=1024x1024 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [92] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_Npc06_Torso_01_D.Chr_Npc06_Torso_01_D
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterDiffuse
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [91] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_Npc06_Torso_01_MA.Chr_Npc06_Torso_01_MA
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_CharacterMetallicAndAO
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [90] : Texture2D /Game/ArtResource/Assets/Avatar/Torso/Textures/Chr_Npc06_Torso_01_NR.Chr_Npc06_Torso_01_NR
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_CharacterNormalAndRoughness
[2022.03.22-15.24.16:932][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [25] : Texture2D /Game/ArtResource/Assets/Effects/SceneEffectsLibrary/UIMap/ResourcePool/Tile/T_FX_Tile_0021.T_FX_Tile_0021
[2022.03.22-15.24.16:933][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_Effects
[2022.03.22-15.24.16:933][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [40] : Texture2D /Game/ArtResource/Assets/Effects/SceneEffectsLibrary/UIMap/ResourcePool/Tile/T_FX_Tile_0111.T_FX_Tile_0111
[2022.03.22-15.24.16:933][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_Effects
。。。 。。。
[2022.03.22-15.24.16:939][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [131] : Texture2D /Game/ArtResource/Assets/Effects/SourceMaterial/Textures/MiscTexture/T_SmokeBall_01_8_9.T_SmokeBall_01_8_9
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=1024x1024 BudgetBias=0 Group=TEXTUREGROUP_Effects
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [129] : Texture2D /Game/ArtResource/Assets/Effects/SourceMaterial/Textures/MiscTexture/TFX_Fire_11.TFX_Fire_11
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=256x256 BudgetBias=0 Group=TEXTUREGROUP_Effects
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [128] : Texture2D /Game/ArtResource/Assets/Effects/SourceMaterial/Textures/MiscTexture/TFX_Fire_12.TFX_Fire_12
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_Effects
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [127] : Texture2D /Game/ArtResource/Assets/Effects/SourceMaterial/Textures/MiscTexture/TFX_Fire_13_01.TFX_Fire_13_01
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=64x64 Wanted=64x64 MaxAllowed=512x512 BudgetBias=0 Group=TEXTUREGROUP_Effects
[2022.03.22-15.24.16:940][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [61] : Texture2D /Game/ArtResource/Assets/Effects/SourceMaterial/Textures/MiscTexture/TFX_Mask_07_04.TFX_Mask_07_04
[2022.03.22-15.24.16:941][705]LogContentStreaming: |StreamingManagerTexture.cpp:2198|    Current=1x64 Wanted=1x64 MaxAllowed=4x256 BudgetBias=0 Group=TEXTUREGROUP_Effects
[2022.03.22-15.24.16:941][705]LogContentStreaming: |StreamingManagerTexture.cpp:2170|Texture [58] : Texture2D /Game/ArtResource/Assets/Effects/SourceMaterial/Textures/MiscTexture/TFX_Mask_10.TFX_Mask_10

 

InvestigateTexture Chr_M01_Hat_Begadi_Helmbezug_D  // 查看名为Chr_M01_Hat_Begadi_Helmbezug_D的贴图目前在内存中的状态

InvestigateRenderAsset Chr_M01_Hat_Begadi_Helmbezug_D  // 同上

[2022.03.22-14.13.15:306][494]LogContentStreaming: |StreamingManagerTexture.cpp:2546|Texture: Texture2D /Game/ArtResource/Assets/Equipment/Hat/Textures/Chr_M01_Hat_Begadi_Helmbezug_D.Chr_M01_Hat_Begadi_Helmbezug_D
[2022.03.22-14.13.15:306][494]LogContentStreaming: |StreamingManagerTexture.cpp:2558|  LOD group:   TEXTUREGROUP_CharacterDiffuse [Bucket=Default]
[2022.03.22-14.13.15:306][494]LogContentStreaming: |StreamingManagerTexture.cpp:2580|  Force all mips: bForceFullyLoad
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2589|  Current size [Mips]: 256x256 [9]
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2590|  Wanted size [Mips]:  256x256 [9]
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2597|  Allowed mips:        7-9 [9]
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2598|  LoadOrder Priority:  0
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2599|  Retention Priority:  3840
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2600|  Boost factor:        0.7
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2603|  bIs1P:   1
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2724|  Mip bias:              0  [LODGroup.Bias:0(1)]
[2022.03.22-14.13.15:307][494]LogContentStreaming: |StreamingManagerTexture.cpp:2728|  Time: World=15.939 LastUpdate=15.358 
[2022.03.22-14.13.15:308][494]LogContentStreaming: |StreamingManagerTexture.cpp:2735|  View0: Position=(X=210.072 Y=-55.710 Z=8677.272) ScreenSize=1920.000000 MaxEffectiveScreenSize=0.000000 Boost=1.000000

 

ListMaterialsWithMissingTextureStreamingData  // 列出缺少Texture数据的材质

[2022.03.22-14.25.06:586][869]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:ListMaterialsWithMissingTextureStreamingData
[2022.03.22-14.25.06:608][869]Listing all materials with not texture streaming data.
[2022.03.22-14.25.06:609][869]Run "BuildMaterialTextureStreamingData" in the editor to fix the issue
[2022.03.22-14.25.06:609][869]Note that some materials might have no that even after rebuild.
[2022.03.22-14.25.06:610][869]Material /Engine/EngineMaterials/WorldGridMaterial.WorldGridMaterial
[2022.03.22-14.25.06:610][869]Material /Engine/EngineMaterials/DefaultDeferredDecalMaterial.DefaultDeferredDecalMaterial
[2022.03.22-14.25.06:610][869]Material /Engine/EngineMaterials/DefaultPostProcessMaterial.DefaultPostProcessMaterial
[2022.03.22-14.25.06:610][869]Material /Paper2D/DefaultSpriteMaterial.DefaultSpriteMaterial
[2022.03.22-14.25.06:611][869]Material /MFClimate/OldSunSky/M_Sky.M_Sky
[2022.03.22-14.25.06:611][869]Material /Engine/EngineMaterials/Widget3DPassThrough.Widget3DPassThrough
[2022.03.22-14.25.06:611][869]Material /Engine/EngineMaterials/M_InvalidLightmapSettings.M_InvalidLightmapSettings
[2022.03.22-14.25.06:611][869]Material /Game/Startup/UI/Atlas/S_Startup/M_UI_WorldUV.M_UI_WorldUV
。。。 。。。
[2022.03.22-14.25.06:617][869]MaterialInstanceConstant /Game/ArtResource/Assets/Weapons/ShotGuns/MP133/Materials/MI_WP_weapon_izhmeh_mp133_12g.MI_WP_weapon_izhmeh_mp133_12g
[2022.03.22-14.25.06:617][869]MaterialInstanceConstant /Game/ArtResource/Assets/Weapons/ShotGuns/MP133/Materials/MI_MP133_Far.MI_MP133_Far
[2022.03.22-14.25.06:617][869]MaterialInstanceConstant /Game/ArtResource/Assets/Weapons/ShotGuns/MP133/Materials/MI_WP_mag_mp133_izhmeh_12g_6.MI_WP_mag_mp133_izhmeh_12g_6
[2022.03.22-14.25.06:617][869]MaterialInstanceConstant /Game/ArtResource/Assets/Weapons/ShotGuns/MP133/Materials/MI_WP_handguard_mp133_custom_rail.MI_WP_handguard_mp133_custom_rail
[2022.03.22-14.25.06:617][869]MaterialInstanceConstant /Game/ArtResource/Assets/Weapons/ShotGuns/MP133/Materials/MI_WP_barrel_mp133_660mm.MI_WP_barrel_mp133_660mm
[2022.03.22-14.25.06:618][869]MaterialInstanceConstant /Game/ArtResource/Assets/Weapons/ShotGuns/MP133/Materials/MI_WP_stock_mp133_plastic_long.MI_WP_stock_mp133_plastic_long

 

StreamingManagerMemory  // 打印所有StreamingMananger共占用的内存

[2022.03.22-14.31.47:067][821]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:StreamingManagerMemory
[2022.03.22-14.31.47:085][821]StreamingManagerTexture: 80.90 KB used

 

PauseTextureStreaming // 暂停或开启TextureStreaming  注:暂停之后,装备新枪AK74N后,其颜色贴图WP_weapon_izhmash_aks74n_545x39_D的Current Size为精度非常低的Mip了

PauseRenderAssetStreaming  // 同上

[2022.03.22-14.38.35:253][126]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:InvestigateTexture WP_weapon_izhmash_aks74n_545x39_D
[2022.03.22-14.38.35:265][126]LogContentStreaming: |StreamingManagerTexture.cpp:2546|Texture: Texture2D /Game/ArtResource/Assets/Weapons/AssaultRifles_Carbines/AK74N/Textures/WP_weapon_izhmash_aks74n_545x39_D.WP_weapon_izhmash_aks74n_545x39_D
[2022.03.22-14.38.35:265][126]LogContentStreaming: |StreamingManagerTexture.cpp:2558|  LOD group:   TEXTUREGROUP_WeaponDiffuse [Bucket=Default]
[2022.03.22-14.38.35:265][126]LogContentStreaming: |StreamingManagerTexture.cpp:2580|  Force all mips: bForceFullyLoad
[2022.03.22-14.38.35:265][126]LogContentStreaming: |StreamingManagerTexture.cpp:2589|  Current size [Mips]: 64x32 [7]
[2022.03.22-14.38.35:265][126]LogContentStreaming: |StreamingManagerTexture.cpp:2590|  Wanted size [Mips]:  1024x512 [11]
[2022.03.22-14.38.35:265][126]LogContentStreaming: |StreamingManagerTexture.cpp:2597|  Allowed mips:        7-11 [11]
[2022.03.22-14.38.35:265][126]LogContentStreaming: |StreamingManagerTexture.cpp:2598|  LoadOrder Priority:  1792
[2022.03.22-14.38.35:266][126]LogContentStreaming: |StreamingManagerTexture.cpp:2599|  Retention Priority:  3840
[2022.03.22-14.38.35:266][126]LogContentStreaming: |StreamingManagerTexture.cpp:2600|  Boost factor:        0.7
[2022.03.22-14.38.35:266][126]LogContentStreaming: |StreamingManagerTexture.cpp:2603|  bIs1P:   0
[2022.03.22-14.38.35:266][126]LogContentStreaming: |StreamingManagerTexture.cpp:2724|  Mip bias:              0 
[2022.03.22-14.38.35:266][126]LogContentStreaming: |StreamingManagerTexture.cpp:2728|  Time: World=1535.741 LastUpdate=1535.074 
[2022.03.22-14.38.35:266][126]LogContentStreaming: |StreamingManagerTexture.cpp:2735|  View0: Position=(X=210.072 Y=-55.710 Z=8677.272) ScreenSize=1920.000000 MaxEffectiveScreenSize=0.000000 Boost=1.000000

 

CancelTextureStreaming  // 取消当前Texture、StaticMesh、SkeletalMesh、LandscapeLOD的Streaming请求

CancelRenderAssetStreaming  // 同上

 

StreamOut 3 // 试图Streaming Out 3MB的Texture、Mesh内存

[2022.03.22-15.07.39:665][401]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:StreamOut 3
[2022.03.22-15.07.39:676][401]LogContentStreaming: |StreamingManagerTexture.cpp:360|Streaming out texture memory! Saved 3.10 MB.
[2022.03.22-15.07.39:677][401]Tried to stream out 3 MB of texture/mesh data: Succeeded

 

ResetMaxEverRequiredTextures  // reset曾经请求的最大纹理size为0

ResetMaxEverRequiredRenderAssetMemory // 同上

[2022.03.22-15.35.04:688][ 31]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:ResetMaxEverRequiredTextures
[2022.03.22-15.35.04:708][ 31]OldMax: 13091872 MaxEverRequired Reset.

 

LightmapStreamingFactor 0.5  // 修改Lightmap(光照贴图)Streaming的因子为0.5  注:缺省值为0.2

[2022.03.22-15.43.15:958][265]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:LightmapStreamingFactor 0.5
[2022.03.22-15.43.15:976][265]Lightmap streaming factor: 0.500 (lower values makes streaming more aggressive).

 

ShadowmapStreamingFactor 0.5  // 修改Shadowmap(阴影贴图)Streaming的因子为0.5  注:缺省值为0.2

[2022.03.22-15.46.40:526][439]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:ShadowmapStreamingFactor 0.5
[2022.03.22-15.46.40:543][439]Shadowmap streaming factor: 0.500 (lower values makes streaming more aggressive).

 

NumStreamedMips 38 12 Texture  // 修改Group类型为38(TEXTUREGROUP_CharacterDiffuse)的NumStreamedMips的值为12

[2022.03.22-17.30.29:089][616]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:NumStreamedMips 38 12 Texture
[2022.03.22-17.30.29:106][616]TEXTUREGROUP_CharacterDiffuse.NumStreamedMips = 12

NumStreamedMips 42 -2 Texture  // 查看Group类型为42(TEXTUREGROUP_WeaponDiffuse)的NumStreamedMips的值  注:-2为无效值,此时会打印原有NumStreamedMips的数值

[2022.03.23-10.04.27:938][534]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:NumStreamedMips 42 -2 Texture
[2022.03.23-10.04.27:952][534]TEXTUREGROUP_WeaponDiffuse.NumStreamedMips = -1

 

TrackTexture tgmkaehpa_4K_Albedo  // 将名为tgmkaehpa_4K_Albedo的贴图添加到追踪列表

TrackRenderAsset tgmkaehpa_4K_Albedo  // 同上

LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:TrackTexture tgmkaehpa_4K_Albedo
[2022.03.22-17.51.21:445][ 18]Textures or meshes containing "tgmkaehpa_4K_Albedo" are now tracked.

被追踪后,tgmkaehpa_4K_Albedo贴图的streaming行为都会打印到日志中(如下绿色块的log)

Cmd: r.Streaming.PoolSize 10
r.Streaming.PoolSize = "10"
LogContentStreaming: Texture pool size now 10 MB
LogContentStreaming: Texture: "Texture2D /Game/MS_Vegetables/3D_Asset/07_Pumpkin_tgmkaehpa/tgmkaehpa_4K_Albedo.tgmkaehpa_4K_Albedo", ResidentMips: 12/13, RequestedMips: 12, WantedMips: 11, Boost: 0.7 (updated)
Cmd: InvestigateTexture tgmkaehpa_4K_Albedo 
LogContentStreaming: Texture: Texture2D /Game/MS_Vegetables/3D_Asset/07_Pumpkin_tgmkaehpa/tgmkaehpa_4K_Albedo.tgmkaehpa_4K_Albedo
LogContentStreaming:   LOD group:   TEXTUREGROUP_World [Bucket=Largest]
LogContentStreaming:   Current size [Mips]: 1024x1024 [11]
LogContentStreaming:   Wanted size [Mips]:  1024x1024 [11]
LogContentStreaming:   Allowed mips:        7-13 [13]
LogContentStreaming:   LoadOrder Priority:  0
LogContentStreaming:   Retention Priority:  1536
LogContentStreaming:   Boost factor:        0.7
LogContentStreaming:   Mip bias:           0 
LogContentStreaming:   View0: Position=(X=195.453 Y=128.600 Z=300.204) ScreenSize=1069.000000 MaxEffectiveScreenSize=0.000000 Boost=1.000000
LogContentStreaming:   DynamicReference= StaticMeshComponent /Temp/Untitled_4.Untitled:PersistentLevel.tgmkaehpa_LOD0_2.StaticMeshComponent0
LogContentStreaming:     Size=872.931030, BoundIndex=2
LogContentStreaming:     Origin=(X=290.000 Y=60.000 Z=20.000), BoxExtent=(X=80.302 Y=79.913 Z=50.033), TexelSize=376.540497

 

堆栈如下:

>    UE4Editor-Engine-Win64-Debug.dll!TrackRenderAssetEvent(FStreamingRenderAsset * StreamingRenderAsset=0x000002c6b9916390, UStreamableRenderAsset * RenderAsset=0x000002c6afb70b80, bool bForceMipLevelsToBeResident=false, const FRenderAssetStreamingManager * Manager=0x000002c62b319600) Line 305    C++
     UE4Editor-Engine-Win64-Debug.dll!FStreamingRenderAsset::StreamWantedMips_Internal(FRenderAssetStreamingManager & Manager={...}, bool bUseCachedData=false) Line 542    C++
     UE4Editor-Engine-Win64-Debug.dll!FStreamingRenderAsset::StreamWantedMips(FRenderAssetStreamingManager & Manager={...}) Line 495    C++
     UE4Editor-Engine-Win64-Debug.dll!FRenderAssetStreamingManager::StreamRenderAssets(bool bProcessEverything=false) Line 1224    C++
     UE4Editor-Engine-Win64-Debug.dll!FRenderAssetStreamingManager::UpdateResourceStreaming(float DeltaTime=0.0182069018, bool bProcessEverything=false) Line 1603    C++
     UE4Editor-Engine-Win64-Debug.dll!FStreamingManagerCollection::UpdateResourceStreaming(float DeltaTime=0.0182069018, bool bProcessEverything=false) Line 867    C++
     UE4Editor-Engine-Win64-Debug.dll!IStreamingManager::Tick(float DeltaTime=0.0182069018, bool bProcessEverything=false) Line 721    C++
     UE4Editor-Engine-Win64-Debug.dll!FStreamingManagerCollection::Tick(float DeltaTime=0.0182069018, bool bProcessEverything=false) Line 836    C++
     UE4Editor-UnrealEd-Win64-Debug.dll!UEditorEngine::Tick(float DeltaSeconds=0.0182069018, bool bIdleMode=false) Line 1928    C++
     UE4Editor-UnrealEd-Win64-Debug.dll!UUnrealEdEngine::Tick(float DeltaSeconds=0.0182069018, bool bIdleMode=false) Line 426    C++
     UE4Editor-Win64-Debug.exe!FEngineLoop::Tick() Line 4836    C++
     UE4Editor-Win64-Debug.exe!EngineTick() Line 63    C++
     UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine=0x000002c6053b2080) Line 172    C++
     UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance=0x00007ff783ad0000, HINSTANCE__ * hPrevInstance=0x0000000000000000, char * __formal=0x000002c6011d48b6, int nCmdShow=10) Line 257    C++

 

ListTrackedTextures  // 打印所有被追踪的贴图资源

ListTrackedRenderAssets // 同上

[2022.03.22-22.49.14:854][284]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:ListTrackedTextures
[2022.03.22-22.49.14:872][284]Chr_M01_Hat_Begadi_Helmbezug_D
[2022.03.22-22.49.14:873][284]Chr_M01_Hat_Begadi_Helmbezug_MA
[2022.03.22-22.49.14:873][284]2 render assets are being tracked.

 

DebugTrackedTextures // 调试所有被追踪的贴图资源  注:需开启ENABLE_TEXTURE_TRACKING_BROKEN宏,默认没有开启,该功能暂不可用

DebugTrackedRenderAssets  // 同上

 

UntrackTexture Chr_M01_Hat_Begadi_Helmbezug_MA  // 将名为Chr_M01_Hat_Begadi_Helmbezug_MA的贴图从追踪列表中移除

[2022.03.22-22.59.55:424][294]LogTemp: |UnrealEngine.cpp:1969|UEngine::TickDeferredCommands-----------------Exec Commands:UntrackTexture Chr_M01_Hat_Begadi_Helmbezug_MA
[2022.03.22-22.59.55:482][294]Textures or meshes containing "Chr_M01_Hat_Begadi_Helmbezug_MA" are no longer tracked.

 

参考

UE 4.27 安卓平台纹理大小限定/推荐尺寸

[官方培训]05-虚幻引擎中的纹理 | 周澄清 Epic

posted on 2022-03-27 23:41  可可西  阅读(5017)  评论(2编辑  收藏  举报

导航