Best Practices for Textures?

Hi there,

(sorry for the long post - the question is at the end, the rest is just explanation)

I’m totally unsure on the proper or best way(s) to texture my models for using them within Unreal Engine. I worked through several online courses about modelling, texturing and designing worlds in UE. Anyway: none of all the tutorials, guides and courses I took explained how to create textures for my own models in such a way that it remains performant, (re)usable and nice looking.

For the game background: I’m trying to create a game with a first person perspective in a stylized (maybe slightly cartoonish) environment where the character can explore the environment and might enter buildings. So I will have at least these three kinds of objects and textures:

  • small objects (like properties/interior for the buildings such as tables, chairs, …)
  • large objects (like buildings, maybe modular)
  • environmental terrain (rocks, pathways, meadows, …)

After taking all the courses I understand that there are many different ways to create my materials and textures for game objects. Let me summarise and describe what I learned so far and what my problems are with these approaches. I definitely ask for any advice on these workflows: which one to use and maybe when?

Let’s assume I created all models in a stylized way as a low poly version (using Blender):

  • A1) a simple modular house with some walls (concept: concrete, broken concrete, underlying bricks), posts to hold the walls (like medieval half-timber houses), doors & windows and roof
  • A2) some interior like a bed, a table, a chair, a candle, a bookshelf, some bottles and books and some environmental properties like little rocks/stones, flowers

From my current point of view I have these options to get/create some textures for my models:

1 - Buy/Download
So I’d search some websites offering stylized PBR textures that I like and purchase/download them.

Pros: fast & easy approach if you just want to have a texture on the models and don’t care about any consistent look & feel in the game (or scene)
Cons: never found any appropriate textures, as they are usually not the way I want my models to look like

2 - Create Procedural Textures (Blender / Substance Designer)
I took courses on both approaches and tried to create some textures / materials.

Pros: the textures are reusable and thus (I guess) more performant friendly when using them in UE.

Blender:
I’m not that happy with Blender as it is heavily based on vector math and understanding how to mix the nodes feels like magic.
Anyway: creating highlights for edges is very easy here

Substance Designer:
A quite complext software without any good tutorials/guides/courses; most designers tend to use it not for generic patterns like wood but for more complex things like wooden planks, stone ways etc.

3 - Model proprietary Textures (Substance Painter)
Another approach would be to use Substance Painter. So having a 3d model, uv unwrap and use Geometry / ID Maps to pack all paintings to one texture set.

Pros: I could use high poly models and bake the details to the low poly textures, which avoids high poly count but looks still really cool.

Cons: all textures are proprietary to their model and might be (my fear) very expensive on heavy usage

Seems to be the best option for modelling / designing objects whenever the amount of textures used isn’t a problem for performance (like for a portfolio) or used to create very special game assets like eye catchers.

Conclusion / Questions
I’m not sure if there is “the one” way to create textures and if so would it really be an option to create proprietary textures per object like when using Substance Painter.

For my half-timbered house I have three wooden posts in different lengths. I can rotate them to avoid repetition, but I don’t want to scale the texture size by scaling the model itself. So I need three different proprietary wood textures, while also having more wood textures in the same kind for the windows (2 textures) and door(s) (2 textures). That might end up in ~7 textures for very similar wood.
My thought: all should be using the same wood texture (either procedurally created or bought externally), same could be true (with another wood texture) for tables and chairs.

On the other hand there are models that don’t share a lot of “base textures”, especially when having some kind of eye catchers (properties like a chest with some runes on it etc). What about the performance when having lots of properties in the map (or active viewport)?


QUESTION(s)
So, after all my text (sry for the long post) here is the simple :smiley: question: what is the best approach to texture game assets for usage in UE? Would it be an option to use something like mipmaps or atlases?

So there’s 3 main approaches to textures.

Tiling textures

Baked textures that are unique textures specific to an asset

Trim Sheets - which are commonly used for environments and a combo of both tiling and unique

Tiling textures are great for planes or boxes, don’t have to worry too much about seams, but start to have issues with more complex assets. There’s techniques like triplanar mapping that lets you apply a tiling texture to any asset, it’s a little more expensive, but cheap enough if the materials are otherwise pretty simple.

Unique baked textures are what you get with Substance painter, if you want to be extra optimized you can try to put a few assets on one texture if there’s extra space, but generally resolution really determines the quality and they aren’t very reusable, but they can look the best and are great for hero assets.

Trim sheets typically tile in one direction, aren’t specific to one asset but instead a group of assets, sometimes have non tiling spots for commonly reused details. They are fantastic for buildings, or all beams in a scene, or all metal detailing in a scene, etc etc. Trim sheets can be made in Designer or painter if you create a mesh to be the stand in, and it requires creative UV mapping.

1 Like

On top of these basic approaches to texturing, with materials you can start adding things like detail normals, vertex painting, decals or mesh decals, position-based randomization or coloring, etc.

There’s no single best practice, but generally your want to avoid having high resolution unique textures for every asset. Trim textures can take a lot of time to setup, along with fancy materials, but then you can use them for a large number of assets. It’s a time and effort balancing act along with a performance balancing act.

1 Like

Thanks for the explanation (and pointing me to the correct wording).

This is what I guessed after texturing some assets with Substance Painter:

There’s no single best practice, but generally your want to avoid having high resolution unique textures for every asset.

I’ll skip trim sheets for now as I’m not (yet) experienced enough.

My mix would now be:

  • Tiling Textures for common assets and environment
  • Unique Baked Textures for my “hero assets”

Is Substance Designer the way to go to create tiling textures or are there any other ways (beside Blenders Material Node System)?

Thanks a lot!