5.4. Tutorial: Surface modelling using projected patterns

Problem

You may wish to create a 3D model of a fairly plain object which can not be modelled well from silhouettes alone - e.g. there are deep concavities and overhangs that have no effect on the silhouette shape.

Solution

If your object is plain you can use a standard digital projector to project a pattern onto the object and then take photos from multiple viewpoints relative to the projector. For example you can project a horizontal stripe pattern and take photos from a high-up and lower down viewpoint. The object will need to be placed on the calibration mat which should be visible in all the photos. You should be familiar with taking standard 3DSOM Pro shots before attempting using a projector approach.

Starting Point

To speedup image capture we recommend you use 2 digital cameras or a computer controlled turntable or both.

If you place your camera positions above and below the projector use the "horizontal" stripe pattern (in fact the stripes are slightly angled) and your setup should look like this...

Figure 5.4.1. Setup with vertically arranged cameras using the horizontal stripe pattern.

If you place your cameras either size of the projector (horizontally), use the vertical stripe pattern and your setup should look like this...

Figure 5.4.2. Setup with horizontally arranged cameras using the vertical stripe pattern.

If you have used more than two cameras then use the "checkered" pattern. The pattern images can be found in the "slides" folder in the 3DSOM Pro application folder which by default will be C:/Program Files/3D Software Object Modeller Pro/slides/.

If you have a computer controlled turntable you can use a single camera. First move the camera to the first camera position ("camera1") and take a sequence of photos using the turntable software. Reset the turntable to "home" position. Then move the camera to the second position ("camera2") and take another sequence from the precisely same angles using the turntable software.

Selected the slide to project based on the type of pattern ("horizontal stripes", "vertical stripes" or "checkered") and the digitial projector resolution (SVGA 800x600, XGA 1024x768, WXGA 1280x800 or WUXGA 1920x1200).

Step 1

Take your photographs making sure that you have rotated the object to around 16 positions and have two (or more) images for each position. You will need to ensure that dots on the calibration mat are detectable in the photos - you may need to use a spot light to illuminate the mat. The projected pattern should be clearly visible and focused on the object — you may need to darken the room depending on your projector's power.

If you are using multiple cameras try to fire them off at approximately the same time - so they have similar timestamps. Alternatively you should rename the shots so that the files taken at the same rotation have the same numerical suffix. e.g. camera1_0001.jpg and camera2_0001.jpg

Figure 5.4.3. Image from upper camera
Figure 5.4.4. Image from lower camera

Take additional shots from a number of angles with the projector turned off and normal (diffuse) lighting. These shots will be used for masking and texturing in the normal way. You can also take back-lit shots for easier masking (reject these before texturing).

Step 2

Start a new project and load in all your photos. Mask all or some of the images that are easy to mask (taken without the projected pattern). Now build your initial wireframe model in the normal way using the ID_MAKE_SURFACE.jpgGenerate surface... button.

Figure 5.4.5. Initial model
Step 3

Reject all the images taken without the projected pattern by selecting them in the Thumbnail Window and selecting Images > Reject Images menu item.

Now build a point cloud by selecting the ID_CALC_POINTCLOUD.jpgGenerate Point Cloud button. You will need to select either the "...using timestamp" option if the images taken from both cameras were taken simultaneously (or within a 0.5 seconds). Alternatively use the "...using trailing digits" option if the images have been named with the same numerical suffix.

Figure 5.4.6. Point cloud
Step 4

Select the masked images from the Thumbnail Window rejecting the other images and optimise your surface using the masks and point cloud using the ID_MAKE_SURFACE.jpgGenerate surface... button.

Figure 5.4.7. Optimized model
Step 5

Select the shots you took for texturing from the Thumbnail Window rejecting the other images and build the texture maps in the normal way using the ID_MAKE_TEXTURE.jpgGenerate texture maps... button.