Grass - Photogrammetry based Environment Texture

This time I re-processed 2 year old capture I already failed to reconstruct years ago. It was so bad that I even published failed version.. which is a shame as would have something to compare now. Since I learnt a lot I decided to apply my recent workflow and here is the result. I have to say that I am very happy with it since I finally managed to get high grass reconstructed and turned it into PBR material :).
Of course its still flat compared to original but with grass planes in 3D scene should look good.

If anyone is interested you can get more details about the worflow in this video: https://youtu.be/DfCH1cjzvmI
The secret with the grass capture was to get it fully reconstructed in 3D and use the texture to carry albedo information since due to grass vertical complexity 67 mln poly wasnt enough to carry vertex color information. Btw. I used 150mln poly model stored as OBJ as substance failed with 295mln and got some glitches when baking from 150mln poly FBX. Weird.. its something to investigate for sure in future :)

Preview in 3D scene with casted tree shadows

Preview in 3D scene with casted tree shadows

PBR preview: Albedo / Normal / Height / Roughness / AmbientOcclusion

PBR preview: Albedo / Normal / Height / Roughness / AmbientOcclusion

My photogrammetry workflow (more details at: https://gum.co/YanD and on my youtube channel: https://www.youtube.com/c/GrzegorzBaranArt

My photogrammetry workflow (more details at: https://gum.co/YanD and on my youtube channel: https://www.youtube.com/c/GrzegorzBaranArt

Source location. This grass was captured 2 years ago and I never managed to turn it into useful texture until now. It was the time when I used to use tinfoil balls as a scale reference and to define capture area

Source location. This grass was captured 2 years ago and I never managed to turn it into useful texture until now. It was the time when I used to use tinfoil balls as a scale reference and to define capture area

Height details of the captured surface

Height details of the captured surface

Me shoting this grass.. 2 years younger and 20kg lighter ;P. Since I really wanted to capture the grass I took 310 images.. 2 years later I found it wasnt the reason why I failed.

Me shoting this grass.. 2 years younger and 20kg lighter ;P. Since I really wanted to capture the grass I took 310 images.. 2 years later I found it wasnt the reason why I failed.

Metashape - based on 310 images 295mln dense poly model with generated texture

Metashape - based on 310 images 295mln dense poly model with generated texture

Reconstruction details - I used 295mln poly to cover 2 square meters

Reconstruction details - I used 295mln poly to cover 2 square meters

Metashape close-up - reconstruction details on shaded model. I remove those flowers from the texture during seam removal sine I wanted to create very generic grass and eventually add these flowers using scatter tool.. stay tuned about more details

Metashape close-up - reconstruction details on shaded model. I remove those flowers from the texture during seam removal sine I wanted to create very generic grass and eventually add these flowers using scatter tool.. stay tuned about more details

Since it was prety hard to align the lowpoly plane using highpoly mesh I polished it

Since it was prety hard to align the lowpoly plane using highpoly mesh I polished it

Here is a lowpoly alignment based on polished highpoly version. It has to be done to avoid height gradient (caused by misalignment) across the surface

Here is a lowpoly alignment based on polished highpoly version. It has to be done to avoid height gradient (caused by misalignment) across the surface

1k live preview