Someone was asking about how I handle floors (of all things), so here goes nothing.
Long story short, I hate using tiled textures. They make sense for surfaces that actually have a tiled pattern to them, but for everything else I'm really not a fan (unless I have no choice due to time or money constraints). Instead, I prefer to model what I can and use randomly placed textures to handle the rest.
"But I thought you just said you hated using textures?"
Well, yeah. I hate using textures that contain more than one element in them. Take your average hardwood floor, for example. You've got a bunch of randomly staggered planks that each contain what is essentially their own unique texture. Every plank is different from those around it. All those are different from the planks around them. In reality, every single plank would be unique because it's cut from a different piece of the tree (or even a completely different tree entirely). The grain of no two trees is exactly the same, and thus no two hardwood planks should ever be the same.
If you're using a texture that contains multiple planks inside it (which would still presumably tile seamlessly somehow) and you apply that to a large enough surface, then you're going to start to notice the same plank configuration repeating over and over and over again. Furthermore, since the separations between planks is part of the texture (and the texture is applied to a flat surface), you're not going to get any lighting detail between planks, leading to a flat and potentially dull appearance (though this greatly depends on the scene lighting and camera angle). This is exactly what I prefer to avoid (if possible).
How?
The idea is simple. Model a plank, clone it a few thousand times to make up a surface, and then randomly pick and assign one texture from a collection of N textures to that plank, making sure each cloned plank has a reasonably different texture assigned to it that is further randomized by offsetting that texture a random amount on the U and V axis.
Technically this means that every plank is not unique, since if you have 4000 planks and only 40 textures to pull detail from, eventually you're going to get repeated textures somewhere along the line. However, randomly offsetting the texture on U and V will often help with that quite a bit because if you're working with square textures, then a single plank of hardwood should only take up 1/5th to 1/4th of the actual UV space.
The result is twofold:
1) Since the planks (or tiles, or bricks, or whatever) are modeled on a rudimentary basis, you'll get some nice shadows and separation detail between each of the individual cloned elements (just as a real hardwood floor often has subtle indents or spaces between the planks)
2) Each plank will look unique compared to all those around it- and since all planks are all truly randomized across the entire surface of the area covered with them, there will be no obvious tiling artifacts whatsoever
This is what forms the basis of the technique I use for generating hardwood flooring, granite/marble tiles, and slate/rock walls. I'm a huge proponent of introducing as much randomized detail into an environment as possible, which is one of those things that I believe can really make or break the appearance of a render.
Dan
2019-06-11 04:18:19 +0000 UTC