US20070070067A1
2007-03-29
11/412,410
2006-04-26
A controlling device 110 that splits a 3D scene 131 into 3D sub-scenes, each including a sub-volume 133 of the 3D scene 131, and distributes the 3D sub-scenes to multiple rendering devices 120. Each rendering device 120 independently determines a 2D sub-image 141 responsive to its 3D sub-scene and a rendering viewpoint 132. The 2D sub-images 141 are composited using a back-to-front partial ordering with respect to the rendering viewpoint 132.
Get notified when new applications in this technology area are published.
G06T15/00 » CPC main
3D [Three Dimensional] image rendering
G06F3/14 » CPC further
Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements Digital output to display device ; Cooperation and interconnection of the display device with other functional units
G06T9/00 » CPC further
Image coding
G06T15/005 » CPC further
3D [Three Dimensional] image rendering General purpose rendering architectures
G06T2200/16 » CPC further
Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
G06T2210/52 » CPC further
Indexing scheme for image generation or computer graphics Parallel processing
G09G5/363 » CPC further
Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory Graphics controllers
G09G2340/10 » CPC further
Aspects of display data processing Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
G09G2340/12 » CPC further
Aspects of display data processing Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
G09G2360/06 » CPC further
Aspects of the architecture of display systems Use of more than one graphics processor to process data before displaying to one or more screens
Y10S707/99942 » CPC further
Data processing: database and file management or data structures; Database schema or data structure Manipulating data structure, e.g. compression, compaction, compilation
G06T15/40 IPC
3D [Three Dimensional] image rendering; Geometric effects Hidden part removal
1. Field of the Invention
The invention relates to scene splitting for perspective presentations.
2. Related Art
In some applications of computing devices, it is desirable to present a visualization of a scene to a user. Some of these applications include the following:
One problem in the known art is that computing the scene to be presented requires relatively large resources, including both computing power and memory.
Known solutions include breaking up computing the scene into parts, and assigning each of those parts to a separate graphics processor. These separate graphics processors each operate under control of a single controlling processor, which determines how to break up computing the scene into parts. The controlling processor sends each separate graphics processor a set of commands telling the receiver what to render. Each graphics processor generates data showing how to render its part of the scene. This data might be sent back to the controlling processor for presentation, or might be sent on to a presenting device, such as a graphics compositor, a monitor, or a set of monitors.
While this method generally achieves the goal of providing increased resources to render the scene, it still has several drawbacks. One drawback is that it might still take substantial resources to compose a single image for the presentation device, from the distinct sub-images generated by multiple graphics processors. For example, if one of the graphics processors is assigned objects to render that are âbehindâ others, as seen from a selected viewpoint, rendering the 2D (2-dimensional) image for display might involve substantial resources, including such effects as occlusion and partial occlusion, transparency, and reflection.
Some known systems distribute the 3D (3-dimensional) scene for rendering in a relatively simple manner, such as slices of the 3D scene to be rendered, and include specialized hardware as a graphics compositor. These systems include the HP âSepiaâ product and the Orad âDVGâ product. However, specialized hardware can be quite expensive, and is in general not very suitable for flexible configuration of the system.
Other known systems also distribute the 3D scene for rendering in a relatively simple manner, and include software to perform the function of a graphics compositor (either in the controlling device itself, or in a separate processor). However, software solutions are subject to the drawback that they are much slower when the data they work with does not fit into rapidly accessible memory, such as main memory (as opposed to disk drive storage).
Moreover, both hardware and software âflatâ distribution solutions are subject to the drawback that they use substantial network bandwidth, and might involve limitations due to use of that resource.
Other known systems also distribute the 3D scene for rendering in a more complex manner, and a tree or other multi-tiered structure for the rendering processors to deliver their results to a graphics compositor (again, either in the controlling device itself, or in a separate processor). However, multi-tier solutions are subject to the draw-back that they involve substantially greater latency between the time the rendering processor generates its portion of the 3D scene, and when the 3D scenes can be combined into a 2D image capable of being presented.
Accordingly, it would be advantageous to provide methods and systems in which 3D scenes might be rendered, and composed into 2D images, and which are not subject to drawbacks of the known art.
SUMMARY OF THE INVENTIONThe invention provides techniques, embodied in methods and systems, including scene splitting for perspective presentations.
A system embodying the invention includes a controlling device and a set of rendering devices, with the effect that the controlling device can distribute a set of objects to be rendered to the rendering devices. The controlling device splits up the 3D scene to be rendered into a set of 3D sub-scenes, each of which is relatively smaller than the original 3D scene. Each rendering device determines a 2D image in response to the 3D sub-scene assigned to it, and in response to a rendering viewpoint. In one embodiment, elements of a 3D scene are included within an enclosing volume, such as a cube, and a set of 3D sub-scenes are each included within an enclosing sub-volume, such as a smaller cube (i.e., a âcubeletâ) proportional to the entire scene's larger enclosing cube. Each rendering device determines a 3D rendering of the elements in its sub-volume, as seen from that rendering viewpoint. Each rendering device also determines a 2D image of the 3D rendering, as seen from that rendering viewpoint.
Each rendering device sends the 2D image it determines to a compositor, which combines that 2D image with the 2D images from rendering devices in âfrontâ of it with respect to the rendering viewpoint. In various embodiments, the 2D images might be sent for composition in one of several ways, such as one of (a) directly to the controlling device, (b) in a multi-tier hierarchy, such as one determined by the controlling device in response to the rendering viewpoint, (c) a switch coupling rendering devices in response to the rendering viewpoint. A result of compositing the 2D images should be suitable for sending to a presentation device.
After reading this application, those skilled in the art would recognize that the invention provides an enabling technology by which substantial advance is made in the art of rendering scenes.
For example, the invention might be used to provide one or more of, or some combination or extension of, any of the following.
After reading this application, these and other and further uses of the invention would be clear to those skilled in the art.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 shows a block diagram of a system including a controlling device and a set of rendering devices.
FIG. 2 shows a process flow diagram of a method of using a system including a controlling device and a set of rendering devices.
INCORPORATED DISCLOSURESThis application incorporates by reference and claims priority of at least the following documents.
These documents are hereby incorporated by reference as if fully set forth herein, and are sometimes referred to herein as the âincorporated disclosuresâ. Inventions described herein can be used in combination or conjunction with technology described in the incorporated disclosures.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTIn the description herein, a preferred embodiment of the invention is described, including preferred process steps and data structures. Those skilled in the art would realize, after perusal of this application, that embodiments of the invention might be implemented using a variety of other techniques not specifically described, without undue experimentation or further invention, and that such other techniques would be within the scope and spirit of the invention.
Definitions
The general meaning of each of these following terms is intended to be illustrative and in no way limiting.
The scope and spirit of the invention is not limited to any of these definitions, or to specific examples mentioned therein, but is intended to include the most general concepts embodied by these and other terms.
System Elements
FIG. 1 shows a block diagram of a system including a controlling device and a set of rendering devices.
A system 100 includes elements as shown in FIG. 1, plus possibly other elements as described in the incorporated disclosure. These elements include at least a controlling device 110, a set of rendering devices 120, a (conceptualânot shown but understood by those skilled in the art) encompassing volume 130, and a (conceptualânot shown but understood by those skilled in the art) 2D image 140 capable of presentation.
The controlling device 110 includes elements as shown in FIG. 1, plus possibly other elements as described in the incorporated disclosure. These elements include at least a model or database 111, a communication network 112, and a set of rendering commands 113.
The rendering devices 120 each include elements as shown in FIG. 1, plus possibly other elements as described in the incorporated disclosure. These elements include, for each rendering device 120, at least an input port 121, a processor and memory 122, and an output port 123.
As described herein, the encompassing volume 130 includes elements as shown in FIG. 1, plus possibly other elements as described in the incorporated disclosure. These elements include at least the following:
As described herein, the 2D image 140 includes an image responsive to the 3D scene 131 and the rendering viewpoint 132.
After reading this application, it would be clear to those skilled in the art that the 2D image 140 is responsive to at least the following:
As described herein, each rendering device 120, allocated rendering commands for its sub-volume 133, need only compute the 2D sub-image 141 for its own sub-volume 133, responsive to the rendering viewpoint 132. This has the effect of generating a 2D sub-image 141 for each such sub-volume 133.
After reading this application, it would be clear to those skilled in the art that each of the 2D sub-images 141 need only encompass those three faces (for a cubelet) of the sub-volume 142 viewable from the rendering viewpoint 132. That 2D sub-image 141 has a size proportional to O(1/n2), where n is a number of rendering devices 120 on a side of a cubic arrangement thereof.
The system 100 also optionally includes a compositing device 150. The compositing device 150 includes elements as shown in FIG. 1, plus possibly other elements as described in the incorporated disclosure. These elements include at least an input port 151, a compositing element 152, and an output port 153.
The input port 151 is coupled to the 2D sub-images 141, and to the back-to-front partial ordering 142. The compositing element 152 is coupled to the input port 151, and generates the 2D image 140 (as represented by data in memory, storage, or a signal). The output port 153 is coupled to the 2D image 140.
The system 100 also optionally includes a presentation device 160. The presentation device 160 is coupled to the 2D image 140 (as represented by data in memory, storage, or a signal), and is capable of presenting that 2D image 140 to a user 170.
Although the user 170 is shown herein as a person, in the context of the invention, there is no particular requirement that the user 170 is so limited. The user 170 might include a group of people, a computer imaging or motion detection program, an image compression program such as JPEG or MPEG, a system including a broadcast or other distribution system for images, an analysis program for 2D image 140, or even an artificial intelligence program capable of reviewing the 2D image 140.
Method of Operation
FIG. 2 shows a process flow diagram of a method of using a system including a controlling device and a set of rendering devices.
Although described serially, the flow points and method steps of the method 200 can be performed by separate elements in conjunction or in parallel, whether asynchronously or synchronously, in a pipelined manner, or otherwise. In the context of the invention, there is no particular requirement that the method must be performed in the same order in which this description lists flow points or method steps, except where explicitly so stated.
The method 200 includes flow points and process steps as shown in FIG. 2, plus possibly other flow points and process steps as described in the incorporated disclosure. These flow points and process steps include at least the following:
The system 100 uses âSub-Volumesâ to split the 3D scene. These sub-volumes are initially defined by a configuration file (see a sample configuration file be-low). A sub-volume as implemented by the system 100 is presented by a cube (defined in 3 dimensions by xmin, xmax, ymin, ymax, zmin, zmax). The content of each sub-volume is rendered by an individual rendering device 120. The splitting of the 3D-scene happens by assigning each object to at least one sub-volume. The criteria that determines where to assign an individual 3D-object is the spatial overlap between the spatial representation of a 3D object (the âbounding boxâ) and all sub-volumes. The 3D-object will be copied onto all rendering devices 120 that are assigned to the sub-volumes that overlap or enclose the âbounding boxâ of a 3D object. This algorithm makes sure that every rendering device 120 has a copy of at least all the 3D objects it has to render.
Sample Configuration file
VERSION=0.9
CONTEXT_STRATEGY=LAST
RenderNode:
NAME=Render1
IP_ADDRESS=127.0.0.1:24900
SUB_VOLUME={â1,0, â1,1, â1,1}
NAME=Render2
IP_ADDRESS=127.0.0.1:24902
SUB_VOLUME={0,1, â1,1, â1,1}
The parameter of a sub-volume can change dynamically if the controlling device 110 determines a more optimal sub-volume configuration. More optimal is defined by a better load balance of all rendering devices 120. The optimum preferably includes all rendering device 120 needing the same time to render their individual part of a 3D-scene.
The change of the sub-volumes can be expensive (i.e. it takes a long time), because 3D-objects have to be transferred from one rendering device 120 to another. In order to prevent this costly operation, the system 100 implements an optional way of giving a copy of all 3D-objects to all rendering devices 120. In order to prevent an over-load of the memory 122 of the rendering devices 120, the system 100 can write 3D-objects on to a cheaper slower memory with higher capacity (e.g. a hard disk associated with a rendering device 120) of each rendering device 120.
Alternative EmbodimentsAlthough preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention. These variations would become clear to those skilled in the art after perusal of this application.
After reading this application, those skilled in the art will recognize that these alternative embodiments and variations are illustrative and are intended to be in no way limiting. After reading this application, those skilled in the art would recognize that the techniques described herein provide an enabling technology, with the effect that advantageous features can be provided that heretofore were substantially infeasible.
1. A method, including steps of
allocating information representing a three-dimensional scene among a set of sub-scenes;
generating a two-dimensional sub-image for each sub-scene, responsive to a rendering viewpoint;
combining the two-dimensional sub-images, responsive to the rendering viewpoint.
2. A method as in claim 1, including steps of presenting a result of the steps of combining.
3. A method as in claim 1, including steps of sending information representing each sub-scene to a substantially independent computing device.
4. A method as in claim 1, wherein the steps of generating include rendering the sub-scenes substantially concurrently and substantially independently.
5. A method as in claim 1, wherein the sub-images include substantially compact and continuous planar regions.
6. A method as in claim 1, wherein the sub-scenes include substantially compact and continuous spatial regions.
7. A method as in claim 1, wherein the sub-scenes smoothly fill substantially the entire scene.
8. A method as in claim 1, wherein the steps of allocating include steps of
determining a set of rendering commands associated with the scene; and
optimizing the set of sub-scenes with respect to at least one selected parameter.
9. A method as in claim 8, wherein the parameter includes at least one of: a number of rendering commands, an amount of bandwidth for sending rendering commands, an amount of memory for maintaining rendering commands, an amount of time for performing rendering commands.
10. A method as in claim 8, wherein the steps of optimizing include positioning planar borders between sub-scenes.
11. A method as in claim 8, wherein
the sub-scenes include rectilinear sub-objects of a rectilinear object encompassing the scene; and
the steps of optimizing include positioning planar borders between sets of sub-scenes, with the effect of allocating selected spatial regions of the scene to selected sub-scenes.
12. A method as in claim 1, wherein the steps of combining include
determining a partial ordering of the sub-images responsive to the rendering viewpoint; and
combining any overlapping sub-images in response to the partial ordering.
13. A method as in claim 12, wherein the partial ordering is responsive to a back-to-front ordering of the sub-images responsive to the rendering viewpoint.
14. A method as in claim 12, wherein the steps of combining overlapping sub-images include steps of
coupling the sub-images in a hierarchy responsive to the partial ordering; and
combining overlapping sub-images substantially concurrently and substantially independently.
15. A method as in claim 12, wherein the steps of combining overlapping sub-images include steps of
coupling the sub-images using a switch responsive to the partial ordering; and
combining overlapping sub-images substantially concurrently and substantially independently.
16. A method as in claim 1, wherein the steps of generating include steps of, for at least one selected sub-scene
allocating information representing that sub-scene among a set of sub-sub-scenes;
generating a sub-sub-image for each sub-sub-scene, responsive to the rendering viewpoint; and
combining the sub-sub-images, responsive to the rendering viewpoint.
17. A method as in claim 16, wherein the at least one sub-scene is selected responsive to at least one of: a desired fineness of detail, a proximity of the rendering viewpoint to the sub-scene, a rate of change of the sub-scene, a relative range of angles within the sub-scene with respect to the rendering viewpoint.
18. A method as in claim 16, wherein the at least one selected sub-scene is selected responsive to at least one of: a number of rendering commands, an amount of bandwidth for sending rendering commands, an amount of memory for maintaining rendering commands, an amount of time for performing rendering commands.
19. Apparatus including
a set of computing devices, at least one of which takes on the role of a controlling device, and at least one of which takes on the role of a rendering device;
a communication link between the controlling device and one or more rendering devices;
information, at the controlling device, representing a set of objects in a three-dimensional scene and a rendering viewpoint with respect to that scene; and
information, at one such rendering device, representing a two-dimensional sub-image associated with only a portion of that scene;
wherein at least one of those devices takes on the role of a compositing device.
20. Apparatus as in claim 19, wherein that portion of the scene includes a substantially compact and continuous spatial sub-region of the scene.
21. Apparatus as in claim 19, wherein that sub-image includes a substantially compact and continuous planar region.
22. Apparatus as in claim 19, wherein the compositing device includes the controlling device.
23. Apparatus as in claim 19, including information, at the compositing device, representing a back-to-front partial ordering of one or more such sub-images, with respect to the rendering viewpoint.
24. Apparatus as in claim 22, wherein
the compositing device includes more than one computing device taking on the role of a portion of the compositing device;
the portions of the compositing device include a hierarchy responsive to the partial ordering.
25. Apparatus as in claim 22, wherein
the compositing device includes more than one computing device taking on the role of a portion of the compositing device;
the portions of the compositing device include a switch responsive to the partial ordering.