What makes a good texture?

It all sounds so simple: You take all of your gear, go outside, photograph a few walls, through everything into some software, tweak and edit it and - boom! Texture’s done! And there are indeed cases where it works like this, but only if all necessary precautions were taken during the shooting. This part is devoted to finding the right surface, lighting, etc. for a texture. These rules apply to both bitmap approximation and photogrammetry.

Suitable surfaces

The surface you are trying to capture should be reasonably large. I recommend at least 1.5 X 1.5 meters. Also remember that you might also need some additional space to move around with your tripod. This can make it tricky to move all the way up to a wall. When it comes to the type of surfaces that are best for scanning I like to go by the rule of

“Detailed up close, homogeneous from a distance.”

The first part is obvious because a surface without any details does not only make for a boring texture, it’s also more difficult to scan (Less points to track). The second part is something that a lot of people (including myself when I started) like to forget from time to time. If your surface has any kind of gradient or other large scale deformations then it is going to be almost impossible to tile it without it being super obvious.

This texture does not have enough details. This makes it not only boring to look at, it also (counterintuitively) makes tiling more difficult as even tiny
changes in lighting become noticeable.

This texture is detailed and uniformly lit, but the sand and the moss on the ground are so uneven that it creates a pattern that becomes instantly recognizable, making tiling difficult.

For reference: This texture fulfills all requirements. It is “detailed from up close, but homogeneous from a distance.”

Besides the level of big and small details the reflective properties of the surface itself must also fit. The scanning software works by defining key-points in one image and trying to find them again in the next image. This process cannot work if there is virtually no detail in an area (for example because it is a puddle reflecting the plain sky) or if it moves in an unpredictable way. In traditional (meaning model-focused)
photogrammetry this is solved by applying a special coating to all reflective surfaces. But since this process eliminates any color from the surface it is pointless for texture-focused photogrammetry unless your goal is to only create height maps (for example for sculpting brushes). Highly reflective surfaces should therefore only be scanned using a polarization filter and a polarization foil.

The smallest tilable area

If you are shooting a surface with any kind of repeating pattern (paving stones, bricks, planks, etc.) it
is helpful to think about how you are going to tile your texture before you start shooting. I like to start by determining the smallest tilable area in a surface. The easiest example for this are square floor tiles because one single tile is automatically the smallest tilable area. If the tiles have an offset on every other row then the smallest tileable area becomes two rows high while remaining on tile wide. These first two examples may seem somewhat obvious. But now consider a herringbone pattern: Herringbone patterns are an example for when it can be helpful to figure out the smallest tilable area first. So before you start taking pictures look at the surface for a minute and try find the smallest area that can still be tiled back into the original texture. Use it as a building block and try to create a grid of these areas. I recommend shooting at least 3×3 smallest tilable areas per texture when using bitmap approximation and 4×4 or 5×5 for photogrammetry (which needs a bigger grid because there is usually a bigger loss in area during the editing process).

Lighting an weather

Another - and probably the biggest - issue is lighting. The final texture should not have any shadows
remaining in it and the less shadows the source images contain, the easier it becomes to achieve this. So
a consistently shady area and/or a consistently overcast sky is crucial for a uniform result.

This surface was scanned under the assumption that the sky was completely overcast, but over time the lighting situation changed as clouds moved past the sun. The change was too slow and subtle to be immediately noticeable, it only showed up after processing. Very frustrating.

This texture was obviously shot under bad lighting conditions, there is even a clearly visible shadow from a tree throughout the entire image. (Though in this case it does not matter as this scan is used as a colorless sculpting brush.)