I see that under compression (texture content browser) there’s a Maximum Texture Size…
Does it mean that even if I imported a 1024x1024 (raw file), but input say 512 in Maximum Texture Size that every platform will get 512x512 max? PC won’t get 1024x1024 but 512?
Is there a way to specify that I want 1024x1024 max on PC, 512x512 on PS4/X1, 256x256 on the N Switch and so on… for the same texture (uasset)? Basically let UE4 compress and assign the right texture size per platform that I wish to have?
As well as seeing the preview directly in the engine?
Is there a way to specify I want to have a Normal Map compression of DXT5 on PC but DXT5 half size on PS4 and DXT1 quarter size on N Switch?
Controls such as this concept Texture Output Editor would be nice:
Your options only seems to limit texture based on platforms - for all textures.
I’m looking for an options to set specific texture sizes per platform:
Like WaterTexture_01 is 512x512 on PS4 but 256x256 on NSwitch while the Normal Map remains 512x512 on NSwitch.
However WoodTexture_03 is 1024 on PS4 but is 2048 on PC while it is 256 on NSwitch.
Well there are multiple texture groups you can assign the textures to. For each group the maximum texture size can be set.
Setting them individually per texture per platform will become very tedious very quickly, I personally see no real benefit in such detailed options.
Part of your example would be possible by lowering the Max Texture size of the World Texture group, which leaves the WorldNormalMap textures unchanged.
I don’t believe specifying max LOD Size for TextureGroups works to limit cooked texture size.
In UE 5.5.4, I have some 4K textures that end up as 2MB files per texture. I’d set:
max LOD Size
max LOD Size VT
in LOD groups:
World
WorldNormal
WorldSpecular
in multiple device-profiles
Android_ASTC
Android
Oculus_Quest2
After cooking, I checked directly in Saved/Cooked/Android_ASTC/… and the cooked World LODGroup .uasset/.ubulk texture is still 2MB+ .
I then hard-set the maximum texture-size in the texture-viewer, recooked, and now the same texture .uasset is < 200K.
This is a bad state that increases work, when texture-sizes won’t auto-adjust based on which platform it’s being cooked for.
Coming from Unity this just works with no problems over there, and the Texture Asset view shows the final size (X,Y) in-editor instead of spelunking through the cooked files to be sure.
So I just spent a day browsing through Unreal Engine 5.5 to 5.6 code trying to verify this functionality.
Summary, there is NO SUPPORT anywhere in the code that will at cooking/packaging, in-editor, nor runtime that will resize/limit a texture according to LODGroup’s “MaxLODSize” parameter as been claimed.
This is hallucinated functionality also affirmed by this comment in the source-code:
// Min/Max LOD Size clamps the LODBias, not the actual texture LODs. Meaning:
// MaxLODSize caps the largest mip size.
// MinLODSize prevents LODBias from making the largest mip smaller than the given value. Does not affect the size of the smallest mip. Almost never used.
Also I didn’t find any other code that would clamp max texture-size per MaxLODSize. Code also noted any such size-limitation also doesn’t work when the texture has no LODs per TextureGroup mipmap settings.
Instead, the closest actual working functionality is “Downscale”. It will at runtime, in-editor, and at cooking/packaging resize a texture per Platform-specific setting. So if it’s a 4K texture, a Downscale setting of 4 will reduce it to a 1K texture, and/or for the specified Platform/Device. This can actually be seen in the Texture Viewer by selecting something like Android (ATSC) and it will display the reduced texture.
It wasn’t helpful Google/AI search forums/webpages claimed MaxLODSIze capping is real functionality when there’s no verifiable code-existence for it.