Cobblestone - Photogrammetry based Environment Texture

Another, hard to tile photogrammetry based cobblestone texture. In that case, puzzle solving took me over an hour
I also confirmed that using full range spectrum (0-255) to store height information makes more sense as we have that part of memory allocated anyway. In result we get more useful data (better, more accurate and more responsive shape definition with less noise) during height control on final shader.
That scan is a good example of bad path planning. As surface was nondestructive I moved with my camera row by row backwards. I was very low on battery when I finished main capture, but I decided it would be worth to capture also side bricks to get more useful highpoly model with more opportunities to bake from. So I started chaotic shooting. As you can see, one side wasn't covered good enough to generate nice final mesh with two rows of side bricks. I got lost and wasn't sure what was and what wasn't captured anymore. Than sun went out :) and shooting was over.

My current workflow

My current workflow

To capture this surface I took 67 photos with: ISO100, focal length 24mm and f/16

To capture this surface I took 67 photos with: ISO100, focal length 24mm and f/16

I covered that surface moving my camera in row by row backwards ..after I finished I decided that I want to cover side bricks. but as battery was on low level I started panicking and shooting without good plan. In result I missed part of one side anyway

I covered that surface moving my camera in row by row backwards ..after I finished I decided that I want to cover side bricks. but as battery was on low level I started panicking and shooting without good plan. In result I missed part of one side anyway

Finally processed these 67 images with Photoscan to get 16,5mln highpoly mesh

Finally processed these 67 images with Photoscan to get 16,5mln highpoly mesh

Zbrush - built lowpoly model over highpoly - was trying to position lowpoly edges in place between stones as much as possible

Zbrush - built lowpoly model over highpoly - was trying to position lowpoly edges in place between stones as much as possible

Substance Painter - 'puzzle solving' with Clone Tool to remove seams

Substance Painter - 'puzzle solving' with Clone Tool to remove seams

Improved graph to process final textures. I used 'Auto Levels' node to fulfill entire range for height and get more height accuracy in result. Especially most shaders has height  value control and not using full range (0-255) would be just wasting memory.

Improved graph to process final textures. I used 'Auto Levels' node to fulfill entire range for height and get more height accuracy in result. Especially most shaders has height value control and not using full range (0-255) would be just wasting memory.

PBR preview

PBR preview