Photogrammetry tests

I’ve been trying to raise my photogrammetry game in the past few weeks. This is what came out of it.

I decided to tackle some problem areas: Very dark (avocado), shiny (avocado, pomegranate), or very smooth (mango) assets, and objects with fine displacement that I’d been struggling to capture (melon).

What helped: Better lighting (cross-polarized, new ring flash…), better photos (shooting raw and converting to jpg in Lightroom, chase noise), better masking in Agisoft, and higher settings (ultra high for the dense cloud and the heaviest mesh possible).

It’s still not perfect. I’ve learnt that even cross-polarization doesn’t get rid of all reflections. There’s always a highlight here and there, sometimes from bouncing light, sometimes from the environment). But with a bit of smoothing in Agisoft and some ZBrush trickery, you can get very high-quality assets.

Generally though, the poor-man’s photogrammetry workflow remains valid, except the new approach has slightly better gear, the addition of the raw-processing step, and more time needed to process the higher-quality dense cloud.

All assets were retopologized and UVed in ZBrush and are relatively low poly, as you can see on the wire below, and use normal maps for the fine details except for the melon, which uses displacement.

For these elusive folds in the cloth (itself simulated in Marvelous Designer), I used Dabarti Capture to generate super high-quality normal maps from several sections of cloth, tiling this normal map in Affinity Photo, and generating a new depth map from it. If you don’t know this tool, it’s very well worth purchasing. It fills a big hole in photogrammetry when you want super-high displacement detail (much higher than Agisoft can capture) from a 2D surface rather than a 3D object. The latest version is great, with normal-map post-processing commands and the ability to process raw photos (works a charm with my Sony A7 raw files).

The wooden tray at the end of the series was a slightly different process. I used a quick-and-dirty 3D scan of the actual tray (which had a lot of noise in it) as a guide to remodel the tray using standard poly-modeliing techniques. The texture was then baked from the textured scanned object onto the Sub-D poly object directly in Max.

All shots here rendered with Octane and a little post-pro in ArionFX.

Enjoy and let me know what you think.

Photogrammetry tests

Photogrammetry tests

Photogrammetry tests

Photogrammetry tests

Photogrammetry tests

Photogrammetry tests

    • Erald
    • July 17, 2017

    Again, speechless….!!!

    • Johan
    • July 17, 2017

    It looks awesome. Any details about cross-polarization would be nice. Setup, equipment etc.

  1. @Johan I basically ordered a large quantity of linear polarizing film sheets, which you can cut to match the shape of your lights. At the other end, of course, you need a polar filter on your lens. By rotating the polar filter to offset the polarization from your lights, you can cancel out pretty much all reflecting light and be left with the pure albedo.

    Check this out here: http://www.diyphotography.net/getting-started-with-cross-polarized-light/

    • Johan
    • July 17, 2017

    Thanks for the info. What kind of lights are you using for this setup? Small softboxes?

    • stephanie
    • July 25, 2017

    Hi Bertrand,
    Again, realistic looking scan assets you got here. Have a question on the displacement map seams. How do you manage to eliminate displacement map seams when dealing with relatively high amount of displacement like for example the melon you have here?

  2. @Stephanie have you had that problem? It’s never affected me, whether with Octane, V-Ray or Corona. Displacement input from ZBrush shows with no seam in the render. I haven’t had to do anything.

    • stephanie
    • July 26, 2017

    Hi Bertrand,
    Sorry for off-topic here. Yes. Got those displacement issues on scanned meshes that has greater displacement depth like 5cm or more. I’m using 32bit vraydisplacementmod .exr maps with keep continuity on, but still got those issues.

  3. Hi,
    That’s very good scans, congrat! I working in videogame industry and I did a lot of photogrammetry for landscape textures for big AAA game and during ours R&D we switch from agisoft photoscan to Reality Capture software and it was the best move we did. 10X faster and ultra hirez mesh result. I’m not related in any way in their product. Contact me if you want more info.

    By the way your work are incredible. 😉

  4. Hi, great stuff 🙂 What was the new ring flash model you used?

  5. @Sebastien: Thanks for the feedback. I’ve heard a lot of good things about RealityCapture from Tristan at Humanalloy. I want to check it out, but I probably don’t do enough photogrammetry to justify the price. Also, I’m getting very dense meshes in Agisoft with my latest workflow. Calculation times on “ultra high” remain acceptable. The big bottleneck for me is RAM. I have 64GB and there are still too many assets that won’t get processed at highest settings because of RAM limits. How’s RAM consumption in RC?

    • Wei Jian Leong
    • September 7, 2017

    Amazing scan! Got me itching to try some fruit sometime in the future.

    Have you ever encountered scans that just haven’t worked? I’ve been following your guide with the turntable, funnily enough testing on rocks. It’s happened twice where I’m at the stage of combining both sides of my object, but it never seems to recognize both batches, only one. Would you happen to know if any solutions?

    Thanks! 🙂

  6. Hi, yes, it happens regularly. The reason is generally that your lighting is not flat enough, which makes it too hard for Photoscan to recognize the two sets as of being of the same object. Another reason can be the geometry of the object. I’ve had it happen on vases and bowls where the first batch didn’t show enough of the object visible on the second batch. In other words, when the visible overlap between the two batches is too small for Photoscan to reconcile the two.

    • Gianni
    • November 28, 2017

    These models look fantastic! Thanks a lot for sharing your experiences and workflow!

  7. From all the 3d visualizations I’ve seen, I guess this is the most accurate and realistic. Congratulations!

  8. Thanks @Marcelo

  9. Hi Betrand,

    Could you outline your process for texture projection of the wooden tray in max? I’m trying to do similar with a wooden bowl using Vray. But I’m struggling to get a diffuse map that isn’t blurry, I’m currently using the Vray complete map.

    Any tips would be much appreciated! Thanks for taking the time to write your photogrammetry guides, they have been a great help!

  10. As always, outrageous work !

    • Villeneuve
    • March 2, 2019

    Très réussi ! Les modèles sont superbes. Il aurait fallu un melon fendu très mûr, non ?
    Avez-vous essayé Reality Capture ?

  11. Merci. Malheureusement Reality Capture n’est pas dans mon budget mais j’ai lu beaucoup de choses positives sur ce soft.

  12. thank you so much for the article.

Leave a Comment