Proper Texturing Workflow for Unreal Engine

Hi,

Mmmmh, lookdev is typically done in many scenarios e.g. from studio neutral, to overcast and daylight. There is simply no way for an asset whose appearance was developed under flat lighting conditions to look great in daylight. Assets must be tested under the most varied lighting conditions possible or at least those representative of that they will be subjected to in the show. The corollary is ensuring that the asset looks great at all the exposure levels.

Hi @Chuck,

This is probably a question for Epic Games :slight_smile:

Probably for Epic Games too!

I wish I could answer your remaining questions but I contractually cannot! :slight_smile:
If you have UDN access, I would probably also consider asking that over there!

Cheers,

Thomas

Reviving this topic in regards to texturing workflow. In the meantime Substance Painter works with OCIO so that part is easy-peasey. As mentioned above UE uses sRGB linear as its working space, and will read in 8-bit color textures with the sRGB checkbox selected converting them to sRGB linear. It can also recognize normal maps and uncheck the sRGB box. Trouble is other non-color maps: masks, metalness, roughness, AO, etc. which need to manually have the sRGB checkbox turned off. Looking for a good approach to having it automatically detect the correct IDT.

AFAIK, Unreal does not support OCIO rules such as the ColorSpaceNamePathSearch, which is how we would approach this with OCIO in Maya. So I’m curious if anyone has any approaches to get Unreal to automatically ingest non-color textures as raw? What would be nice is to set it to default to reading all textures as raw, with an exception made for color textures, based on naming conventions.

One possibility, I was considering is writing color and normal maps as PNG, and the non-color maps as EXR, which would presumably be read by UE in linear.

Turns out UE does not read in EXR textures as linear.

Arrived at a good solution to this that I thought I’d share:

Keeping working color space at default linear sRGB in UE.

Writing all texture maps as PNG from Substance Painter working with an ACES OCIO config. Non-color maps are raw, and the channels are packed (roughness in green, metalness in blue, etc.)

The packed non-color texture maps import into UE with an unwanted sRGB conversion (sRGB to linear). In the base material for those maps I pipe the channel through a linear to sRGB node, thus undoing/reversing the unwanted gamma correction. This base material is then used for all material instances, making the whole thing automatic.

Hello,

This is not quite correct, it should disable the sRGB conversion in the texture UAsset and then when dragged into the Material Editor, the sampler should be automatically set to Linear Color.

Cheers,

Thomas

Thanks for the correction @Thomas_Mansencal. Just checked and UE5 is indeed reading EXR in as linear sRGB (sRGB = false).