Using Photogrammetry Well
Last revised July 2026. Notes below are based on my own use of photogrammetry toolsets over the last ten years. This includes scanning trees, buildings, people, tools and many other things. The page is in continuous development. Its main function is as a resource for students working with me, but I hope others may find it helpful. Corrections and suggestions always welcome by email to zacharymollica@gmail.com.
PROGRAMS I USE TO WORK ON SCANS
- WHY NOT MOBILE APPS? – Mobile photogrammetry tools are increasingly accessible and can produce very good results in basic scenarios. Our concern is not their output quality, but their limited flexibility and the amount of control they provide over how models are constructed and exported. Their processes can be something of a black box, making it difficult to understand why a scan has failed or how it might be improved. For teaching and more involved work, I prefer desktop software that exposes its processing stages, allows settings to be adjusted, and exports data in open, reusable formats.
- MetaShapePro – Agisoft’s PGT package remains the one I have had the best consistent results from in both teaching and research work. Its GUI is effective, its stages are intuitive, and it utilizes a lot of your computer’s capacity. Good performance on both MAC and PC. Thought a fully functioning 30-day trial is available, licenses for both educational and professional packages are costly.
- RealityScan – RealityScan (formerly RealityCapture) is another well established program run through a GUI. Recently it has become fully free to use for those not making serious profits off of it. The program is very powerful, though in my own experience is much less intuitive to run than MetaShape. PC Only.
- MeshRoom – Meshroom is a free to use PGT program that I would like to move towards using over time. Its interface has a unique approach to allowing the creation of your own workflows. Compare to MetaShape and RealityCapture, Meshroom is limited in the amount of your computer’s resources it can employ at once and therefore can become slow on larger projects.
- Adobe Substance 3D Sampler – Adobe’s PGT offering is basic but may be of interest to those who already have access through their subscriptions. Not a program I would jump to pay for on its own.
- Point Cloud Library – Point Cloud Library (PCL) is a collection of programming packages that underlies many of the packaged tools in common use. Incredibly powerful to use directly but certainly more advanced to get up and running in this raw format.
- CloudCompare – CloudCompare is a program I would in short recommend to anyone working with point clouds. It is an irreplaceable tool within my workflows on too many projects to list.
- Potree – Potree is the core tool behind my website based pointclouds.
- Rhinoceros – I use Rhino to model into pointclouds/meshes, and to create imagery/animations. It is more limited than tools like CloudCompare in the size of scan files that it can handle, but is super flexible.
- Pointools – since integrated into Bentley packages
PHOTOGRAMMETRY IN GENERAL
- WHAT IT IS – Photogrammetry (PGT) is a broad term for techniques to obtain and digitize reliable information about physical things. This is done by recording, measuring and interpreting photographic images with the help of clever software packages. Typically the output is a 3D mesh or pointcloud object.
- NOT TO SCALE – Unlike laser based scanning processes, models that are generated by PGT are not automatically to scale. These models will be three-dimensionally accurate, but markers and other scaling devices are required to produce a model whose dimensions can be relied on.
- COORDINATE SPACE – Many PGT tools will allow processing in either cartesian or coordinate space. My work commonly uses cartesian space (working in meters). Coordinate space is more commonly used for drone scanning or other large area applications. To check your model space in MetaShape: navigate to the ‘Reference’ pane, and find the ‘Settings’ icon near top where you will be able to select between WSG and M.
- MAKE SURE GPU ENABLED – Not every stage of PGT processing employs them, but in general, PGT work is greatly improved by the application of a dedicated GPU. Bigger the better. More is better in this area. In MetaShape you will want to ensure your GPU is selected to be used. Navigate to ‘Tools > Preferences > GPU’, and ensure that your GPU is selected or it will sit there queitly. If you have a dedicated and integrated GPU, it is typically better to keep the integrated GPU disabled.
STARTING A PROJECT
- USE A STRUCTURE – Most PGT programs work with some kind of database structure of file saving (i.e. not just one file) and reference other files into your project. If original images are lost, you may not be able to reopen or reuse a previously made project. As such I recommend establishing your own standard project folder structure and applying it rigorously.
- SAVE REGULARLY – This applies to all work with large 3D scans. Even when things are going well, your tools will on occasion crash, and its better to lose less when this happens.
TAKING GOOD PGT PHOTOS (the key section)
- HAVE A STRATEGY – Don’t shoot ad hoc. When taking photographs of a subject, work methodically and think through the sequence of photos you are about to take beforehand. Put yourself in the shoes of the software that will try to align these photos. For simple scans, it is generally sufficient to create a sphere or hemisphere of photo placements. More complex subjects require more complex shooting patterns.
- FRAGMENTARY IS OK – no photos need to cover the entirety of an object. This may produce good results, but what is necessary is for some photos to cover all of a subject.
- KEEP SAME FOCAL LENGTH – All photos should be taken with the same focal length for a project, ideally with a fixed length lens. If this is not available or best, then use one extreme of a variable lens (i.e. with 18mm or 55 mm in the case of 18-55mm lens) to ensure repeatability. In some cases there are reasons to use multiple lens, but this should be done noting difficulties in later processing.
- RADIAL ARRANGEMENT – if photographing in a circle around a subject, you will require a minimum of 8 station points (i.e. 45 degree rotate). This is still low, and 12 is a better practice (eg. 30 degree increments)
- EXACT POSITIONING – While a strategy is needed, photographs don’t need to be taken at exactly equal distance/rotation intervals.
- OVERLAP – Aim for 50% overlap with neighbouring photos. In areas of significant geometric change – for example turning a corner in a hallway or entering a doorway – consider taking additional photographs
- NUMBER OF PHOTOS – PGT processes will run with as large a photoset as you have hardware to achieve. Some rules of thumb: 24 photos is about the minimum to achieve a full one sided scan of a simple subject. 60 is a good average number for a full two sided coverage. Around 150 photos a projects begins to become heavy to run on less powerful computers. Over 1500 is a very big project.
- BE PERPENDICULAR – All parts of a subject must have photos taken roughly perpendicular to them in order to produce quality results. If an object is covered within photos, but only obliquely, it will produce lesser results.
- ORIENTATION – Most photogrammetry is done with landscape oriented photographs and some software will suggest this. Portrait orientation is also able to produce quality results, but in general avoid including both within a project.
- MINIMAL PREPROCESSING – Until experienced with the tools photos take should be brought directly into Metashape without for example masking in Photoshop. Working with raw files is an exception to some of this.
- CONSISTENT COLOURING – After good coverage, the principle goal in PGT photographs is to achieve consistent colouring and lighting within scenes. This aids alignment, model generation and particular texturing. In general, to do this you want to balance setting a low ISO number and high F-stop number. I tend to adjust shutter speed to achieve this. A tripod and various lighting arrangements can be beneficial.
- CONSISTENT FOCUS – By setting a higher F-stop (greater depth of field) you ensure that a larger area of each photograph is in focus.
- TRIPOD - When available and suitable a tripod will generally contribute to better PGT photographs by enabling a slower shutter speed to be used without a noticeable loss of focus.
- VIDEO - Some PGT software will allow direct import of video files. For many scenarios this data will prove sufficient, but you should inspect exported frames for motion blur if experiencing difficulty.
- WEATHER – A bright overcast day is ideal for photogrammetry, producing minimal direct/hard shadows in scenes/subjects. Where possible attempt to avoid direct sun, particularly cameras facing towards the sun.
- LOOK UP AND DOWN – multiple angles taken from each station point you are photographing from. Particularly in the case of scene/environment scans rather than object.
- NO WHITE – a plain white wall is among the hardest subjects you can try to capture. In general, this may produce the outlines of the wall without its middle. The same applies to all objects with minimal surface detail/complexity.
- NO MOVING PEOPLE/CARS – an ideal scene has no changes occurring in it between photographs. Where this can’t be avoided, masking should be done before alignment processing.
- ADDING PHOTOGRAPHS – if during initial processing you realize that you have missed key areas, new photos can be taken and added so long as the scene has not significantly changed. Aligning these photos without resetting everything requires some advanced experience.
- FISHEYE? – when using a fish eye or similar super-wide views lens, further adjustments may be needed in settings dialogue: ‘Tools’ > ‘Camera Calibration’
- MOVE AS YOU GO – not just orbiting many directions from one sensor position.
- TURNTABLE – When scanning smaller objects, it is possible to maintain a stationary camera and instead rotate your object on a turntable. This is an advanced use case and requires different settings in each software package.
- PARTIAL IMAGES – No single image or series of images need to cover the entire object (ie be from far back) so long as the entirety of the scene is well covered. In the case of smaller objects it is likely you will have images that include the whole object being scanned.
HOW MANY PHOTOS?
A constant question. Too many photos, and processing time is unnecessarily bloated. Too few and either parts of scenes will be missed, or the set may fail to align altogether.
For a regular object scale, a minimum of 24 photos is needed, while closer to 60 is likely to produce ideal results. A few hundred photos will be fine to capture larger scenes, while others moving towards 500-1000 photos will require a substantial computer to process.
NONSTANDARD PGT PROCESSES
Most often photogrammetry is applied with a stationary subject and a portable camera (handheld, drone mounted or similar) capturing still photographs. A number of other modes are possible which often have their own quirks.
- Subject on a Turntable
- Breaking Down Video Footage
- Multiple Camera Rigs – typically used to capture people and other subjects which may not be able to remain stationary.
GENERAL PIPELINE FOR A PROJECT (Metashape)
- Capture photographs
- Transfer photos to computer for processing. Try to avoid any loss of resolution/information in this process. Avoid apps like Teams or Whatsapp the impose significant image optimization for size.
- (optional) Apply some initial photo stacking/adjustment from raw photos.
- Set up folder structure for your project. Typically this might include separating raw phtoographs from the PGT project and also leaving space for export files.
- Import photos to Metashape by either dragging in, or selecting ‘Workflow’ > ‘Add Photos’.
- With all photos added, it is good practice to inspect each briefly, looking for bad exposures, duplicates or similar that should be removed/disabled.
- (optional) Masking photos can be done to remove moving or otherwise bad subjects. Not necessary for all projects, it can be used to produce very high quality results.
- “Workflow > Align Photos”. For most projects, a setting of ‘High’ will be sufficient. Lower can be used if computing is limited, highest will sometimes improve results if time is available. Default setting of 40,000 and 4,000 for key and tie points are good for many scenes. Adjust and experiment.
- Tie points – the sparse cloud produced after initial alignment is a model of the points used to align your photos. While sparse, it should look like your scene/subject.
- (optional) Duplicate chunk in case steps below cause you to lose information you want to maintain.
- Realign when results received are below expectation. To do this, re-run the alignment stage above ensuring ‘reset current alignment’ is selected.
- (optional) Optimize tie points. Tools are available to remove some of the noise present in initial alignment. Not necessary as a step and potential harmful when using low quality photos.
- (optional) In some cases you may skip directly to Workflow > Build Mesh where you can use ‘Depth Maps’ to process a model directly from the photo alignment. More typical for my work is to first process a point cloud.
- Adjust scene ‘Region’. This box will set the area for point clouds and meshes to be computed in. This can speed up processing significantly by limiting to critical area, and may result in missing pieces of subject if not adjusted correctly.
- Workflow > Build Point Cloud – start from lowest setting and work upwards to learn. Enable point colours and confidence for most scans as these are minor increases to processing time
- (optional) Cleanup point cloud using selection tools in navigation
- (optional) To process this cloud into a mesh, select ‘Workflow > Build Mesh’, and then select ‘Point Cloud’ rather than ‘Depth Maps’ for source.
- (optional) Clean up mesh. Using selection tools to identify and then delete undesired areas.
- (optional) Use ‘Workflow > Build Texture’ to build a renderable mesh if a more photorealistic texture of the model is desired.
- Adding markers and scalebars can be done at any stage before exporting.
- Export points clouds, meshes, or other information by right clicking in the left sidebar, or navigating to ‘File > Export’
- Import to CloudCompare, Rhino or your preferred further modeling/drawing tool for further steps.
GENERAL METASHAPE NOTES
- For various procedures, each increase from lowest > low > medium > high > ultra high settings is typically a factor of 4x. This is because they cause a 2x change in both x and y considerations of a photo. Particularly for align cameras and point cloud building you can expect the process to take approximately 4x longer and render 4x more points
- Sometimes higher settings (eg. Ultra High) can counterintuitively produce worse results. In Metashape this is due to upsampling performed on images where they may not be of sufficient quality. I think of this as asking the computer to work too hard on a problem.
- In my experience, adding in new photographs and aligning these to existing aligned sets is a challenge. In general I find better performance from starting the alignment procedures again.
ALIGNING PHOTOS (Metashape)
- MASKING - does not necessarily make a huge reduction to processing time. It does typically improve quality by limiting scene area.
- GOOD PHOTOS MAKE GOOD ALIGNS – the best way ultimately to improve a photoset that is not aligning well is to reshoot the scene if this is possible/reasonable. Where it is not, there are lots of small variations to try.
- RUN QUALITY – Align photos and the other critical steps in MetaShape can be run at one of five quality settings. These are listed as lowest to highest or lowest to ultrahigh. In general, a higher quality run will produce better results, but this is not always the case. For example, running a highest quality alignment attempt on poor quality photos may result in worse results than high. I relate this to the computer ‘overthinking’ the problem.
- KEY POINTS
- TIE POINTS
- PERFORMANCE: Increasing the key points quantity significantly increases processing time (in general). Tie point increases do not.
- OTHER SETTINGS
REFINING ALIGNMENTS
There are a number of ways to refine alignment. The first thing to consider is any photos which appear to obviously be incorrectly aligned. These should manually have their alignment reset. From here, automated tools allow for the selection of sparse points to be removed, and from this, to optimize the existing alignment. Care should be taken, as in certain cases, ‘over optimization’ will lead to poorer alignment results. In general, only apply optimizations to a high quality scan.
- OPTIMIZE CAMERAS - to be added - in certain circumstances it is valuable to reduce the number of tie points being used to calculate your alignments. This can be done manually using the selection/delete tools, or with automated support. To reduce points automatically based on their estimated quality, selection Tools > Tie Points > Clean Tie Points (previously called Gradual Selection). Select a value to adjust, click OK, delete points, then click on star icon in the reference pane to ‘optimize cameras’. Without this last step, no changes are made.
BUILDING POINT CLOUDS (Metashape)
- LOW TO START – in most cases its worth running a fast process of a point cloud first. Use this to check your region is correctly adjusted…
- BAD DATA OK – The presence of some bad data in a model does not imply that all data is bad. Likely this is the result of a few cameras being of low quality or imperfect alignment. All models should be inspected closely throughout the processing stages.
- MANUAL CLEANING
- CALCULATE CONFIDENCE – I always tick this setting. A quick glance at the point cloud with view settings turned to ‘Confidence’ will rapidly identify areas of best/worst coverage.
- LOW IMPACT – Calculating colours and confidence have minimal impact on processing time.
- DEPTH FILTERING PERFORMANCE – choice of depth filtering strength (disabled/mild/aggressive) has a negligible impact on overall processing time
BUILD MESH/MODEL (Metashape)
- to be added
- MESH FROM DEPTH MAP – in some cases building a mesh directly from depth maps rather than from point cloud can do a better job of hole filling. It will not be more detailed, but sometimes will allow better overall coverage.
BUILD TEXTURE (Metashape)
- MODE – typically mosaic
- RESOLUTION – typically in the range of 4000x4000px or 8000x8000px for higher detail applications.
MARKERS
- TO SCALE
- TO ORIENT
- TO ALIGN TRICKY SETS - this approach is a labour of love.
EXPORTING (Metashape)
- POINT CLOUD FORMAT – Exporting to various point cloud formats from Metashape will write clouds with slightly different properties. Some are exported in plain text while others are further encoded. Most commonly I commonly export E57, PTS and XYZ files. Some of these are uncompressed and human readable (XYZ) while other are not due to their compression (E57).
- MESH FORMAT – OBJ, PLY. For exporting meshes, OBJ format is a simple and effective route to Rhino – including exporting models with rendered textures.
- MIS-SCALED ON IMPORT – When importing clouds between programs you may find your data to be much larger or smaller than you anticipate. Typically this will be by a factor of 1000 in one direction or another due to a mismatch of units (mm vs m). A good trick is to scale the model up or down by 1000 with reference to the model’s origin (0,0,0).
- FLAT PROJECTION OF POINTS – if your point cloud appears to have been flattened when opened in Rhino/CloudCompare it is possible that one of your colour values is being used as a coordinate value.
REALITYSCAN: CURRENT WORK
- DETECTOR SENSITIVITY – One of those settings where High may, in some cases, outperform Ultra. As with MetaShape, there is a risk of looking too hard and relying on unstable details—for example, small branches moving between photographs.
- REPROJECTION ERROR – A measure of the permissible misalignment between tie points being used. A value of 2 is, I think, the default. Lowering this to 1 produces tighter results, but may be more likely to create multiple components. Raising it above 3 is likely to reduce quality while producing more alignments.
- FEATURE DETECTION QUALITY – Should always be set to High when processing power is capable of it.
- MAX FEATURES – Assigned both per image and per megapixel (MPX). More testing is needed to understand which values produce the best balance of performance and quality.
- IMAGE OVERLAP – Low will broadly perform better because it considers the whole image. The main trade-off is likely to be slower processing.
- AI MASKING – More robust testing is needed. When scanning trees, removing the background may not always be the right approach: the larger area of surrounding geometry may be useful during initial alignment.
TOOLS IN RHINO
IMAGE MAKING IN RHINO
Most of the point cloud images and animations produced in my own work come out of the Rhinoceros/Grasshopper environment (primarily on Windows). They are written directly to raster files by this process:
- frame the desired viewpoint in your active viewport. This can be either a perspective or flat projection
- prepare the scene in terms of lineweights, point thicknesses, colours, backgrounds, materials, etc. Whatever is showing in the viewport is what you image will be
- Activate the print dialog (Control-P)
- Select ‘Image File’ rather than a particular printer
- Set image size using pixels
- TIP: adjusting transparency with image size…
- TIP: jpg/png/bmp