Recommended Hardware for RealityCapture:
Like most software applications, there is a list of system requirements for RealityCapture that can be used to help ensure the hardware in your system will work with their software. However, most "system requirements" lists tend to cover only the very basics of what hardware is needed to run the software, not what hardware will actually give the best performance. In addition, sometimes these lists can be outdated, list old hardware revisions, or simply outright show sub-optimal hardware.
Here at Puget Systems, we have taken the time to put together benchmarks for RealityCapture and run them across a wide variety of hardware. Based on this testing, we have come up with our own list of recommended hardware - as well as a specific workstation configuration tailored with these recommendations in mind.
Each step in the RealityCapture workflow utilizes the CPU differently, but overall we found a clear value winner in our testing:
- AMD Ryzen 9 3900X 12 Core - This processor is a great performer across the board in RealityCapture, ahead of Intel's Core i9 9900K for the same price and only a few percent behind the bigger Threadripper 3960X and 3970X chips while costing a lot less.
- AMD Ryzen 9 3950X 16 Core - For those who want to spend a little more, without the massive price jump to the Threadripper series, the top-end Ryzen 9 chip gives a small boost in performance. It easily beats out Intel's X series with similar core counts.
RealityCapture requires a NVIDIA graphics card for full operation because it uses CUDA for some of the key processing. Without that, you can technically run the program and perform some basic steps like registering images - but you cannot create a mesh / 3D model.
We found that there isn't a huge difference between modern mid-range and high-end video cards, but there is a little bit of a performance gain from spending more. However, using two video cards instead of one also provides a sizable benefit. As such, our recommendation is to use two video cards if your budget allows - and these are some of the sweet spots:
- 2 x GeForce RTX 2080 Ti 11GB - These are our top-end recommendation, and outperform a single Titan RTX for about the same price. Still, a pair of these is pretty expensive - so one of the other options below will also work quite well.
- 2 x GeForce RTX 2080 8GB - The RTX 2080 is about 5% slower than the 2080 Ti in RealityCapture, but still quite fast.
- 2 x GeForce RTX 2070 8GB - The difference between the RTX 2070 and 2080 is even smaller than that between the 2080 and 2080 Ti, and it doesn't lose any VRAM either (though that seems to have little, if any, impact on performance in this application).
- 1 or 2 x GeForce RTX 2060 6GB - One of the RTX 2060 cards is about as low as we would recommend going, since the drop-off between this and the next model (GTX 1660 Ti) is more substantial and the price savings is less than $100. Two of them is also a solid option, offering performance on par with a single RTX 2080 for less money.
Memory requirements in RealityCapture are actually fairly modest, especially compared to other photogrammetry applications. This program was designed to use "out-of-core" algorithms, which do not require all of the data being worked on to be stored in the main system memory at same time. As such, very large projects can be handled with modest amounts of RAM - the developers even claim that 16GB is sufficient for image sets with thousands of photos. Here at Puget, though, we generally recommend 32GB as a minimum since Windows and other programs running in the background also need some memory space.
We strongly recommend using solid-state drives on all computers these days. They have a huge impact on every aspect of computer usage, from faster boot times to more responsive operation. RealityCapture will also load images more quickly from a fast drive, and because of its out-of-core design it also reads and writes data from the drive throughout processing. Image sets can take up a lot of space, so having a secondary hard drive for archival of projects and other data may be helpful.