Dynamic 2D imposters of 3D graphic objects
First Claim
1. A method for dynamically displaying two-dimensional (2D) imposters representing three-dimensional (3D) graphical objects, relative to an arbitrarily movable camera position, wherein each 2D imposter comprises a projection of one of the 3D graphical objects, comprising the steps of:
- (a) predefining locations within a virtual space, wherein each location defines a position at which one of;
(i) a 3D graphical object will be displayed; and
(ii) a 2D imposter will be displayed;
(b) predefining a hierarchical data structure comprising hierarchical groups of imposter data structures to be used in defining the 2D imposters, wherein each imposter data structure is associated with one of the predefined locations within the virtual space, and wherein the hierarchical groups are arranged in a contiguous quad order;
(c) determining a current camera view volume within the virtual space;
(d) determining a common projection location within the current camera view volume as a function of a central location of the predefined locations associated with each hierarchical group of imposter data structures;
(e) generating each of the 2D imposters as a projection of each 3D graphical object positioned at the common projection location within the current camera view volume;
(f) determining 2D imposter locations within the current camera view volume at which 2D imposters will be displayed, the 2D imposter locations being determined as a function of a modulated distance from a current camera position;
(g) forming contiguous sets of imposter data structures associated with predefined locations that are not interrupted by one of;
(i) locations at which 3D graphical objects will be rendered; and
(ii) locations that are outside the view volume; and
(h) invoking a single draw primitive for each contiguous set of imposter data structures to render 2D imposters for each contiguous set of imposter data structures, thereby displaying 2D imposters at the predefined locations.
2 Assignments
0 Petitions
Accused Products
Abstract
2D imposters representing 3D graphical objects, such as virtual spectators in a simulated sports arena, are dynamically displayed at predefined locations relative to an arbitrarily movable camera position in a virtual space. A hierarchical data structure is created with branches corresponding to iteratively subdivided groups of imposter data structures and is used to store polygon vertices, texture data, and other 2D imposter data generated during run-time. Center locations of the hierarchically divided groupings are used to determine a common projection location within a current view volume at which each 2D imposter is projected as an oriented image from each corresponding animated 3D graphical object. Sets of contiguous 2D imposter data are determined based on currently visible groupings of predefined locations that do not require rendering as 3D graphical objects due to their distance from the camera position. Each set of contiguous 2D imposters is rendered with a single draw primitive.
-
Citations
20 Claims
-
1. A method for dynamically displaying two-dimensional (2D) imposters representing three-dimensional (3D) graphical objects, relative to an arbitrarily movable camera position, wherein each 2D imposter comprises a projection of one of the 3D graphical objects, comprising the steps of:
-
(a) predefining locations within a virtual space, wherein each location defines a position at which one of;
(i) a 3D graphical object will be displayed; and
(ii) a 2D imposter will be displayed;
(b) predefining a hierarchical data structure comprising hierarchical groups of imposter data structures to be used in defining the 2D imposters, wherein each imposter data structure is associated with one of the predefined locations within the virtual space, and wherein the hierarchical groups are arranged in a contiguous quad order;
(c) determining a current camera view volume within the virtual space;
(d) determining a common projection location within the current camera view volume as a function of a central location of the predefined locations associated with each hierarchical group of imposter data structures;
(e) generating each of the 2D imposters as a projection of each 3D graphical object positioned at the common projection location within the current camera view volume;
(f) determining 2D imposter locations within the current camera view volume at which 2D imposters will be displayed, the 2D imposter locations being determined as a function of a modulated distance from a current camera position;
(g) forming contiguous sets of imposter data structures associated with predefined locations that are not interrupted by one of;
(i) locations at which 3D graphical objects will be rendered; and
(ii) locations that are outside the view volume; and
(h) invoking a single draw primitive for each contiguous set of imposter data structures to render 2D imposters for each contiguous set of imposter data structures, thereby displaying 2D imposters at the predefined locations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for dynamically displaying two-dimensional (2D) imposters of three-dimensional (3D) graphical objects relative to an arbitrarily movable camera position, wherein each 2D imposter comprises a projection of one of the 3D graphical objects, comprising:
-
(a) a processor;
(b) a display in communication with the processor; and
(c) a memory in communication with the processor, the memory storing machine instructions that cause the processor to carry out a plurality of functions, including;
(i) predefining locations within a virtual space, wherein each location defines a position at which one of;
(1) a 3D graphical object will be displayed; and
(2) a 2D imposter will be displayed;
(ii) predefining a hierarchical data structure comprising hierarchical groups of imposter data structures to be used in defining the 2D imposters, wherein each one imposter data structure is associated with one of the predefined locations within the virtual space, and wherein the hierarchical groups are arranged in a contiguous quad order;
(iii) determining a current camera view volume within the virtual space;
(iv) determining a common projection location within the current camera view volume as a function of a central location of the predefined locations associated with each hierarchical group of imposter data structures;
(v) generating each of the 2D imposters as a projection of each 3D graphical object positioned at the common projection location within the current camera view volume;
(vi) determining 2D imposter locations within the current camera view volume at which 2D imposters will be displayed, the 2D imposter locations determined as a function of a modulated distance from a current camera position;
(vii) forming contiguous sets of imposter data structures associated with predefined locations that are not interrupted by one of;
(1) locations at which 3D graphical objects will be rendered; and
(2) locations that are outside the view volume; and
(viii) invoking a single draw primitive for each contiguous set of imposter data structures to render 2D imposters for each contiguous set of imposter data structures, thereby displaying 2D imposters at the predefined locations that are not interrupted by locations at which 3D graphical objects will be rendered. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification