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 performance winner in our testing:
- Intel Core i9 9900K 3.6GHz (5.0GHz Turbo) 8 Core - This processor was the top performer across the board in RealityCapture, and will support plenty of RAM and up to two video cards. It is ideally suited to this application!
- Intel Core i7 9700K 3.6GHz (4.9GHz Turbo) 8 Core - For those on a more limited budget, and especially those working with smaller image sets, the 9700K is not far behind its big brother when it comes to performance in RealityCapture.
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.