Say I have following:
- a set of fairly
low poly modular wall models.
- a few
tileable textures: wall, broken walls, etc.
- I want to blend these textures to
hide the repeat tiling when you have a long stretch of walls.
Now, I know there are
2 general approaches:
- vertex color blending: this is no go for me due to model being too low poly.
- texture blending: this is possible but ...
I need at least 2 UV here, right? One for tiling textures and Another for the blending/splat texture?
- I know 3A games have tricks like projecting a large paintable splat texture onto the world geometry, which avoids 2nd UV.
- But doing this for all walls seem difficult, not to mention it will be a custom solution that only works in game engine.
- It also doesn't work in a more dynamic world, as the splat texture is authored, not generated.
So I am weighting my options here:
- I could go with 2 UV, and create variation by having more splat texture, the upside is this can be done in common DCC, the downside is, of course, more work.
- I could go with a procedural solution, where we blend textures differently based on world position and some noise, the upside is even user-created content would be fine, the downside is they are less interesting than authored ones.
Are there any other solution I am not aware of?
Replies
https://www.google.com/search?q=texture+bombing&rlz=1C1GCEU_enHU838HU838&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjuvquyya3lAhWjlYsKHWCBAY8Q_AUIEigB&biw=1920&bih=1009
As for stochastic texturing, yeah there are new solutions, but they usually don't work with regular pattern texture like brick walls.
This depends on the project and on the platform you have to work.
When making a multi-texture material (one that blends multiple set of diffuse/normal/RMA), it is standard practice to pack the decal(s) as individual channels in a separate texture, right? Because you need to sample it using a different UV offset and scaling, unlike other tiling textures.
I have seen The Division 2 team mention this in their Substance talk, where they call it grunge breaker (to hide obvious tiling produced by decal grunges).
Channel-packing decals makes sense sometimes, but only if you want to apply a single color for each one. Channels are each grayscale.
There's probably plenty that can be done in terms of randomly selecting maps from a texture array and tiling them
https://en.wikipedia.org/wiki/Wang_tile
Unreal's mesh decals can be used to break up tiling and add detail. They aren't just for blood splatters and puddles...
https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/MeshDecals/index.html
Also the newly added Material Layering System is still experimental, but fan-f*ckin-tastic.
https://docs.unrealengine.com/en-US/Engine/Rendering/Materials/MaterialLayers/index.html
These concepts can be applied to other engines in other ways too.