- Affordable price for the Standard version
- Very responsive email support
- Network processing is a bit tricky to set up
By Nicolas Brunet, May 11, 2015
PhotoScan is a photogrammetry software developed by Russia-based Agisoft that allows you to generate point clouds data, 3D models and their corresponding textures from a series of photos. It’s an easy to use and affordable alternative to laser scan solutions.
I’ll be reviewing the software from the point of view of a 3D/VFX artist. Let’s see what PhotoScan has to offer.
In order to create 3D models the first thing you must do is to import a number of images from the object or scene into PhotoScan. The software supports the following file formats: .jpg, .tif, .png, .bmp, .exr, .pgm, .ppm, .mpo and .seq. The basic workflow is pretty straightforward:
- Add Photos
- Align Photos
- Build a Dense Cloud (in the case you need more details in your mesh)
- Generate Mesh
- Build Texture
Each step offers you to change the base settings up to your needs. The more photos you use, the more detailed your mesh will be. Also, an important aspect to keep in mind is that your computer resources will influence the complexity of the mesh you can generate. As it’s an offline process, the more RAM you have the more polygons you’ll be able to get in your object. The results will be even better if you have computers connected together via a network.
Even though the workflow is rather simple, one must learn a few tips for shooting the subject one wants to acquire in order to get quality results. It’s easy to get frustrated otherwise, so make sure you read the shooting tips and the help file before using the software. You’ll avoid bad results and frustration, something I experienced when I first used PhotoScan a few years ago.
Capturing 3D objects
Let’s go over the different tools offered by the software through a real project: the acquisition and reconstruction of a tree trunk. For this project I took 33 pictures of the trunk shot all around its base. After the alignment process you can see blue rectangular shapes representing your camera position in 3D space, and the initial point cloud. Also, a bounding box appears where there is a bigger gathering of points in the cloud. The next steps of the process will be using that area only. You can resize and rotate it to include your mesh. Therefore all the surrounding trees, leaves and objects will be ignored.
The mesh can be generated from the point cloud that we just created, if it lacks detail it means you don’t have enough data to be used in the mesh generation process. If that is the case, you can choose to use the next step in the process: the generation of a dense point cloud. This will be the longest step for each of your scans, indeed, for the tree trunk project it took approximately 6 hours on a i7 2600K @3.40GHz with 16Gb RAM.
Once this is done you can choose between sparse and dense cloud options for mesh building. If you find that there are some parts of the mesh that you won’t need, you can easily remove them with the rectangle, circle or lasso tools. The gradual selection option lets you select polygons by their size or by connected component size. If your mesh isn’t perfect and has tiny holes, there is also an option to close them, controlled by a slider.
A few words on the quality of the meshes generated by Photoscan: they usually have a great amount of detail and are highly accurate with respect to the original model. But this only holds true as long as you have done a good photo shoot. There are some exceptions: shooting inanimate models (trees, rocks, objects, etc.) is quite easy and can be done using a single camera. If you want to shoot a live model, however, like a human body, face, animal, etc., you’ll need a camera rig that takes all the pictures at once. Why? Simply because live models breathe and have subtle motions, so no matter how fast you are at shooting photos with a single camera, your photos will not be consistent and the generated mesh will end up having 3D noise.
Depending on your needs you can use the decimation option to drastically reduce the amount of polygons while keeping the shape of your mesh. This is welcome when you need to do a retopology process in an external 3D application.
Like the other processes, creating the texture is mostly automated. All you need is to set the texture size, choose a mapping mode (the “Generic” option gives good results 90% of the time) and hit OK. That’s it, we have a realistic CG tree trunk from only 33 pictures.
Maybe you’re not a tree lover like me and would prefer to use the software to scan really huge areas from a plane. This is possible by switching from the Arbitrary to the Height Field Surface type in the mesh building process. With this method, you’ll get an elevated terrain geometry as a result.
Generating 3D scans is an interesting process in itself, but the output is usually meant to be used in external applications. For this, one has several choices for exporting meshes:
In the File menu:
- Export model as .obj, .3ds, .wrl, .dae, .ply, .stl, .fbx, .dxf (Autodesk DXF Polyline and 3DFace), .u3d, .pdf and .kmz for Google Earth. There you can shift the position of your object in X,Y and Z space, export the cameras as well, and chose between jpg, png, tiff and exr formats for the texture.
- Export tiles as .tls file
- Export points as .obj, .ply, .txt, .las, .e57, .u3d, .pdf, .zip and .oc3
- Export orthophoto which works like an advanced print screen function and can be exported as .tif, .png and .jpg
- Export DEM for elevated terrain geometry
There’s even an option to upload your model to Sketchfab or Verold.
In the Tools menu:
- Export texture as .jpg, .tif, .bmp, .png, and .exr
- Export Cameras as .xml, .out, .chan, .txt (for Boujou and Omega Phi Kappa), .ptb, .dat, .orn, and .prj
- Export Markers
- Export Matches as .dat, .txt, .ptb
- Export Masks as .png
- Export Panorama