Procedural Texturing - UE5 x Substance Plugin

✨Procedural texturing magic✨ directly inside of Unreal – powered by the Substance plugin, Texture Collections, Custom Primitive Data, and Mesh Painting!
-
The first step was creating a Texture Collection, which I'm using to store all of my texture maps. Texture Collections are a very experimental feature that utilizes bindless rendering. This means TC's can store any type of texture, at any resolution, any compression type, etc.
-
By using TC's, I'm able to drastically reduce the total number of material instances that are used in my scene. In this scenario, every mesh in the scene shares the same material instance.
-
Another powerful feature of bindless rendering is that textures can be indexed directly from the material. When combined with Custom Primitive Data, this lets me assign different textures to each mesh instance without the need for multiple material instances, all while maintaining a high level of variation.
-
The Substance and Decal Designer plugins are used to procedurally generate alpha masks for blending layers.
-
Finally, in Unreal Engine 5.5, I'm using the new Texture Color feature, which enables per-instance painting on Nanite meshes. It works by generating an external virtual texture on each mesh instance. (This VT is where the painted color information is stored.)
-
Unlike the traditional workflow of Vertex Painting, the resolution is no longer tied to vertex density, but instead to the resolution of the texture you are painting into. It's also worth mentioning that all of the Texture Color VT's are atlased during the cook process.
-
Some neat features I discovered throughout this project ---
Texture Collections can store ANY type of texture! (texture2D, texture2DArray, render target, volume texture, etc.)
Texture Color painting - each mesh can have different color map resolutions, and you can paint across multiple meshes at the same time!!
-
Links to Unreal Engine source code where you can learn more ~
Make sure you're part of the Epic Games organization on GitHub in order to view the links!!
-
https://github.com/EpicGames/Signup
-
https://github.com/EpicGames/UnrealEngine/commit/e0a4ea3689d53033e0fcee3730c9644c6b68e6f2
https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Engine/Private/TextureCollection.cpp
-
#unrealengine5 #ue5 #nanite #meshpainting #texturing #proceduralart #madewithsubstance #substance3d #techart #technicalart
#tools #3d

High-level breakdown.

Procedural Texturing Workflow - Part 1

Procedural Texturing Workflow - Part 2

Launch Unreal using this command-line argument.

Launch Unreal using this command-line argument.

Material Graph breakdown.

Material Graph breakdown.

Create a Texture Collection.