How to change the "real" texture size?

The texture sizes of the assets sold are sometimes unnecessarily large, which negatively impacts both performance and disk size. Until now I’ve been dealing with this by resizing and reimporting, but I’m getting tired of it.

Is there a way to resize textures that can be done in the editor? Of course, i don’t want to lower the apparent resolution, but rather “scale down” the texture assets. It could be a utility Blueprint, a command, a plugin, or whatever, but there needs to be a way to run it in the Blueprint project.

There is an option for MaximumTextureSize

This option will not decrease the disk size in Editor time since it will keep the source asset (which is fine in most cases).

However in packaged builds will take MaximumTextureSize as property and scale down it lowering build package size. So this is the intended way to scale down textures for shipped builds without reimporting, but it does not permanently resize the source asset.

When you set to a value lets say 512, the textures will start to render in editor with this resolution, size won’t change until the game is packaged, when packaged size will be lowered to matching 512 Max resolution.

I’m concerned about the backup size and would like to reduce the disk size. Minification can potentially reduce disk size by several gigabytes, especially when using cinematic-quality assets.

I understand the issue and that assets can be costly on disk in terms of size, but there is no implemented way to do this directly in Unreal. You can only resize textures outside of the Editor and reimport them, which you are already doing.

However, if there are a lot of assets, you can use something like the following to batch-process textures and significantly reduce the time spent resizing them:

Also, I’m assuming you are making backups on your local disk as copies of the same repository. In that case, using Git with Git LFS or a Perforce instance for version control can help manage large assets without manual copies, which can be a game changer in terms of asset organization (though it won’t reduce the actual texture sizes but the space you allocate in your local can be on cloud if you have a good enough connection speed).

1 Like

This isn’t the solution I want, but it’s better than spending hours resizing. But Epic runs a service that handles millions of assets, so why doesn’t it support engine-side usage?

This is definitely a feature that should be prioritized. Gemini is enough for an AI assistant.

Yeah think its a pipeline workflow thing rather than engine editor thing, still a custom one can be written as editor plugin where it extends the MaxTextureSize to actually resize images on disk aswell. It can be just done with C++ and maybe Python.

ReadImage->Resample->OverWriteSource->TriggerReImport

A search yielded this Texture Resize SC | Fab its exactly resize on local disk.

Also didn’t resize images on disk through engine but reimport as follows

void USomeClass::ReImportImages(UTexture* TextureToImport)
{
	if (TextureToImport)
	{
		// Ensure the texture is updated
		TextureToImport->UpdateResource();

		// Get the import data and re-import the asset
		if (UAssetImportData* ImportData = TextureToImport->AssetImportData)
		{
			FString AssetPath = TextureToImport->GetPathName();
		
			if (ImportData->GetFirstFilename() != "")
			{
				if (FReimportManager::Instance()->Reimport(TextureToImport))
				{
					UE_LOG(LogTemp, Display, TEXT("Texture Reimported Successfully."));
				}
				
			}
		}
	}
}

For resize

1 Like

This is what I wanted! How much trouble I had editing textures on downloaded assets.

Asset creators want to provide the highest quality possible, so it’s imperative that users be able to adjust it. I don’t know about big companies, but for individuals and small teams, this is a huge burden. This plugin should be officially implemented.

But anyway, I’m buying this.

1 Like

I know this is already resolved, but I would suggest another useful utility for anyone on Windows - Microsoft PowerToys is free in the MS Store; it has a lot of interesting features and includes bulk image resizing.

In the latest versions of Unreal Engine (from 5.4), you can resize the texture size on the disk only by using the context menu “Texture Source Reduce Size

2 Likes

Himm thats new, thanks!

Wow, that was already implemented!
I spent hours searching for texture resizing and couldn’t find anything mentioning this feature anywhere. Posting on forums sometimes gives me answers i can’t find on Google.

I was going to pay for the plugin today, but I’m glad I found this out before I did.

1 Like

Then thanks to @Vahab from saving you from additional cost and for reminding me that Unreal updates faster than my replies