SYSTEM AND METHOD FOR TRANSMITTING AND REPRODUCING
TWO-DIMENSIONAL AND THREE-DIMENSIONAL
GRAPHICAL IMAGES
FIELD AND BACKGROUND
The present invention relates to a method and system for transmitting and reproducing graphical images, and in particular, to such a method and system in which the graphical images are automatically reproduced for the viewer from a limited number of components, whether for two-dimensional or three-dimensional images, Currently, three-dimensional images are constructed from virtual objects, which could represent substantially any actual object in the real world, such as buildings, trees, chairs, and so forth. In turn, these virtual objects are constructed from a plurality of graphical objects, or primitives, which represent basic shapes such as box, cone, polygon and so forth. Therefore, many different virtual objects can potentially be constructed from a relatively limited set of graphical primitives.
Unfortunately, currently each such virtual object must be separately constructed from these graphical primitives. Although a plurality of such virtual objects could theoretically be easily constructed by specifying a relatively small number of graphical primitives, the resultant virtual objects would give the appearance of being similar or identical, and would therefore collectively be visually uninteresting to the human eye. Thus, a significant amount of time must be spent in order to "individualize", or add individual detail to, these virtual objects.
A more efficient solution would enable a plurality of virtual objects to be rapidly specified as individual objects, with individual detail, but without requiring the human designer to specify such individual detail for each object separately. Such a solution would not require significant amounts of time to create each individual virtual object with such detail, yet would result in virtual objects which appear to be different and therefore more interesting to the human eye. Such a solution is provided in the patent application entitled "Method For Constructing Two-Dimensional And Three-Dimensional Graphical Images", by the same inventor and filed on the same day as the present application, which is hereby incorporated by reference as if fully set forth herein.
Once these graphical images have been constructed, the user needs to be able to view such images. For example, a three-dimensional graphical scene composed of such images may need to be transmitted over a network, such as the Internet. The network may have limited
bandwidth, such that a large, complex scene could be difficult to transmit rapidly in its entirety. A more efficient method would only transmit the required data to be able to reconstruct the scene at the computer of the user, rather than transmitting the entire scene itself.
Such an efficient method would also potentially enable the tools for constructing the three-dimensional scene to be made available through a network such as the Internet, for example in the form of a Web site. The user would be able to construct the three-dimensional scene using these remote tools, optionally with guidance provided through the Web site, yet would still be able to view the resultant scene quickly, as the scene could be efficiently transmitted through the network to the computer of the user, and then reconstructed at the computer of the user. Unfortunately, such an efficient method and application are not currently available.
There is thus a need for, and it would be useful to have, a method for rapidly and efficiently transmitting data for reconstructing a two-dimensional or three-dimensional virtual object, such that only the necessary data is transmitted, thereby potentially reducing the amount of bandwidth which is required to transmit the virtual object, and optionally also enabling the tools for constructing the virtual object to be operated at a site which is remote to the user.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, aspects and advantages will be better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, wherein:
FIG. 1 is a schematic block diagram of primitive controls operating on a parametric object according to the background art;
FIG. 2 is a schematic block diagram of a meaningful control according to the background art;
FIG. 3 is a schematic block diagram of a parametric fractal object according to the present invention;
FIG. 4 is a schematic block diagram of a hierarchy of parametric fractal objects according to the present invention; FIG. 5 is a schematic block diagram of a system according to the present invention;
FIG. 6 is a flowchart of an exemplary method according to the present invention for displaying an image created with a plurality of hierarchical parametric objects; and
FIG. 7 is a schematic block diagram of the relative position of the user in virtual space
with regard to the display according to the present invention.
SUMMARY OF THE INVENTION
The present invention is of a system and a method for rapidly and efficiently transferring the data required to construct virtual objects from a server to a user computer, by specifying the virtual objects as a plurality of controllers. Each controller may optionally be determined as a pseudorandom number generated from a particular seed, such that only the seeds need to be transmitted to the user computer as a serial number in order to display the virtual object. Alternatively, the virtual object may be specified as a part of an object hierarchy, in which only the parent object is fully specified. The child objects are then only described according to one or more differences from the parent object, such that only the controllers with different values are given for each child object. The system of the present invention optionally features software tools operated at a remote site, for example by a remote server, provided for the user to be able to design a virtual object. The user interacts with these software tools through a client which is operated by a user computer. The user computer is connected to the remote server by a network, such as the Internet for example.
According to the present invention, there is provided a method for displaying an image by a user computer, the image featuring image data, the method comprising the steps of: (a) providing a server for serving the image data; (b) constructing a plurality of virtual objects according to an object hierarchy, the plurality of virtual objects including a parent object, the parent object featuring a plurality of controllers, such that each controller has a specified value, and the plurality of virtual objects including a child object, such that the parent object is a parent to the child object, the child object being determined by altering at least one controller of the child object according to a difference between the child object and the parent object; (c) transmitting a plurality of controllers for the plurality of virtual objects to the user computer by the server, such that the plurality of controllers forms the image data, the plurality of controllers including controllers for the parent object and each altered controller for the child object; (d) reconstructing all of the controllers for each virtual object; (e) building a plurality of primitive objects from the plurality of controllers by the user computer; and (e) displaying the image as the plurality of primitive objects by the user computer.
According to another embodiment of the present invention, there is provided a system for designing an image by a user through a network, the image featuring at least one virtual object, the virtual object being specified as a plurality of controllers, each controller having a specified
value, the system comprising: (a) a software tool for constructing the at least one virtual object from the plurality of controllers; (b) a server for storing data for reconstructing the plurality of controllers; (c) a client software for interacting with the user and for receiving a value for each controller from the user, and for receiving the data for reconstructing the plurality of controllers from the server for displaying the image; and (d) a user computer for operating the client software, the user computer being connected to the server through the network, such that the value for each controller is sent to the software control for constructing the at least one virtual object.
According to yet another embodiment of the present invention, there is provided a system for transmitting an image through a network, the image featuring at least one λ irtual object, the virtual object being specified as a plurality of controllers, each controller having a specified value, the system comprising: (a) a server for serving data for reconstructing the plurality of controllers; (b) a reconstructor software for receiving the data for reconstructing the plurality of controllers from the server; (c) a view er software for constructing the at least one virtual object from the plurality of controllers and for displaying the image; and (d) a user computer for operating the reconstructor software and the viewer software, the user computer being connected to the server through the network.
Hereinafter, the term "computational device" includes, but is not limited to, personal computers (PC) having an operating system such as DOS, Windows™, OS/2™ or Linux; Macintosh™ computers; computers having JAVA™-OS as the operating system: graphical workstations such as the computers of Sun Microsystems™ and Silicon Graphics™, and other computers having some version of the UNIX operating system such as AIX™ or SOLARIS™ of Sun Microsystems™; any other known operating system; any other computer: or any device which has an operating system. Hereinafter, the term "Windows™" includes but is not limited to Windows95™, Windows 3.x™ in which "x" is an integer such as "1", Windows NT™,
Windows98™, Windows CE™, Windows2000™ and any upgraded versions of these operating systems by Microsoft Corp. (USA).
Hereinafter, a "virtual object" is defined as two-dimensional or three-dimensional graphical image. Hereinafter, the term "controller" includes, but is not limited to, at least one of a meaningful control and a primitive control.
The method of the present invention could be described as a series of steps performed by a data processor, and as such could optionally be implemented as software, hardware or
firmware, or a combination thereof. For the present invention, a software application could be written in substantially any suitable programming language, which could easily be selected by one of ordinary skill in the art. The programming language chosen should be compatible with the computational device according to which the software application is executed. Examples of suitable programming languages include, but are not limited to, C, C++ and Java.
DETAILED DESCRIPTION OF THE INVENTION
The present invention is of a system and a method for rapidly and efficiently transferring the data required to construct virtual objects from a server to a user computer, by specifying the virtual objects as a plurality of controllers. Each controller may optionally be determined as a pseudorandom number generated from a particular seed, such that the virtual object may be reproduced from the seeds used to generate the controllers. Therefore, only the seeds need to be transmitted to the user computer as a serial number in order to display the virtual object.
Alternatively, the virtual object may be specified as a part of an object hierarchy, in which only the parent object is fully specified. The child objects are then only described according to one or more differences from the parent object, such that only the controllers with different values are given for each child object. Thus, a relatively large number of virtual objects can be specified with a relatively small amount of data.
According to other preferred embodiments of the present invention, the virtual object is designed by a user through software tools operated at a remote site, for example by a remote server. The user interacts with these software tools through a client which is operated by a user computer. The user computer is connected to the remote server by a network, such as the Internet for example.
The description of the method of the present invention uses a number of different terms, which are defined for the purposes of explanation only and without any intention of being limiting.
As previously noted, virtual objects are constructed from a plurality of graphical primitives. Each graphical primitive is a graphical representation of a basic shape, such as box, cone, sphere, polygon, extrude and so forth. Graphical primitives are known in the art. Virtual objects are formed from graphical primitives as a set of a plurality of such primitives with controls, to form a "parametric object".
The controls for each parametric object can be either primitive controls or meaningful controls. A primitive control is one of the sets of parameters which define a parametric object.
These parameters operate directly on the primitives which form the virtual object. As an example of such a parametric object, a window with an ability to adjust its geometry has an appearance which is defined only when the window height, width and number of sections are defined. A schematic block diagram of such primitive controls operating on a parametric object is shown in background art Figure 1. As shown, a parametric object 10 features a plurality of primitive controls 12 which operate directly on a plurality of primitive objects 14. Primitive objects 14 with primitive controls 12 in turn form parametric object 10. It should be noted that primitive objects 14 are only shown in Figure 1 for the sake of clarity, although they are also present in the parametric objects shown in Figures 2-4. However, in order to display the virtual object on a computer of a user, primitive objects 14 are rendered for display by the computer of the user.
Meaningful controls are another type of control, which operate on the primitive controls to define the parametric object. Meaningful controls are defined by the human designer, but must then be translated into a set of primitive control parameters in order to have an effect on the parametric object. For example, with regard to different types of buildings as parametric objects, a human designer could define a building as being of the type "modern", "governmental", "dwelling" and so forth. Such a building type is a meaningful control, which alters the behavior of primitive controls. An example of such a meaningful control is shown in background art Figure 2, again featuring parametric object 10 with a plurality of primitive controls 12 and a plurality of primitives 14. Now, primitive controls 12 are in turn controlled by a plurality of meaningful controls 16. Each meaningful control 16 may only control one primitive control 12, but preferably controls a plurality of primitive controls 12. Thus, once a particular meaningful control 16 has been specified, the behavior of the primitive controls 12 is in turn also determined.
Referring now to the drawings, Figure 3 is a schematic block diagram of a parametric fractal object 18 as disclosed in the previously described application entitled "Method For Constructing Two-Dimensional And Three-Dimensional Graphical Images". A fractal object is a virtual object which is constructed through a process involving random or pseudorandom elements, such that the graphical representation of the virtual object is determined by a set of fractal, random or pseudorandom formulas. Parametric fractal object 18 is a fractal object which has at least one, and preferably a plurality of, parametric primitive controls 20. As shown,
preferably primitive controls 20 of parametric fractal object 18 are controlled by at least one meaningful control 22.
Each parametric fractal object 18 is actually a group of such objects, each of which is determined according to the same set of primitive controls 20 and at least one meaningful control 22. However, each parametric fractal object 18 has a different graphical appearance, since the values for primitive controls 20 are determined by pseudorandom numbers which are produced by a pseudorandom number generator, or else are determined by completely random numbers. Therefore, if parametric fractal object 18 is a tree, and meaningful control 22 specifies that the tree is an oak tree, the graphical appearance of the resultant virtual object is of an oak tree, but with details such as height, width, shape, and the geometry, position and direction of the branches, which are determined pseudorandomly and/or randomly.
Preferably, the actual "real life" object is analyzed to determine the set of features which is necessary in order to produce the corresponding virtual object. Each feature is then controlled by a corresponding primitive control 20, such that the feature is varied by varying the numeric parameter of primitive control 20. Such a numeric parameter may optionally be the value of the parameter controlled by primitive control 20, or alternatively may represent the number according to which the value for primitive control 20 is selected from a list of such values. Optionally, a single numeric parameter could represent a plurality of primitive controls 20.
More preferably, each such parametric fractal object 18 has a numeric control 23 which controls the values for the various primitive controls 20 and/or meaningful controls 22 according to which the primitive objects, and hence the visual appearance, of the resultant virtual object is determined. Numeric control 23 may optionally be a serial number which contains the values for the various primitive controls 20 and/or meaningful controls 22.
Optionally, as for the process of generating pseudorandom numbers described previously, one number in the serial number could optionally represent values for a plurality of primitive controls 20. Alternatively, the serial number could be used as the seed or seeds for feeding to the pseudorandom number generator in order to generate the pseudorandom numbers again. Parametric fractal objects 18 which have the same serial number would therefore be identical and would have an identical graphical appearance. Thus, a designer could optionally either request a plurality of identical parametric fractal objects 18 by serial number, or alternatively could remove a particular parametric fractal object 18 from being used again by the serial number.
In order to reduce the amount of data being stored and/or transmitted, preferably the
number of controllers for parametric fractal object 18 should be reduced. One method for reducing the number of controllers is to create a hierarchy of parametric fractal objects, in which the parent fractal object would be fully specified, while each child fractal object would only be specified by the differences from the parent fractal object. The remaining meaningful and/or primitive controls would be inherited by the child fractal object, thereby enabling the child fractal object to be fully specified with very few controls, and hence with very few data values. Even if the meaningful controls are identical between the parent object and child object, the child object may still have a different appearance if the primitive controls are optionally automatically randomly or pseudorandomly determined. Optionally, the human designer does not need to specify the differences between the child object and the parent object, as the differences which are realized through changes in the primitive controls may optionally be determined automatically, through the generation of pseudorandom and/or random numbers as previously described. Also, such differences could optionally be determined "on the
as the child object is generated for display. An example of such a hierarchy is shown in Figure 4, in which a first set of controls 24 determines the appearance of a parent fractal object 26. A plurality of child fractal objects 28 inherit a portion of first set of controls 24, with the optional alteration of the value for at least one of the controls, to form a child set of controls 30. Thus, the group of child fractal objects 28 is created according to differences from parent fractal object 26, such that the child fractal objects 28 are preferably not identical to parent fractal object 26.
The previous description has concerned the parametric objects of the corresponding application entitled "Method For Constructing Two-Dimensional And Three-Dimensional Graphical Images". The following description is concerned with a particular implementation of such objects, for enabling users to quickly receive such graphical images through a network connection. In addition, the following description is concerned with the use of software tools for constructing such virtual objects at a remote location, such as through a Web site for example.
The principles and operation of a system and a method according to the present invention may be better understood with reference to the drawings and the accompanying description, it being understood that these drawings are given for illustrative purposes only and are not meant to be limiting.
Figure 5 is a schematic block diagram of a system according to the present invention for transmitting images. A system 32 features a user computer 34 for interacting with a user. User computer 34 operates a re-constructor 35 according to the present invention, for constructing a
two or three dimensional image. The image is then displayed by a viewer 36. which is optionally and preferably implemented as software. Collectively, re-constructor 35 and viewer 36 form a client software according to the present invention. The data for the image is preferably received from a remote site 38, which could be a Web site operated by a Web server, for example. Remote site 38 is preferably connected to user computer 34 through a network 40. such as the Internet for example. The user requests a particular image through the client software, or alternatively through a Web browser 42 which is also operated by user computer 34. Remote site 38 then transmits the data required for constructing the image to user computer 34, and more specifically to re-constructor 35, which then constructs the image. Unlike systems which are known in the art, in which remote site 38 sends the images to
Web browser 42 to be displayed with viewer 36, the present invention enables remote site 38 to optionally and preferably send the minimum data required to Web browser 42 for reconstruction by re-constructor 35, before being viewed with viewer 36.
According to preferred embodiments of the present invention, remote site 38 also provides software tools for constructing the image as one or more parametric objects, as previously described. These software tools optionally and preferably enable the user to select various features of a virtual object, or even entire virtual objects, through a graphical user interface (GUI), which may be provided through Web browser 42 for example. The user can then view the image as it is being designed through client software 36. Preferably, the designed image is then available for being retrieved from remote site 38, optionally according to the preferences of the user. For example, the designed image could optionally be a three-dimensional virtual world, which would be available to members of a virtual on-line community, who could retrieve the data for the virtual world from remote site 38, preferably only upon entering the correct password. In addition, the members of the virtual on-line community could also alter, or provide additions to, the virtual world. Such alterations and additions may optionally be controlled through a hierarchy of software tools, which would in turn determine which alterations and/or additions are permitted to the members of the community. For example, certain members may only be permitted to change features of a virtual object such as the windows of a building, but otherwise must adhere to a certain type of building for the virtual object. The control over these changes and/or additions is provided through the hierarchical structure of the virtual objects, in which parent objects control at least a portion of the features of each child object, as implemented by the meaningful and/or primitive controllers of the child object. The software
tools of the present invention are then optionally and preferably designed such that the control provided by the parent object may not be overridden in all circumstances by the child objects. Optionally and more preferably, the virtual world or other image shared by the virtual community contains a plurality of virtual objects which are initially specified according to the hierarchy, such that each virtual object of the image exists from the initiation of the virtual world.
Figure 6 is a flowchart of an exemplary method according to the present invention for displaying an image created with a plurality of hierarchical parametric objects, as previously described in Figures 4 and 5. In step 1, the parent object is first constructed, as it is fully specified from the meaningful and primitive controllers. Optionally and preferably, rather than transmitting all of the information about each controller, only a reference to an entry in a look-up table is transmitted for each controller. The look-up table is preferably already present at the client software program of the user, such that data from each entry is preferably retrieved according to the transmitted reference.
Optionally and preferably, the parent object is constructed according to the following steps. First, the data for the primitive controllers is obtained, for example either from the transmitted data or from a look-up table as described above. Next, the data for the meaningful controllers is obtained, either from the transmitted data or from a look-up table as previously described. Finally, data from the meaningful controllers is used to determine how the elements specified by the primitive controllers are arranged to form the virtual object.
In step 2, the next object in the hierarchy is constructed according to differences from the parent object. Since the data from the parent object is preferably held in memory, the next object in the hierarchy can be more quickly constructed, since only those elements which are different from the parent object require new data to be retrieved and/or calculated. This step is preferably repeated for each level of the hierarchy, until all objects in the hierarchy have been constructed.
According to an optional and preferred embodiment of the present invention, each virtual object is only specified by a serial number. The serial number is then used to reconstruct the virtual object, for example by retrieving the data from look-up tables as previously described. Alternatively, the components of the serial number could optionally be used as seeds for a pseudorandom number generator operated by the user computer as part of the client software. The seeds are fed to the pseudorandom number generator, which produces an output result for
specifying the value of one of the primitive controllers. This process is continued until all of the primitive controllers are specified. Optionally, this embodiment is implemented independently of the hierarchy of parametric objects.
In step 3, the constructed objects are displayed as a completed two or three dimensional image to the user. According to a preferred embodiment of the present invention, the relative location of the user in the virtual space is used to determine how the image is displayed to the user, as explained with regard to Figure 7.
As shown by the painted dots of Figure 7, indicating the parts of the scene which are visible to the user, preferably the position of the user in the virtual space is used to determine which portions of the image are reconstructed for the user at any given moment. For the purposes of clarity, the position of the user is marked by a box labeled as "user position". For example, the image could optionally be that of a building, with a plurality of windows, in a quarter of a city. In this example, the building is assumed to be the second building of the second quarter. Therefore, all of the buildings of the second quarter are reconstructed, but only a portion of the buildings of the first quarter are reconstructed: those buildings which are near the position of the user in virtual space. Only the windows of those buildings which are closest to the user, along with other details, are reconstructed. By contrast, none of the buildings of the third quarter are reconstructed, since they are too far from the user to be visible as part of the virtual world. As the user moves and therefore changes location within the virtual world, the scene may need to be redrawn, with different details reconstructed and displayed, and other details discarded. Thus, the amount of detail which must be rendered and displayed at any given moment is significantly reduced, and more importantly, multiple levels of details for each virtual object are not transmitted and stored, but rather are reconstructed "on the fly" according to the location of the user. Another advantage of reconstructing these virtual objects only as needed, "on the fly", is that the level of detail which is reconstructed and shown may optionally be determined according to factors other than the distance of the user from the virtual object. For example, the relative speed of the point of view of the user through the scene may also optionally be used to determine the level of detail.
The present invention has a number of advantages over the background art, particularly with regard to the amount of storage space and bandwidth which are required for the resultant two-dimensional, or especially three-dimensional images. For example, an average background
art three-dimensional virtual object has about twenty controllers. Such a virtual object is represented by an average set of fifteen graphical objects (primitives). Each graphical object (primitive) requires about twenty figures for representation. This means about 20b of controllers for a virtual object represents about 300b of resultant graphical data. The average ratio of controllers to graphical data for a background art virtual object is about 1 : 15. such that a city might require 60 Mb of graphical representation, or 4 Mb of controllers. Even the use of parametric fractal objects alone does not necessarily solve this problem.
By contrast, the use of hierarchies of parametric fractal objects can significantly reduce the amount of data required to store and/or transmit a particular graphical environment. For example, the previously mentioned city which would require 4 Mb of controllers, could instead be represented with only 20b of controllers through hierarchies, with an average ratio of controllers to graphical image data of 1 :3, 000, 000. Such a significant reduction of the total amount of data which is required to specify an image also leads to a significant reduction in the total bandwidth for downloading the data to a remote user computer. Thus, images which are constructed according to the present invention are clearly more rapidly and efficiently transmitted.
It will be appreciated that the above descriptions are intended only to serve as examples, and that many other embodiments are possible within the spirit and the scope of the present invention.