Mathieu Morenas

Lead Artist / Environment artist

By

Photogrammetry made simple

Photogrammetry-Title

As lots of people, i’ve descovered the photogrammetry workflow, thanks to streams and posts of Epic games. So, i discover an heavy process and very expensive. In fact, it’s not always true. You can even try it at home. That’s what i’ve done, and that’s what i’m gonna share with you.

Version française disponible ici.

Photogrammetry. What is it ?

PhotogrametrieIt’s prety simple. You take photos of an object, and a software transform it, into a 3D object.

The main disaventage, as i said earlier, is the cost and the complex organization. But in an other hand, you’ll save big time. With this technic, you’ll be able to build a great data base of 3D objects, the most realistic you can imagine, in only fiew days.

Ok, but how ?

It’s mainly a 5 step job.

1- Photo shooting.
2- Photo processing.
3- Creation of the 3D object.
4- Retopology and cleaning of the model.
5- Texuture backing and polish.

1- Photo shooting.

The most important part! The shooting is the most important, because the final result depend on the quality of your photos. So, no smartphone or compact camera. We need the best noise/signal ratio, and for tha, a high-end sensor.
I work with a Canon EOS 650D and an EFS 18-55mm lens. I got a good quality for video games, but not good enought if you’re gonna do 4K CGI.

You’d have to :

  • Shoot in RAW files to get more informations, and in manual to get stable exposure.
  • Always get a great DOF (at least Fstop : 10-12). You dont want any blurry part on your object.
  • Get the highest speed you can for the same blur prblems (1/100 – 1/125).
  • Use a fixe focal lens. If you don’t have, don’t change it while you shoot an object.
  • Avoid high Iso. High iso add lots of noise, and your final texture won’t be usable. It depends on your sensor. Mine, reach it’s limit at iso 800.

Of course everything change according to the shoot conditions. There is two way to proceed.

A- Outdoor. For the trees, cliffs …, you cannot move it. So move yourself. You’d better choose a white day (cloudy). The reason ? You – DON’T – want – any – shadows !! Or your texture would get light informations, and your object would be unusable. If unfortunately it’s a sunny day, choose shaded spots. For logs and branches, you can just take them away to a shaded place and do your job. Dont take tripod. You’ll loose precious time and the result will be the same. You just shoot object from side to side with 10° steps. It’s also an aproximation. You don’t need exacly 10°. It’s more or less a photo per step sideways. So, for a cliff (180°) fifteen photos, and for a tree (360°) thrity photos.

B- Studio. Or something close. For me it’s a white pergola. No direct shadows and thats all I need. If you can do this with lightbox, it’s of course better. Avoid blue or green screen. It’s useless, and it add a lot of photo processing to remove the reflected colors.
With this process you’ll have lot more photos.

  • Use a tripod
  • Put your object on a lazy susan
  • Take an empty photo of your background and your lazy susan (i’ll explain why)
  • Then, a photo every 10° on 360°, in 3 viewpoint. Front, top, bottom. !!! Take an empty photo for each viewpoint !!! You’ll obtain a hundred photos.

 

2- Photo processing.

PhotoshopNow you have fill your 16 Gb memory stick. This photo processing is a simple light cancelation. Open a row of photos (in RAW format) in photoshop (or lightroom, paintshop pro…). Now lower the highlights and boost the shadows of the first photo, in order to remove any light inforations (highlights -100 / shadows +100). Change a little bit your exposure if you really need it. You just have to select all the photos, click on syncronize, and houray, every photos of your row are good for work. Save it in TIFF format.

3- Creation of the 3D object.

Ok. Now it’s time to cry. Agisoft PhotoScan is as incredible as it’s expensive (ok maybe not that much expensive). It’s 3500 USD in pro version and 180 USD in standard.You can of course use the 30 day trial to test the powerfulness of this softwar. Yes it will transform you photos into a 3D object !!

TTmaskDrag and drop all photos of an object in a new project. First things first, mask everything useless in the picture. PhotoScan will only focus on the unmask part to detremine what is the object. Don’t panic it’s not that long.
For your outdoor photos, you just make a rough mask of your object. It take 5 clicks, in 10 seconds per photos.

RockMaskFor the studio shoots, it’s even faster. Hopfully ’cause you get lot more photos to process. Select a first row of photos with the same viewpoint, right click on one of them, click « import mask », choose « from background » methode, and select the blank photo for this row. PhotoScan will make a diference between the blank photo, and the content of your photos, to create perfect masks in few second. Do it again with every viewpoint.

Next step. Photoscan has to place in 3D space every photos. You just have to go in the menu « workflow → align photos ».
I have to talk about the spec of my computer. I have a prety low-end hardware (dual core E8600 3,33Ghz, 4Go DDR3, GTX 760 ). That important, because of the PhotoScan time processing. Thats prety slow, but even less if you have a good computer. So keep in mind that times i’ll give to you, is on this workstation.
For a hundred photos, it’s about 50 minutes with accuracy on high.

It’s finished ? Great. You shoud have a 3D space with all you photos align, and a could of dots with a bounding box around. Make few ajustments to make the bounding box fit your object the best. You dont need the epic details of the background !

PhotoAlign
Now you have to make a « dense cloud » (« workflow → Build dense clound »). This is an important part, because it will define how much poly you’re object will have . So choose carfully the quality according to your needs. It will take looooooooooooong time. For me it’s between an hour and a half, and two hours for high quality.

The result give the impression of a textured object, but its just a very dense cloud of colored dots. In order to get an object you have to « Workflow → Build mesh ». Take care of the « surface data » used. Choose « dense cloud » to get, just below in the face count box, the highest count possible. When it’s done, clean everything up : the useless detail with laso tool and lone poly with « gradual selection » tool.

You can export your rough high poly model in .OBJ format.

4- Retopology and cleaning of the model.

I won’t talk about the low-poly model, ’cause the poly count depends on your needs.

  • Open Zbrush and import the .OBJ created by PhotoScan. Duplicate it and save it for later.
  • Take the copy and use « zRemesher » for a good topology. If you have big holes in your model, bring it in a 3D soft as maya, and make some poly bridge to give Zbrush guideline in the next step. If you got some plan objects as clifs, extrude the object outline.
  • Now use « dynamesh » to close holes, and do a « zRemesher » again. You got a pretty low model, with good topology.
  • If you got plan objects go back in your 3D soft and delete the extrude part.
  • In Zbrush, subdivide your object, until the same resolution as the original object. Project the original object details on your new subdivided object.
  • Add some details were the holes where.
  • Do your low-poly with good UV’s, and export everything to make the normal map.

5- Texuture backing and polish.

I won’t explain the normal map creation either. You can find tutorials about Xnormal or Substance to do that.

It’s finally time to bake texture.
So. Open PhotoScan again, and import your low-poly model, who should replace (if you did not move the model at all), at the same place, the original PhotoScan model. You just have to click on « workflow → build texture », choose your map resolution, and the mapping mode(« keep UV » in our case). We’re almost done.

Once it’s exported (« tool → export → texture »), you’ll have a TIFF, with the same holes that you had in your 3D model . But you can’t just open it in Photoshop. Before, open it with Xnview and uncheck « use alpha chanel ». Surprise ! PhotoScan as done a great job. Now, fill the texture holes.

We’re done. Now you know how to make some incredibly realistic assets, faster than light (almost). It isn’t that hard, right? Of course I did not invented it. I’ve just assimilate the Gnomon conference presented by Alex Alvarez, and retranslate that, to something I actualy can do. If you want tones of details, you’d better watch it !(https://www.youtube.com/watch?v=zBjIkGLP1Y8).

I let you with my very first objects created with photogrammety. Hope you’ve enjoyed it. See ya.