How to create new texture group

I cannot find how to create new or edit texture group. For instance I need texture group for foliage with negative LODbias=-2

Help says that these settings are in DefaultEngine.ini under SystemSettings but they are not

Pls help

I’m looking to find a solution to this issue also, using the 4.14.3 version of the engine. Looking at this documentation:

https://docs.unrealengine.com/latest/INT/Engine/Content/Types/Textures/SupportAndSettings/#EngineConfigTextureGroupProperties

DefaultEngine.ini and BaseEngine.ini is presented as the place to alter existing texture group settings. As it turns out, in my engine installation config folder, the BaseEngine.ini file holds no trace of the relevant lines found in the documentation, likewise the project DefaultEngine.ini file turns up short on texture group configuration lines.

Looking to this answerhub post:

https://answers.unrealengine.com/questions/384823/how-to-add-custom-texturegroup.html

It’s clear that new texture groups needs a bit of work in C++, but it returns to “use the INI file to adjust the settings” landing on the same issue as editing the existing groups.

Am I completely missing the point, or is the documentation out of date, or something else entirely? Some insight or instruction on the matter would be greatly appreciated.

1 Like

Bump? Still unclear how to add custom texture groups, and the .ini files don’t have the lines given in the documentation.

I believe you should look into DefaultDeviceProfiles.ini (BaseDeviceProfiles.ini respectively). Or you can use Device Profiles (Window/ Developer Tools/) in the Editor itself.

1 Like

4.21 and beyond

Since 4.21 there are 10 Project specific Texturegroups available for usage:

/** Project specific group, rename in Engine.ini, [EnumRemap] TEXTUREGROUP_Project**.DisplayName=My Fun Group */
TEXTUREGROUP_Project01 UMETA(DisplayName="ini:Project Group 01"),
TEXTUREGROUP_Project02 UMETA(DisplayName="ini:Project Group 02"),
TEXTUREGROUP_Project03 UMETA(DisplayName="ini:Project Group 03"),
TEXTUREGROUP_Project04 UMETA(DisplayName="ini:Project Group 04"),
TEXTUREGROUP_Project05 UMETA(DisplayName="ini:Project Group 05"),
TEXTUREGROUP_Project06 UMETA(DisplayName="ini:Project Group 06"),
TEXTUREGROUP_Project07 UMETA(DisplayName="ini:Project Group 07"),
TEXTUREGROUP_Project08 UMETA(DisplayName="ini:Project Group 08"),
TEXTUREGROUP_Project09 UMETA(DisplayName="ini:Project Group 09"),
TEXTUREGROUP_Project10 UMETA(DisplayName="ini:Project Group 10"),

These can be, as mentioned by the comment, renamed for each project in the DefaultEngine.ini of the project:

[EnumRemap]
 TEXTUREGROUP_Project01.DisplayName=Map Grid

Before 4.21

Adding texture groups requires engine changes. The Texture Groups are defined in TextureDefines.h:

/**
 * @warning: if this is changed:
 *     update BaseEngine.ini [SystemSettings]
 *     you might have to update the update Game's DefaultEngine.ini [SystemSettings]
 *     order and actual name can never change (order is important!)
 *
 * TEXTUREGROUP_Cinematic: should be used for Cinematics which will be baked out
 *                         and want to have the highest settings
 */
UENUM()
enum TextureGroup
{
	TEXTUREGROUP_World UMETA(DisplayName="World"),
	TEXTUREGROUP_WorldNormalMap UMETA(DisplayName="WorldNormalMap"),
	TEXTUREGROUP_WorldSpecular UMETA(DisplayName="WorldSpecular"),
	TEXTUREGROUP_Character UMETA(DisplayName="Character"),
	// ....
};

As the warning already suggests this is nothing that should be done without a good reason.
Anyway this would be the place to start.
The next step would be to set default values for the newly created texture groups in BaseDeviceProfiles.ini under [/Script/Engine.TextureLODSettings].

Okay so that renames them, but how do you set defaults for a texture group?

The defaults are the same as the Pre 4.20 case, you can set them in BaseDevicesProfiles.ini or for a project in the DefaultDevicesProfiles.ini

Thanks for this. Helped a lot. There’s a small typo though, it is DefaultDeviceProfiles.ini, not DefaultDevicesProfiles.ini.

Thank you for posting, I’ve been looking for this info for a while. If I may ask a related question, do you know why this is hard coded by name/use & order?

Part of my task is to also clean up the available options, reordering them by use frequency and culling those which aren’t to be used like I was able to do with static mesh LOD groups.

Is it even possible to change the texture group list without needing to edit and recompile the source? If I use “!DeviceProfileNamesAndTypeds=” in my DefaultDeviceProfiles.ini file before declaring my profile values, the editor doesn’t even load. (Android profile dependency despite not even targeting Android an an OS)