SYSTEM FOR CREATING A VIRTUAL WORLD.
5 BACKGROUND OF THE INVENTION
This invention relates to virtual reality systems and, more particularly, to a method and apparatus for creating a virtual world from a database containing a limited pictorial representation of the virtual world.
10 Users of computer systems are now able to create virtual realities which they may view and interact with. One type of virtual reality system is disclosed in U.S. patent application No. 535,253, filed June 7, 1990, entitled "Virtual Reality Network," the disclosure of which is
15 incorporated herein by reference. One task which must be performed is the creation of the virtual worlds within which the users interact. This can be a very tedious task, since a complete description of all virtual objects in the virtual world, including their constraints of motion, hierarchy,
20 color, texture and other attributes must be made and entered into the virtual reality computer. Thus, it would be desirable to make virtual world creation as simple as possible.
25 SUMMARY OF THE INVENTION
The present invention is a method and apparatus for creating virtual worlds wherein a user may begin with a database containing a limited pictorial representation of a desired virtual world and then edit the database to specify
30 the remaining data needed to create the actual virtual world. In one embodiment of the present invention, a database containing a limited pictorial representation of a
T. virtual world is communicated to a receiving unit, and a grouping unit collects various descriptions of the pictorial "1 35 representation into selected groups. An attribute assigning unit then assigns attributes to the groups. The attributes may include group hierarchy, constraints of motion, color,
texture or other features. The modified database is then communicated to a data coupling unit which couples real world data to the groups. Finally, a rendering unit renders the virtual world which looks and functions according to the 5 specified attributes and the real world data.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of a particular embodiment of an apparatus for creating a virtual world 0 according to the present invention.
BRIEF DESCRIPTION OF THE APPENDICES Appendix 1 is a source code listing of a program used for creating a virtual world database according to the 5 present invention;
Appendix 2 is a text description of the operation of the operation of the program entitled "Starch" listed in appendix 1;
Appendix 3 is a text description of the operation 0 of the program entitled "Wringer" listed in Appendix 1; and
Appendix 4 is a text description of the overall steps used to create a virtual world according to the present invention.
DESCRIPTION OF SPECIFIC EMBODIMENTS
1. Project Description
The Matis database conversion project enables the use of die Matis o kitchen database in a virtual reality environment. To accomplish this, the Matis kitchen files are converted into the Isaac file foπnat via RB2Swivcl. This conversion process has several steps. First, tlie Matis product files are edited, using the STARCH editor. The added editing information is stored hi a GROUPING file which can be reloaded into tlie editor. Once 5 the editing is complete, the product is converted into an RB2Swivel Script file. Once tlie products needed to construct a kitchen are in tlie RB2Swivel
format, the WRINGER program builds an RB2Swivel Script file containing the information necessary to make a virtual world. The RB2Swivel worlds are then loaded into Body Electric, along with tlie Body Electric Data Massagers (DMs) necessary to animate tlie world. Figure 1 shows a general outline of tlie conversion process. Tlie
GROUPING of tlie Matis database will be available for use on Sun Microsystems computers.
2. The STARCH Editor This program runs on the SGI and enables the user to convert Matis product data into tlie GROUPING file data format. The final output foπnat of die editor is RB2Swivel Script files. The GROUPING data file contains all die information necessary to edit a product from its last saved state. This information can also be used to speed the editing of similar products. Once editing is completed, die grouped Matis product data is converted temporarily to die SOAP data format. It is dien converted lo a Swivel Script file. There is one Swivel script file per product.
The editor provides die tools necessary for die grouping of matis graphic primitives into polygons or sweeps. Additional information such as constraints, thickness, and color can then be added.
2.1 Product Selection
- The user needs to select which product to edit. This is accomplishe by entering either the product number or name, or by cycling through the list of products of a kitchen as contained in the Matis planfile.
- There is one GROUPING file per product. If a product which has already been edited is reselected for editing, die user is asked to confirm his intentions.
2.2 Default Parameter Addition
- When a product is initially selected for conversion editing, default values for color, grouping, constraints, and thickness are added whenever possible.
- Grouping defaults are a non-trivial problem. Currently, grouping is accomplished interactively. Future project phases may automate d is process.
- On completion of die grouping of graphic primitives into a part, a part name can be supplied by die user, or default to a predetermined value in order to establish constraint and diickness defaults.
- Color, Thickness, and Constraint defaults are determined upon entry of a part name, such as door.
2.3 Product Editing
- The grouping view also supports hierarchy editing. It displays an indented notation tree structure which specifies die Swivel Unkύig constraints of the parts. The default relationship of the parts is a flat tree structure where every part is a child of die root (d e product).
COLOR VIEW - This view displays the RGB color value of the current part.
- The four functions which die editor must provide are die ability to group Matis graphic primitives and subprimitives into parts, edit product color information, determine physical constraints, and add part diickness. This is accomplished in a one screen editing environment consisting of 8 views:
. MATIS GRAPHIC VIEW
- This view displays die original Matis data, as a 3-D rotatable wireframe object This view is used for selection and feedback, but is not modifiable, except for the addition of user polygons and constraint origins.
MAΗS TEXT VIEW
- All of the graphic primitives which compose the product are displayed in this view in a text list format. The association of text to graphics is accomplished through die use of color and highlighting.
Primitives which can be subdivided into subprimitives have menu entries representing the subprimitives.
Grouping Process - One or more primitives and subprimitives are selected. They are dien grouped using the appropriate grouping menu item, at which time a
part name can be supplied. This name tiien appears in the Grouping text view.
GROUPING TEXT VIEW -This view contains a list of die part names of die currendy groupe parts. When one of the names is selected, the primitives which compose d part will become selected.
THICKNESS VIEW - This view consists of editable text items which enable diickness to be added to the currently selected part. The editable items are height and height type. The height is die measurement by which to diicken die select part in the direction of its nomial vector. The height type specifies whet die thickness is added in the positive direction, negative direction, or equally distributed.
- ITiis view displays positional and rotational constraints of die currently selected part. It displays die current, minimum, and maximum constraint values, as well as lock status.
CONVERSION (SOAP) VIEW
- This view displays the most recendy converted state of the produ The product is displayed in shaded, polygonal format.
COLOR GRID VIEW
- This view displays a color grid from which to interactively speci a grouping's color. This view only appears in Soap Edit mode, as describ in die Starch User's Manual, Section 4.4, and replaces die Matis Graphic View.
3. The WRINGER World Constructor
This module constructs a kitchen as deteπnined by d e Matis index an plan files. Its one interaction with the user is to select a particular kitche
to build. A master Swivel script file is output by diis module and is ported to die Macintosh, and loaded into RB2Swivel.
3.1 Kitchen Selection - The user can input the index file entry number or the managing number as a command line argument when running die module. Wall, floor, and ceiling colors may also be specified by creating a "wringer.color" file. See the Wringer User's Manual for more details.
3.2 Making a World
- The plan file referenced by the index file entry is loaded.
- A new RB2Swivel script file is then written. As each wall is created, its products are located upon it as specified by the plan file. The file includes a head and hand, and initial world orientation information.
4. Body Electric Interaction
DMs are defined for each type of movement that might be needed. They are then loaded by BE by indexing off die key part names in each product. This loading process occurs automatically when a world is loaded into BE.