Object-oriented method and apparatus for rendering a 3D surface image on a two-dimensional display
First Claim
1. In a computer having a memory and a 2D display, a system for rendering on the display an image of a 3D surface, the image being defined by point data stored in the memory, the system comprising:
- (a) subclassable surface object class information, stored in the memory and having segment data logic for generating vertices data from stored point data and for storing the vertices data in the memory, and shard iteration logic for generating a plurality of indices into the stored vertices data, the plurality of indices selecting three vertices defining a shard;
(b) surface object means for constructing a plurality of 3D surface objects from the surface object class information, each surface object corresponding to a chunk of the 3D surface image, each chunk defined by a plurality of shards, wherein each surface object includes means for invoking shard iteration logic peculiar to the surface object class from which it was constructed; and
(c) a rendering object, stored in the memory and havingfirst means for iterating over the surface objects to select one surface object corresponding to a chunk to be rendered, the first means including means for generating a block of vertices data corresponding to the selected surface object,second means for generating 2D display data from the vertices data, third means for invoking the shard iteration logic to retrieve indices defining the plurality of shards for the selected surface image chunk, and fourth means for rendering the shards defining the chunk on the display using the 2D display data and the retrieved shard indices.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system provides an object-oriented framework for rendering three-dimensional surfaces on a two-dimensional display in a flexible manner. The framework comprises two main classes that work together to render discretized data points that represent the three-dimensional graphic objects. The first class is used to construct a surface object which has a first member function that generates vertex information for each of the data points and stores the vertex information in a memory. The surface object also contains a second member function which generates indices into the stored vertex information which indices define shards on the surface which is being rendered. The second class is used to construct a rendering object which calls the first and second member functions in the surface object to first process the vertex data for display and then use the shard indices to retrieve the processed vertex data to render the surface. Vertex data processing is separated from shard processing to increase the efficiency of the rendering process.
92 Citations
21 Claims
-
1. In a computer having a memory and a 2D display, a system for rendering on the display an image of a 3D surface, the image being defined by point data stored in the memory, the system comprising:
-
(a) subclassable surface object class information, stored in the memory and having segment data logic for generating vertices data from stored point data and for storing the vertices data in the memory, and shard iteration logic for generating a plurality of indices into the stored vertices data, the plurality of indices selecting three vertices defining a shard; (b) surface object means for constructing a plurality of 3D surface objects from the surface object class information, each surface object corresponding to a chunk of the 3D surface image, each chunk defined by a plurality of shards, wherein each surface object includes means for invoking shard iteration logic peculiar to the surface object class from which it was constructed; and (c) a rendering object, stored in the memory and having first means for iterating over the surface objects to select one surface object corresponding to a chunk to be rendered, the first means including means for generating a block of vertices data corresponding to the selected surface object, second means for generating 2D display data from the vertices data, third means for invoking the shard iteration logic to retrieve indices defining the plurality of shards for the selected surface image chunk, and fourth means for rendering the shards defining the chunk on the display using the 2D display data and the retrieved shard indices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computer having a memory and a 2D display, a method for rendering on the display an image of a 3D surface, the image being comprised of an image surface segment defined by point data stored in the memory, the method comprising the steps of:
-
(a) storing in the memory subclassable surface object class information having segment data logic for generating vertices data from stored point data and for storing the vertices data in the memory, and shard iteration logic for generating a plurality of indices into the stored vertices data, the plurality of indices selecting three vertices defining a shard; (b) constructing a plurality of 3D surface objects from the surface object class information, each surface object corresponding to a chunk of the 3D surface image, each chunk defined by a plurality of shards, wherein each surface object includes means for invoking shard iteration logic peculiar to the surface object class from which it was constructed; (c) constructing a rendering object in the memory; (d) using the rendering object to select one surface object corresponding to a chunk to be rendered and to invoke the 3D surface object to generate and store vertices data corresponding to the selected surface object; (e) using the rendering object to generate 2D display data from the vertices data; (f) using the rendering object to invoke the shard iteration logic to retrieve indices defining the plurality of shards for the selected surface image chunk; and (g) using the rendering object to render the shards defining the chunk on the display using the 2D display data and the retrieved shard indices. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for use in a computer having a memory and a 2D display, a system for rendering on the display an image of a 3D surface, the image being defined by point data stored in the memory, the computer program product comprising a computer usable medium having computer readable program code thereon including:
-
(a) surface object class code having segment data logic for generating vertices data from stored point data and for storing the vertices data in the memory, and shard iteration logic for generating a plurality of indices into the stored vertices data, the plurality of indices selecting three vertices defining a shard; (b) program code for constructing a plurality of 3D surface objects in the memory from the surface object class information, each surface object corresponding to a chunk of the 3D surface image, each chunk defined by a plurality of shards, wherein each surface object includes program code for invoking shard iteration logic peculiar to the surface object class from which it was constructed; and (c) program code for instantiating a rendering object in the memory, the rendering object having program code for iterating over the surface objects to select one surface object corresponding to a chunk to be rendered, the iterating program code including program code for generating a block of vertices data corresponding to the selected surface object, program code for generating 2D display data from the vertices data, program code for invoking the shard iteration logic to retrieve indices defining the plurality of shards for the selected surface image chunk, and program code for rendering the shards defining the chunk on the display using the 2D display data and the retrieved shard indices. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification