Source: Dr. Peter L. Falkingham


Photogrammetry is defined normally as the use of photography in surveying and mapping to measure distances between objects. In 3D games art creation though,, photogrammetry is a technique that utilizes photography to create a 3D mesh. Photogrammetry can be a costly approach to creating 3D meshes, but if your needs dictate having ultra-realism or a complex mesh that cannot be created using normal sub-d modeling or sculpting, then photogrammetry may be an option.

In this section, we will cover the overall approach to photogrammetry and how to do it at a reduced cost. Thankfully, Dr. Peter L. Falkingham has done a lot of the leg work for us. He regularly researches and updates photogrammetry techniques for his professional work, but it is similarly useful for us, the 3D artists.

What Is Photogrammetry for Artists?

Photogrammetry is the capturing of a range of photos containing the same subject (reference) from different angles and using a computer program to organize (translate and rotate) those photos into 3D spaced based upon the calculated position of the physical camera from the subject as determined by processing the images together, finally creating a point cloud (data) volume defining the subject based on the photos. The final step is topologizing the point cloud. Whew, that was a mouthful!

How to Take Photos

Depending on the resolution you desire for your final product, you may decide to use more expensive cameras that have finer control mechanisms for aspects of photography (f-number, exposure, framing, zoom, etc . . .). However, currently it has been determined that photogrammetry for many meshes can be made with a simple cellphone camera. 3DFlow and DigTrace (pg. 8) both provide overviews of photography surveying and how multiple photographs can be used to compose a final image. Some quick tips for taking photos though:

  1. Encapsulate the entirety of the subject in every photo (keep the subject centered in framing). This is critical as the processing software will seek out reference points in the images to help it stitch the photos together and calculate the point cloud data.
  2. Take photos in an even lighting setting without direct light sources. If outdoors, this means wait until an overcast day to take photos. In a controlled setting this means setting up your bounce lighting so that it evenly lights the entire subject. Try to remove as much lighting information in your initial photos as possible (as if you were capturing an albedo texture) as shadows will cause abnormalities in the point cloud creation step.
  3. Take many photos from many angles. It is not necessarily true that the more photos you have, the better the outcome (as it requires more processing time), but a minimum of 72 (3 orbits of 24 images each) photos of your subject is a good place to begin. Allow photos to have overlap with one another (60% is a good rule of thumb).
  4. When taking photos try to keep the orientation of the camera the same for the same viewing plane (e.g., if I am taking ground level photos first try to keep them all level; if I am raising the camera 2 feet off the ground and rotating around a subject like a fire hydrant, try to keep the cameras orientation to the center of the fire hydrant for that series of photos, in the third orbit raise my camera height to 4 feet but keep the focus on the center of the hydrant, etc . . .).

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9847a031-39af-4795-a010-5978488f63a6/Untitled.png

Processing Photos

To process the photos you may use a program called COLMAP. A note about COLMAP, you will need a CUDA compatible graphics card (NVidia), sorry AMD folks! For non-CUDA graphics cards there are other options like Agisoft available. Once you have compiled and stitched the photos together using a program like COLMAP, you can generate the point cloud using a program like openMVS.

Point cloud of a human face, courtesy Leon Denise and Sketchfab

Point cloud of a human face, courtesy Leon Denise and Sketchfab

After generating the point cloud you will want to clean it up by removing extra data before generating a mesh and exporting it to your preferred 3D software suite for further cleanup and retopology.

Other Resources