The present invention generally relates to rendering images of three-dimensional objects, and more particularly to hierarchically sorting a plurality of linked objects in a virtual three-dimensional space for efficiently rendering images of the objects.
Today, a shopping mall is provided on a Web page on the Internet. Such a shopping mall may be a virtual three-dimensional world. A number of three-dimensional commodity objects are disposed within a virtual shop object in the shopping mall. In accordance with a virtual three-dimensional image displaying program, a server machine or a client machine may generate images in the virtual three-dimensional shopping mall for displaying. One of the objects within the virtual shopping mall may be linked to another one of the objects by means of a URL.
A conventional virtual three-dimensional image displaying program is operative to dispose objects in a virtual three-dimensional space in accordance with sets of object data representative of three-dimensional shapes and positions of the objects, and to project the objects on a two-dimensional plane in accordance with a field of view of a user in the space to thereby generate corresponding two-dimensional images. When two objects partially overlap with each other as viewed from the user's viewpoint, the images of these objects must be generated so that the overlapping portion of one object which is deeper or farther from the viewpoint hides behind the other object which is shallower or closer to the viewpoint. Meanwhile, when there is disposed a semi-transparent object, the images of the objects must be generated so that the objects behind the semi-transparent object can be seen through the semi-transparent object.
The Z buffer algorithm is typically used in order to properly process relative overlapping of objects as viewed from the viewpoint. In accordance with this algorithm, for rendering the images of objects onto a two-dimensional frame buffer memory, the objects are separated into elemental polygons, and Z-values representative of positions of a plurality of polygons of the objects relative to the viewpoint are stored in a so-called Z buffer. For rendering pixels of two or more object polygons at the same pixel locations onto the two-dimensional frame buffer memory, in accordance with the algorithm, the Z-values of the object polygons are compared with each other and only the pixels of one of the object polygons that is closest to the viewpoint are ultimately stored at the locations. For rendering an image of a semi-transparent object, a so-called alfa blending method is used to render, onto the frame buffer memory, values representative of a color of the pixels of the semi-transparent object blended with colors of the pixels of other object polygons disposed behind the semi-transparent object in accordance with the degree of the transparency of the semi-transparent object.
According to the Z buffer algorithm and the alfa blending method, for rendering the image of the semi-transparent object, the objects must be rendered in order of the distance from farther object polygons to closer object polygons relative to the viewpoint. For this purpose, before the rendering, a so-called Z sorting method is used to first determine the distances of all of the displayed object polygons from the viewpoint and then sort the object polygons in accordance with the distances.
In accordance with one aspect of the present invention, an information processing apparatus displays a plurality of linked objects in a virtual three-dimensional space in accordance with field-of-view data. The information processing apparatus includes control means for generating images of the objects in accordance with the object data and in accordance with the field of view and rendering the generated images onto a two-dimensional frame. The control means hierarchically sorts the objects in accordance with link data which indicates links between the objects, for the rendering.
In an embodiment of the invention, the control means may render the images and/or partial images of the objects in order determined by the hierarchical sorting. The control means may render images and/or partial images of objects of a group of one object and one or more other objects to which the one object is linked, in order of the distance from the viewpoint.
In accordance with another aspect of the invention, an information processing apparatus includes control means for generating images of the objects in accordance with the object data stored in the memory and rendering the generated images onto a two-dimensional frame. The control means renders the image of one object and the image of another object to which the one object is linked. The image of the other object is rendered before the start of or after the end of rendering the one object or between the start and the end of rendering.
In an embodiment of the invention, the control means may render the image or partial images of the one object and the image of the other object in accordance with the distance from the viewpoint.
In accordance with a further aspect of the invention, an object data processing method is for displaying a plurality of linked objects in a virtual three-dimensional space in accordance with field-of-view data. The method includes the step of hierarchically sorting the objects in accordance with link data which indicates links between the objects, the step of generating images of the objects in accordance with the object data and in accordance with the field of view, and the step of rendering the generated images onto a two-dimensional frame in order determined by the hierarchical sorting.
In accordance with a still further aspect of the invention, an object data processing method includes the step of generating images of the objects in accordance with the object data, and the step of rendering the generated images onto a two-dimensional frame. The step of rendering includes rendering the image of one object and the image of another object to which the one object is linked. The image of the other object is rendered before the start of or after the end of rendering the one object or between the start and the end of rendering.
In an embodiment of the invention, the methods above may be implemented in the form of programs which can be executed by an information processing apparatus.
According to the invention, a plurality of linked three-dimensional objects can be sorted in an advantageous manner, and images of a plurality of linked three-dimensional objects can be efficiently rendered. According to the invention, not all polygon surfaces are required to be sorted.
In the conventional algorithm above, when a number of objects are arranged in a virtual three-dimensional space, a long time and a large memory resource are required to sort object polygons thereof. Thus the sorting may not be desirable for real-time displaying of three-dimensional images.
The inventors have recognized that hierarchical sorting of a plurality of linked three-dimensional objects can provide efficient rendering of images of the objects.
An object of the present invention is to efficiently render images of a plurality of three-dimensional objects.
Another object of the invention is to sort a plurality of linked three-dimensional objects in an advantageous manner to render images of the objects.
The information processing apparatus 100 displays, on the display device 106, a plurality of linked three-dimensional objects which are arranged in a virtual three-dimensional space.
A three-dimensional object is formed of one or more polygon surfaces, each polygon surface typically having an outer side surface and an inner side surface. A curved surface may be expressed typically by a plurality of polygon surfaces.
A three-dimensional object is formed by one or more polygons, and visually represents, in a virtual three-dimensional space, any item of information content handled as a unit, such as a single text document, a document containing text and graphics, an image, a stream of motion pictures, a three-dimensional image made up of a plurality of parts, an audio stream or the like.
The network 50 typically consists of the Internet, a local area network (LAN), a telephone network including a mobile communication network, a cable, TV network, a power line carrier communication network, a fiber optic network and/or the like.
The controller 103 includes a CPU, a RAM 122 and a ROM. The controller 103 operates in accordance with programs stored in the program memory 112, such as a browser program to implement the browser function. The controller 103 may be a processor, the browser function of which is implemented in the form of an integrated circuit. The object data manager 104 may be implemented as a processor which operates in accordance with a program for object data management, or as a processor which has a function of the management implemented in the form of an integrated circuit.
When content data is required for displaying an object, the controller 103 captures the content data from the Web server 200 via the network interface 127 over the network 50 and provides the captured content data to the object data manager 104. The controller 103 may capture the required content data from the information storage device 107. The object data manager 104 stores the captured object data set in the object data memory 113 and manages the object data set.
The input device 101 provides, to the controller 103, input data such as a URL and field-of-view data in response to operation by a user. Upon receipt of the field-of-view data, the controller 103 holds the field-of-view data, and updates the field-of-view data in accordance with user's input data.
For generating a displayed image, the controller 103, in accordance with the object data set stored in the object data memory 113, generates in real time an object image which changes as the field-of-view moves, and displays the object image on the display device 106.
In
As described later in greater detail, it is possible to efficiently render the images of the plurality of linked objects onto a frame memory area of the RAM 122 in accordance with the hierarchically-layered objects.
The controller 103 captures the object data set of an initial object and the object data sets of other subsequent objects which are directly or indirectly linked to the initial object via the network 50 or from the information storage device 107 in accordance with a URL entered by a user, and stores the captured object data sets in the object data memory 113 via the object data manager 104. After that, the controller 103 generates and renders the images of the objects in accordance with the flow chart of
At Step 402, the controller 103 acquires data of a viewpoint and a field of view that is entered through the input device 101, for example a mouse, and moves the viewpoint and the field of view relative to the virtual three-dimensional space in accordance with the data.
At Step 404, in accordance with the viewpoint and the field of view, the controller 103 determines positions of the respective objects in the virtual three-dimensional space in accordance with the respective object data sets 30 stored in the object data memory 113, and generates two-dimensional images of the respective objects and stores them in the RAM 122. For this purpose, when a required object data set has not been stored yet in the object data memory 113, the controller 103 captures the required object data set into the object data memory 113 via the network interface 127 or from the information storage device 107.
At Step 406, in accordance with the subroutine shown in
In the flow chart shown in
At Step 408, the controller 103 determines whether the field of view has been moved, i.e., whether the viewpoint and field of view data have been updated by the user. If the field of view has been moved, the procedure returns to Step 402. Thus, Steps 402 through 406 are repeated while the viewpoint and the field of view keep moving. When the field of view has not been moved, the procedure advances to Step 412.
At Step 412, the controller 103 determines whether it has received user's input data after a predetermined delay time (e.g., one second). If it has received the input data, the procedure advances to Step 414. When it has received no input data, the procedure returns to Step 412. Thus, the controller 103 waits for receipt of new input data.
At Step 414, the controller 103 determines whether the input data corresponds to a termination command. If the input data corresponds to the termination command, the procedure exits from the routine of
Steps 402 through 414 are executed at a rate of thirty or more times per second, to thereby generate sixty frames per second.
As shown in
As shown in
The flow chart in
At Step 502, the controller 103 retrieves the image data set of a starting or current object from the RAM 122. This image data set has been generated in accordance with the three-dimensional shape data (31 in
At Step 504, the controller 103 renders a front or visible side surface of one of one or more polygon surfaces of the current object that is deepest or farthest from the viewpoint. In the example in
At Step 506, the controller 103 puts into a queue all of the link data sets contained in the object data set of the current object, in order of the depth or farness from the viewpoint. In the example in
At Step 508, the controller 103 determines whether there is a remaining link data set in the queue that indicates a link to another object which has not been rendered yet. If it determined that there is such a remaining link data set, the procedure advances to Step 510. If it is determined that there is no remaining link data set, the procedure advances to Step 514. In the example in
At Step 510, the controller 103 retrieves one of the remaining link data sets from the queue in the order. In the example in
At Step 512, the controller 103 retrieves from the RAM 122 the image data set of the object to be, linked to in accordance with the retrieved link data set, to thereby render an image of the object. For this purpose, the controller 103 first renders a front side surface of a farther polygon surface of the object from the viewpoint, and then renders a front side surface of a closer polygon surface thereof relative to the viewpoint. In the example in
In a similar manner, Steps 508 through 512 are repeated for the number of times corresponding to the number of the remaining link data sets in the queue, to thereby render the images of the remaining objects to be linked to the starting object. In the example in
At Step 514, the controller 103 renders the front side surface of one of the polygon surfaces of the starting object that is closer to the viewpoint. In the example in
In the manner described above, in accordance with the flow chart shown in
At Step 512, for rendering an image of one object which is linked to another object, the controller 103 separately executes the subroutine from Steps 502 to 514, assuming the one object as a new starting object. Thus the subroutine at Step 512 is nested. Thus an image of the other object linked to the new starting object is rendered between the first rendering of the front side surface of the farther polygon surface of the new starting object and the final rendering of the front side surface of the closer polygon surface of the new starting object.
In the example in
Referring to
At Step 502, the controller 103 retrieves the image data set of the box 611 from the RAM 122. This image data set has been generated in accordance with the shape data in the object data set 311 in
At Step 504, the controller 103 renders three inner side surfaces 6111, 6112 and 6113 of three respective deeper polygon surfaces of the box 611, as shown in
At Step 506, the controller 103 puts into a queue three link data sets 221, 223 and 222 within the object data set 311 of the box 611 in this order that indicate respective links to the sphere 621, the circular cylinder 623 and the sphere 622, respectively.
At Step 508, the controller 103 first determines that there remain in the queue the link data sets 221, 223 and 222 that indicate the links to the respective objects which have not yet been rendered, and hence the procedure advances to Step 510.
At Step 510, the controller 103 retrieves a first link data set 221 from the queue.
At Step 512, the controller 103 retrieves, from the RAM 122, the image data set of the sphere 621 which is linked by the link data set 221, and renders the image of the sphere 621 as shown in
Similarly, Steps 508 through 512 are reiteratively executed for the circular cylinder 623 and the sphere 622, and the images of the circular cylinder 623 and the sphere 622 are rendered in the order as shown in
At Step 514, the controller 103 renders outer side surfaces 6114 and 6115 of closer ones of polygon surfaces of the box 611 as shown in
It will be understood that execution of the flow chart in
In the flow chart in
Thus the images of subsequent objects to which one object is linked are rendered sequentially. For rendering an image of a current object linked to be linked from, an image of a subsequent object to be linked thereto is required to be rendered before or after the rendering of the image of the current object or in the course of the rendering. In other words, the images of the objects are locally depth-sorted in accordance with the links between the objects.
By sorting the objects hierarchically as described above, the images of the objects are efficiently rendered. Thus not all polygon surfaces of all objects may be required to be sorted. In the examples described above, however, complex arrangement is not shown such that two objects intersect each other in a three-dimensional space. In such complex arrangement, each object may be divided into two object portions along an intersecting polygon surface, and the object portions may be sorted hierarchically together with other objects.
The above-described embodiments are only typical examples, and their modifications and variations are apparent to those skilled in the art. It is apparent that those skilled in the art can make various modifications to the above-described embodiments without departing from the principle of the invention and the accompanying claims.
This application is a continuing application, filed under 35 U.S.C. §111 (a), of International Application PCT/JP01/09052, filed Oct. 15, 2001.
Number | Name | Date | Kind |
---|---|---|---|
5280568 | Obata | Jan 1994 | A |
5363475 | Baker et al. | Nov 1994 | A |
5977977 | Kajiya et al. | Nov 1999 | A |
6326964 | Snyder et al. | Dec 2001 | B1 |
Number | Date | Country |
---|---|---|
3-071277 | Mar 1991 | JP |
5-035883 | Feb 1993 | JP |
5-174123 | Jul 1993 | JP |
6-119462 | Apr 1994 | JP |
6-203172 | Jul 1994 | JP |
9-305791 | Nov 1997 | JP |
Number | Date | Country | |
---|---|---|---|
20040183797 A1 | Sep 2004 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP01/09052 | Oct 2001 | US |
Child | 10817006 | US |