How to Create 3D Scans of Real-World Objects for Cheap
Have you run out of movies or shows to watch? Played your favorite games until your eyes bleed? Is the non-stop tsunami of news about terrible people, terrible events, and terrible circumstances getting you down?
If you need a new distraction from the infinite abyss of despair that is the modern world, why not try something productive like creating 3D models? Heck, you might even make some money doing it.
Now, I know some of you might be thinking, “I don’t have a single artistic bone in my body”, and you may be right, but here’s some good news: You don’t need any artistic talent to do the brunt of the work of making a virtual object out of a real one. Like any hobby, you just need patience, practice, and a willingness to learn. A decently powerful modern desktop computer also helps a lot.
If you’re still with me, let me introduce you to my new hobby: Photogrammetry. It’s a 3D imaging technique that can net results on-par with a $20,000 laser scanner under the right conditions.
The Materials:
- A camera
- Apparently any camera will do. I’m using the muddiest, crummiest cell phone camera from 5 years ago, and it can pick up minute geometric details with careful control of focus and lighting.
- A modern gaming / workstation computer
- For the best/quickest results, I’d recommend at least a quad-core CPU (Hyper-threading is very nice too).
- My first project saw RAM usage right around 7 Gigabytes (including the operating system memory usage) for a dataset containing 71 pictures at 2K resolution, so if you only have 8 Gigabytes of memory, you’ll be cutting it awful close for any larger dataset. I’d recommend 16 Gigabytes. Memory is relatively cheap to upgrade.
- Having a recent nVidia graphics card with CUDA processing capabilities will greatly increase processing speed in these kinds of processing-intensive applications that support it, but one isn’t absolutely required. The really high-end cards are also tough to find nowadays for a reasonable price thanks to the ongoing cryptocurrency “mining” craze.
The (FREE) Software:
- COLMAP – https://demuc.de/colmap/
There are other applications available, and some people even recommend using different applications for different stages of the reconstruction process, but I’m new to this. I chose this one for its simplicity, and the straight-forwardness of its workflow.
The Procedure:
- Find an object that you want to turn into a 3D model.
- The object shouldn’t be shiny or covered in flat, featureless colors. This excludes many plastic toys unfortunately. This structure from motion processing technique relies on measuring relationships between features and points in your photos to tease out a geometric shape. Flat colors, glare, and reflections throw off the software, leaving you with large missing patches.
- Ideally, you’ll want to be in a room or space with plenty of indirect lighting.
- If the lighting in the area casts strong shadows, those shadows will appear on your virtual object, even under virtual lighting conditions that ordinarily wouldn’t result in those shadows, and an artist will need to use an image editing tool to “de-light” the object’s “texture” (think paint job) if they want to use it. Strangely, taking photos of your object outside on an overcast day is just about perfect.
- Take lots of pictures.
- You want to take as many pictures possible from many different angles for the program to be able to reconstruct all of the nooks, crannies, and bumps of your object. The general technique is easy to do, but difficult to describe in writing. I’ve included a handy graphic to help. You’ll want to follow this pattern around your object in a circle, giving each picture 50-60% overlap. Don’t forget to take some pictures looking down from above the object, and some from below (if possible) though. Maintaining good focus is imperative. Keep your camera flash turned off
How to Create 3D Scans
- Use COLMAP!
- This process takes some time, so patience will be necessary. I can’t tell you how long it will take because you could have vastly different hardware than I do, so keep an eye on the Log pane on the right-hand side of the main COLMAP window, which should have scrolling status and timing information for each step of the process. Example: Matching image 57/71, total time 23 seconds
- Click File > New Project.
- In the Database field: Type the full path to where you want to save your project database, including the desired filename. Do make sure the folder(s) exists first. If they don’t, create them! Example: c:\users\mgay\desktop\rockscan\rockscan.db
- In the Images field: Type the full path to where your images are. Example: c:\users\mgay\desktop\rockscan\
- Click Save.
- Click Processing > Feature Extraction. Take the default options, but make sure the checkbox for “use_gpu” is checked if you have an nVidia CUDA-capable graphics card. If you don’t have a CUDA-capable card and that checkbox is checked, the program will crash.
- Click Processing > Feature Matching. Take the default options, but make sure the checkbox for “use_gpu” is checked if you have an nVidia CUDA-capable graphics card. If you don’t have a CUDA-capable card and that checkbox is checked, the program will crash.
- Click Reconstruction > Start Reconstruction. At this point, you’ll start to see the program drawing points and camera positions.
- Click Reconstruction > Dense Reconstruction.
- In the Workspace field, type the full path to where your images are stored. Example: c:\users\mgay\desktop\rockscan\
- Undistortion – Wait.
- Click Stereo -Wait some more.
- Then Click Fusion -Wait even more.
- Then Click Meshing -Keep waiting.
- Click File> Export to export your newly constructed 3D model.
And now you’ve got a 3D object; wireframe mesh, textures and all.
Once you save it, you can view it in the Windows Mixed Reality viewer, Meshlab, or any other program that can read the file formats that COLMAP can produce.
You can 3D print a replica of your object, upload it to SketchFab, or put it up for sale on an online marketplace for interested buyers.
Good luck, keep practicing, and get busy! If you find that 3D modeling is your cup of tea, consider watching some videos and reading some guides to learn how to edit your models in one of the many well-known and widely supported free 3D modeling programs out there. The world could really use more geeks, you know.