Writing Sample: Creating a 3D model from a 2D picture
This page describes the Photogrammetry workflow. We use a simple example to describe how you can use overlapping photographs of an object, structure, or space, and convert them into 2D or 3D models.
This page is not a tutorial for the tools used to create a 3D model from pictures. It is an introduction to the process and workflow used in Photogrammetry for artists who would typically create 3D models from scratch.
Taking Photos
Start with 12 continuous shots taken by rotating around a fixed object in good natural lighting. Using a high quality camera is recommended.
In this example, we're going to build a 3D model of a frog.We'll build the model by using the continuous shots of the frog sculpture shown below:
Shot 1
Shot 2
Importing photos
Download Regard 3D and import the continuous shots into the tool.
Importing photos
Computing matches
An algorithm in your chosen tool (Regard 3D in this case) will detect the key points from each image and try to match it to other points in subsequent photos to create a continuous point cloud.
For example, if the first photo has a view of the frog's leg from the left, and the second photo has a view of the frog's leg from the right, then the algorithm can reasonably start mapping what a 3D view of the leg might look like.
Computing matches
Generating a point cloud
Once the matches have been computed, you'll need to use triangulation to generate a point cloud.
Triangulation is the process of determining the location of a point by forming triangles to it from a known point.
Regard 3D has now represented the entire scene as points or pixels. However, the points are scattered, and not good enough to generate a continuous and smooth 3D model.
Generating a point cloud
Densifying a point cloud
The densification process brings the sparse points in our point cloud closer together β making them dense. This step is necessary to close the hollow spaces in our scene.
Densifying a point cloud
We will now export the dense point cloud to another software called Meshlab. We need to do this to:
clear the unnecessary points from the scene β after all we only want to create a 3D model of the frog, not the entire scene.
generate a mesh, and add a surface to the model.
Regard 3D allows you to export the entire scene as a singlefile which we will import into Meshlab.
Generating a mesh
Generate a mesh around the dense point cloud which you just imported into Meshlab. Mesh generation connects the different points in the dense point cloud to create a grid-like structure.
Generating a mesh
Trimming
Remove the unnecessary points from the scene. Select and remove all the areas that are not going to be part of your final 3D model.
In this example, we want to generate a model of the frog only
Trimming
Final mesh for 3D model generation
You might notice that certain areas of the final mesh are not smooth. This is due to the dark areas on our original photos. During compute matching, Regard 3D was unable to build a continuous point cloud as certain areas of the photos were not bright enough.
Poorly-lit areas in the original photo may not generate point cloud
Now that we have our final mesh, we can add a surface to it. A point cloud and mesh contains hollows which we need to cover using a surface.
In this example we used Poisson surface reconstructionalgorithm available in Meshlab.
Poisson mesh generated in Meshlab
As you can see, some unusual shapes were generated around our model. We'll need to trim the extra surface using the trimming tools again.
Retrimming unwanted points
Once you've trimmed the extra parts, you can export the final model as a Polygon format(.ply) file. The model is now ready to be shared π€ !
Visualizing and sharing the model
Sketchfab is a service which allows you to upload, visualize and share your 3D models.
Sign up for a new account and upload the .ply file from the previous step.
Your model can be viewed and shared using a Sketchfab link. See ours hereβ
We've just created our first ever 3D model from pictures. Celebrate π !