Face
eDIT
Version 1.0
Işık Barış Fidaner Başar Uğur
CMPE 535
Computer Graphics
CMPE 535 Project Document - User Manual
Başar Uğur
Işık Barış Fidaner
CMPE 535
Computer Graphics
Introduction This editor is aimed for editing 3D face models in VRML format, in the most user-friendly way. This requires several features such as; 1. A robust VRML reader-writer, 2. A beautiful and easy-to-use graphical interface, 3. Many practical tools for modifying the face model.
Reading-Writing VRML reading-writing is a very complicated task as a whole (1). Our program scans the VRML file and only reads the mesh information, i.e. point coordinates and polygons in every indexed face set. Then it cuts polygons with (n ≥ 5) corners into (n - 2) triangles (quads are not affected). For example every pentagon is divided into three triangles. Program also reads the ccw parameter which specifies orientation of polygons. In the beginning, program reads from the VRML file given as a command prompt parameter. User can write current model into a new file output.wrl, output2.wrl… by pressing “W” in the program.
Graphical Interface Current graphical interface includes practical interaction for viewing and editing the model using mouse and some keys. There is no user menu, or some kind of help screen, which makes it harder for starting to use the program. But as soon as you know the functions and corresponding keys, it is very easy to adapt and get used to the environment. When you start the program with appropriate command prompt parameter, firstly the intro appears. You can pass this screen by clicking left mouse button. After the intro, you can see the model in the viewing mode.
Viewing the model In the viewing mode, you can do the following things:
Başar Uğur
You can easily view the model from different angles Işık Barış Fidaner
CMPE 535
Computer Graphics
1. Turn the model, pull it left, right, up or down, lift, lower, pull and push it by just dragging your mouse (LMB and RMB).
Başar Uğur
Işık Barış Fidaner
CMPE 535
Computer Graphics
2. Turn the spotlight on an unseen sphere around the model by dragging your mouse (MMB). 3. Make selections on the face. You can select a single vertex or a single polygon, as well as a group of vertexes around a region. Weights of regional selections are determined by the gaussian function. 4. Enlarge or shrink selected areas. If you enlarge an area, more neighboring vertices are affected and standard deviation of the gaussian function is increased. 5. Turn into the editing mode by pressing space and return to the viewing mode by releasing it.
You can select regions (green) around a vertex or a polygon. Then you can add-subtract regions (magenta) from them.
6. Change to additive or subtractive selection modes. In the additivesubtractive selection mode, the area you selected is added-subtracted from the previous selection you made. In the normal selection mode areas are green, whereas in additive-subtractive selection mode areas are cyan and magenta, respectively. 7. Undo and redo changes in the model. Undo memory is limited to 15 model states by default.
Başar Uğur
Işık Barış Fidaner
CMPE 535
Computer Graphics
You can make changes in the model by just dragging the mouse in the editing mode
Editing the model Editing mode simply means "if the space button is being pressed". Editing mode allows you to make changes in the model by translating-rotating the vertices in the area you selected. Any movement of the model can be applied to the selected area. You can turn the selection, pull it left, right, up or down, lifting, lowering, pulling and pushing it just by dragging your mouse. Refer to appendix 2-3 for user controls.
Başar Uğur
Işık Barış Fidaner
CMPE 535
Computer Graphics
Future Work This is the version 1.0 of the program. In the future versions, we are planning to add new features to Face Edit. In these versions, the user is going to be able to 1. Use a menu, (to open files, save, undo, redo etc.) 2. Use the freehand tool to select an area of an irregular shape, 3. Use the magic wand to select an area by its curvature, 4. Name the areas you selected, (such as "nose", "lips", "left cheek" etc.) 5. Define a simple property, by assigning an operation on a single area, 6. Define a composite property, by collecting simple properties as a weighted sum, 7. Save the property information in seperate Face Properties (FP) file linked to the VRML. 8. Define user-defined operations, such as scaling around a center point, translation among a vector, rotation around some axis, and any combination of them. And we are going to add following more advanced features, as long as we have enough time: 9. Save modified versions of the same VRML model as key-frames, and collect them in a Face Key-Frames (FK) file, 10. Define key-frame operations, in which the vertices approach geometrically to the corresponding vertices in the key-frame, 11. Create and view animations by changing properties of a model over time, save them into Face Animation (FA) files, (Note that it is possible to define key-frame properties to make key-frame animations. And it is also possible to limit key-frame animations to certain areas on the face, such as visemes on the mouth and mimics on the eyes etc.) 12. Create user-defined interfaces by assigning operations to mouse movements and save them in seperate Face Interface (FI) files,
Başar Uğur
Işık Barış Fidaner
CMPE 535
Computer Graphics
Appendix 1: VRML From Wikipedia: VRML (Virtual Reality Modeling Language, sometimes pronounced vermal) is a standard file format for representing 3-dimensional (3D) interactive vector graphics, designed particularly with the World Wide Web in mind. It is a text file format where, e.g., vertices and edges for a 3D polygon can be specified along with the surface color, image-mapped textures, shininess, transparency, and so on. URLs can be associated with graphical components so that a web browser might fetch a web-page or a new VRML file from the Internet when the user clicks on the specific graphical component. Animations, sounds, lighting, and other aspects of the virtual world can interact with the user or may be triggered by external events such as timers. A special Script Node allows to add program code (e.g., written in Java or JavaScript (ECMAScript)) to a VRML file. VRML files are commonly called worlds and have the .wrl extension (for example island.wrl). Although VRML worlds use a text format they may often be compressed using gzip so that they transfer over the internet more quickly. Most 3D modeling programs can save objects and scenes in VRML format. The Web3D Consortium has been formed to further the collective development of the format. The first version of VRML was specified in November 1994. This version was specified from, and very closely resembled, the Application Programming Interface and file format of the Open Inventor software component, originally developed by SGI. The current and functionally complete version is VRML97 (ISO/IEC 14772-1:1997). The coming VRML standard is called X3D.
Appendix 2: Keyboard controls
Başar Uğur
Işık Barış Fidaner
CMPE 535
Computer Graphics
Key
Condition
Practical function
Pressing space
In the viewing mode
Turn into the editing mode
Releasing space
In the editing mode
Turn into the editing mode
Press-release "+"
An area is selected
Enlarge selected area
Press-release "-"
An area is selected
Shrink selected area
Press "A"
An area is selected
Change to additive selection mode
Release "A"
Additive area selected
Add new area to the first area
Press "S"
An area is selected
Change to subtractive selection mode
Release "S"
Subtractive area selected
Add new area to the first area
Press-release “W”
In the viewing mode
Save current model in a new VRML file
Press-release "Z"
Undo information exists
Undo last change in the model
Press-release "X"
Redo information exists
Redo last undo in the model
Başar Uğur
Işık Barış Fidaner
CMPE 535
Computer Graphics
Appendix 3: Mouse controls Mouse button
Mouse movement
Condition
Practical function
Pressing LMB
Dragging leftright
In the viewing mode
Turning model by pulling it left and right
Pressing LMB
Dragging updown
In the viewing mode
Turning model by pulling it up and down
Pressing RMB
Dragging leftright
In the viewing mode
Lifting the model up and pushing it down
Pressing RMB
Dragging updown
In the viewing mode
Pulling the model and pushing it away
Pressing MMB
Dragging leftright
In the viewing mode
Turning the spotlight around the model
Pressing MMB
Dragging updown
In the viewing mode
Turning the spotlight up and down
Pressing LMB
Dragging leftright
In the editing mode
Turning selection by pulling it left and right
Pressing LMB
Dragging updown
In the editing mode
Turning selection by pulling it up and down
Pressing RMB
Dragging leftright
In the editing mode
Lifting the selection up and pushing it down
Pressing RMB
Dragging updown
In the editing mode
Pulling the selection and pushing it away
Press-release LMB
On any vertex/poly
In the viewing mode
Select a vertex or a poly on the face
Press-release LMB
Anywhere not selected
In the viewing mode
Deselect the area previously selected
Press-release LMB
On selected vertex/poly
In the viewing mode
Make a regional selection around selected point/poly
Başar Uğur
Işık Barış Fidaner