Photogrammetry is the science of making measurements from photographs.
There are many applications to this technology that go beyond game development, the entertainment industry and industrial use cases.
WebGL (Web Graphics Library) is a JavaScript API for rendering interactive 3D and 2D graphics within any compatible web browser without the use of plug-ins.
Taking pictures is the most important step in the process. Here are some considerations to keep in mind:
- Check your lighting. You want even exposure between your image set
- Keep your background in mind. An extra step that is often required is masking, having an even background allows you to quickly prepare your photo set
- A 30% overlap between other photos in the set provides us with the connections we need to help the software do it’s best
This is where the magic happens; it's also the same place that it could all go awry.
Generally, the results of aligning your photo-set will reflect how successful your mesh reconstruction will be. Both a sparse point cloud and a dense point cloud combine to create your mesh.
Align your photo-set. Have the cameras positioned by feature alignment between photos. This will generate a sparse point cloud. The outcome of this process greatly reflects on the following results.
Once we have our dense point cloud, we can now reconstruct a 3D mesh and the texture that maps to the geometry.
We can export into the formats that best suit the destination. For the web, the .glTF file format (JSON) is incredibly versatile and a perfect fit for the browser.
Scanned meshes could be noisy as a by-product of the process, this is where many software like Zbrush, Meshlab or Meshmixer allows us to smooth and refine the geometry.
To take it the next step, moving into a 3D software suite like Maya or Cinema4D could add amazing things to the final output just by creating different maps (ambient occlusion, bump, normal, displacement, specular, etc), which fortunately for us, is widely supported by the .glTF format.
Masking
Feature Alignment
Sparse Point Cloud
Dense Point Cloud
Structure From Motion
Mesh
Texture
WebGL