Single View Modeling Project : Quick help and Tutorial



Note : This is the latest version of the program. However, bug reports or comments are always useful and should be sent to guill@cs.washington.edu

The main goal is to create a 3D model from a single image.


How to load an image
Choose Load Image in the File Menu, then choose the image you want to work on.
This has to be a BMP file RGB, 24 bits. Other BMP files will make the system crash
How to deal with non squared images
The default option is a square grid, which may cause the image to be sketched.
To avoid this problem, choose New Grid in the File Menu, then adjust the dimension of the grid to the dimensions of the image, in pixels.

Now, you have an image loaded on the system, and you can work on it. Let's look at what's the system's look like




Interface Overview


The left window is the original picture from which you will make a 3D model. You will build the model in this view : add some constraints, discontinuities and fairing curves, change the grid resolution.
The right window is the view where you can have a look at the result. You can rotate or zoom to look closely to some details and adjust the model

Right window

Left-click and drag to rotate the model
Right-click and drag to rotate the model in the plane view
Middle-click and drag to zoom in and out
Shift left-click and drag to translate the model
Use "Reset the 3D View" switch back to the original view
All the rotations are made over a reference point, which is the multicolor cross. You can see this cross only if the option "Show the Grid" from the Menu "3D View" is activated.
To make the zoom work properly, you might want to deactivate Universal Scroll or other similar options, which make the Middle button unusable.


Left Window

Shift left-click and drag to translate the image view
Shift middle-click and drag to zoom in and out
Use the "Reset the 2D view" button to switch back to the original view

Main Interface

"Position constraint" option
When this mode is activated, you can add position constraints on the model. A position constraint will fix the height of a point in the model.
  • Left-click on the left view to create a position constraint
  • Left-click on a constraint to select it. When you move over a constraint or when you select it, it's color changes.
  • Left-click and drag to adjust the position of the constraint in the image
  • Right-click and drag to adjust the height of the constraint.
  • Press Delete to remove the currently selected constraint
  • Use Tab and Shift-tab to select the next/previous constraint

"Normal constraint" option
When this mode is activated, you can add normal constraints on the model. A position constraint will fix the local orientation of the surface model.
  • Left-click on the left view to create a normalconstraint.
  • Left-click on a constraint to select it. When you move over a constraint or when you select it, it's color changes.
  • Left-click and drag to adjust the position of the constraint in the image.
  • Right-click and drag to adjust the orientation of the constraint.
  • Press Delete to remove the currently selected constraint.
  • Use Tab and Shift-tab to select the next/previous constraint.

"Curve constraint" option
When this mode is activated, you can now choose between three different curve constraint type : Position discontinuity, Normal discontinuity and Fairness constraint. These curves have different meanings, but the interface works the same way
  • Left-click on the left view to start creating a piece-wise linear curve.
  • Left-click on the left view to go on adding some key points to the curve.
  • Press Escape to cancel the creation of the current curve.
  • Press Enter to validate the curve. The position of the mouse will be indicate the position of the last point.
  • Left-click on a key-point of a curve to select the curve and the key-point in the curve.
  • Press Delete to delete the selected curve.
  • Press Backspace to delete the selected key-point in the selected curve.
  • Left-click and drag on a key point to move this key-point.
  • Right-click and drag on a key point to make the curve interface pop-up.
  • Middle-click on a key point to change the type of a curve, after having selected the Curve Constraint Type you want.

"Curve constraint Type" options
You can only select the Curve constraint type if the Curve constraint option is selected
  • Position discontinuity
    Adding a position discontinuity will cause a cut in the model. This feature is used to handle depth discontinuities.
  • Normal discontinuity
    Adding a Normal discontinuity will create a sharp edge in the model. This feature may be used to handle geometric forms with edges.
  • Fairing Curve
    Adding a Fairing constraint will smoothen the model along the curve. Use the Curve Interface to change the parameters of a Fairing constraint.

Curve Interface
You can make it pop-up buy right-clicking on a key point of a curve, the Curve Constraint option is selected You can chose to close the contour or not. If it is a fairing curve, you can specify curvature weights - to smoothen the curvature along the curve - and torsion weights - to smoothen the torsion along the curve.
If it is a position discontinuity, you can add constraints automatically along the curve to simulate a silhouette effect. Specify the distance between the constraints using the slider, and the angle to set the normal orientation to the curve.
Warning : these automatically added constraints are separate from the other ones... If you move the curve, the auto-bump constraints will move also
If you want to modify them as normal constraints, you have to export them first, using the "Export constraint" button.

"Select button"
With this tool, you can change the grid resolution if needed. Press the "Select" button to activate the tool, left-click and drag to select the region where you want to change the resolution, then press + or -, without shift, to change the resolution.
Notice that adding a position discontinuity will automatically change the resolution to avoid aliasing, but these adjustments are always done after, so don't worry about it when you change the resolution.
Press the "Select" button again to be able to modify the rest of the model again

"Switch to HR" button
Use this button to get the highest resolution to get a smooth model. This feature is useful is finished and when you only want a result, since the model computation is slow when this High-resolution mode is activated.

Solver


You can see that as soon as you add constraints and discontinuities, the solver keeps on adjusting the model.

Interfaces

2 annex interfaces are currently available : Record an animation and Intelligent Scissors
"Record and animation" Interface
You can very easily record an animation of your final model to make a video.
Click on the "Record an animation" button to make the interface pop-up, then press Record and release pause to start. Each time you change the view, a new frame is recorded. You can then stop the animation and export it into a bunch of bmp files.
"Intelligent scissors" Interface
This tool will facilitate the drawing of discontinuities. You need to load an image to use this tool.
Click on the "Intelligent scissors" button to make the interface pop-up, then click on the image to set new key points.
Press Backspace to erase your last key-point.
Press Enter to enter the last key point and export the curve as a position discontinuity.

Graphics options


All options can be accessed from the Menu Bar. The "2D View" Menu concerns the left view, the "3D View" concerns the right view. Note that some options only have an effect when an image is loaded.