US RE42406 E1 Abstract A system, method, and apparatus is disclosed for creating a three-dimensional visual representation of an object having multiple resolutions by retrieving a vertex list for the object, determining a collapse order for the vertices identified in the vertex list, reordering the vertices identified in the vertex list responsive to the determined collapse, order, and creating a vertex collapse list responsive to the collapse order, where the vertex collapse list specifies, for a target vertex, a neighbor vertex to collapse to. The vertex list may comprise 3D coordinates of vertices without referring to other vertex attributes or, in alternate embodiments, the vertex list may refer to other vertex attributes such as colors or normals. A runtime manager is disclosed which dynamically manages the polygon counts for objects and frames based upon the location, velocity, and area of the object. Polygon counts are also adjusted based upon a target frame rate and a target polygon count. A system is also disclosed for continuous transfer of data across a remote connection in which different levels of resolution are transmitted individually.
Claims(35) 1. A method for creating a three-dimensional visual representation of an object having multiple resolutions, comprising the steps of:
retrieving coordinates of vertices for the object;
determining, using a processing device, a collapse order for the vertices identified in theof a vertex list for the object, across all levels of detail of the object;
reorderingordering the vertices identified in the vertex list responsive to the determined collapse order;
creating, using the processing device, a vertex collapse list responsive to the collapse order, wherewherein the vertex collapse list specifies, for aeach target vertex, a neighbor vertex of the object to which the target vertex collapse to collapses, for at least one level of detail of the object, and wherein each vertex collapse operation at a respective level of detail collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective level of detail;
specifying a level of detail at which the object is to be rendered;
using the vertex collapse list and a level of detail to identify at least one display vertex of the object; and
rendering the display vertex to produce a three-dimensional visual representation of the object at the specified level of detail using the vertex list and the vertex collapse list.
2. The method of
determining a set of collapse paths available at a level of detail;
selecting a collapse path from the set of collapse paths;
computing a visual distortion factorfactors for the selectedeach collapse path in the set of collapse paths; and
responsive to the computed visual distortion factors, determining a collapse value for the selectedeach collapse path in the set of collapse paths;
repeating selecting a collapse path, computing visual distortion factors, determining a collapse value for each collapse path;
selecting a next vertex to be collapsed as a vertex having a collapse path causing the least visual distortion to the object;
collapsing the next vertex to be collapsed along the corresponding collapse path; and
repeating the above steps until a minimum resolution level is attained.
3. TheA method of
determining, using a processing device, a collapse order for vertices of the object, comprising:
determining a set of collapse paths;
computing a visual distortion factors comprises the steps offactor for each collapse path in the set of collapse paths, including:
computing an area change factor for the selectedeach collapse path;
computing an angular deviation factor for the selectedeach collapse path; and
computing a local volume change factor for the selectedeach collapse path; and
responsive to the computed visual distortion factors, determining a collapse value for each collapse path in the set of collapse paths;
ordering the vertices in a vertex list responsive to the determined collapse order;
creating, using the processing device, a vertex collapse list responsive to the collapse order, where the vertex collapse list specifies, for a target vertex, a neighbor vertex of the object to which the target vertex collapses;
specifying a level of detail at which the object is to be rendered; and
rendering a three-dimensional visual representation of the object at the specified level of detail using the vertex collapse list.
4. The method of
computing an area of the object after collapsing thea first target vertex along thea first collapse path; and
subtracting the computed area from an area of the object prior to the collapse.
5. The method of
computing a volume of the object after collapsing thea first target vertex along thea first collapse path; and
subtracting the computed volume from a volume of the object prior to the collapse.
6. The method of
selecting the first target vertex to be an apex for a pyramid;
forming a base of the pyramid from a triangle connecting three consecutive neighbor vertices to the first target vertex;
computing a volume of the pyramid;
constructing a next pyramid from a next set of three consecutive neighbor vertices;
computing a volume of the next pyramid;
repeating the constructing a next pyramid and computing a volume steps for all unique three consecutive neighbor vertex sets; and
summing the volumes of the pyramids to obtain a volume of the object.
7. The method of
8. The method of
9. The method of
selecting a first target vertex;
receiving input specifying a maximum number of neighbor vertices for a target vertex;
identifying a number of neighbor vertices, responsive to thea received input; and
determining a plurality of collapse pathpaths responsive to coordinates of the first target vertex and an identified neighbor vertex;
repeating the determining step for allthe identified number of neighbor vertices;
repeating the selecting a target vertex, identifying, determining, and repeating steps for a plurality of vertices.
10. The method of
responsive to selecting a collapse path, displaying the object prior to collapsing the object along the selected path;
collapsing the object along the specified path;
displaying the object after being collapsed along the specified path;
responsive to receiving an input selecting the collapse path, storing the collapse path and corresponding vertex on the collapse order list as the next vertex to be collapsed.
11. The method of
12. The method of
ordering the resolution levels from highest to lowest resolution;
selecting a highest resolution level for collapsing; and
thewherein determining a collapse order step comprises determining a collapse order for vertices of the highest selected resolution level, wherein vertices in the next lowest resolution level are not collapsed; and
repeating the selecting and determining steps for each resolution level.
13. The method of
14. The method of claim
213 wherein each of the vertices have coordinates in ahas texture map, further comprising the steps ofcoordinates, and the rendering comprises:
responsive to a selected collapse path collapsing a first vertex into a second vertex to create a new vertex, and assigning the texture map coordinates of the second vertex toprior to collapsing the first vertex into the second vertex as the texture map coordinates of the second vertex after collapsing the first vertex into the newsecond vertex;
responsive to the first and second vertex being on an edge of a texture discontinuity, identifying the collapse path as a collapse path not to be used.
15. The method of claim
213 wherein each of the vertices have coordinates in ahas normal map, further comprising the steps ofcoordinates, and the rendering comprises:
responsive to a selected collapse path collapsing a first vertex into a second vertex to create a new vertex, and assigning the normal map coordinates of the second vertex toprior to collapsing the first vertex into the second vertex as the normal map coordinates of the second vertex after collapsing the first vertex into the newsecond vertex.
16. The method of claim
213 wherein each of the vertices have coordinates in ahas color map, further comprising the steps ofcoordinates, and the rendering step comprises:
responsive to a selected collapse path collapsing a first vertex into a second vertex to create a new vertex, and assigning the color map coordinates of the second vertex toprior to collapsing the first vertex into the second vertex as the color map coordinates of the second vertex after collapsing the first vertex into the newsecond vertex; and
responsive to the first and second vertex being on an edge of a color discontinuity, identifying the collapse path as a collapse path not to be used.
17. A method for displaying an object, wherein a vertex list and a neighbor list is stored for the object, and vertices in the vertex list are identified by a collapse priority and the neighbor list identifies the path of a collapse for the vertices, comprising the steps of:
performing, using a processing device, a collapse of the object responsive to thea vertex list and a neighbor list for the object,
wherein vertices in the vertex list for the object are arranged in a collapse priority, across all levels of detail of the object,
wherein the neighbor list specifies, for each target vertex in the vertex list, a neighbor vertex of the object to which the target vertex collapses, for at least one level of detail of the object, and wherein each vertex collapse operation at a respective level of detail collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective level of detail, and
wherein following the collapse the object is in a first collapse level;
storing vertex, in memory associated with the processing device, information for each collapse levelrelating to the collapse, wherein the vertex information indicates which vertices exist inof the object exist in thea second collapse level immediately higher and lowerhaving at least one more vertex than the currentfirst collapse level and in a third collapse level having at least one fewer vertex than the first collapse level;
receiving input requesting a collapse level for the object;
responsive to the requesteda request for a collapse level requiring a higher resolutionmore vertices than a currentthe first collapse level, automatically adding vertices toa vertex from the vertex list for the object responsive to the vertex list and the stored vertex information;
responsive to the requesteda request for a collapse level requiring a lower resolutionfewer vertices than a currentthe first collapse level, automatically collapsing verticesa vertex in the vertex list offor the object responsive to the vertex list and the stored vertex information; and
automatically rendering the vertices in the vertex list for each requested collapse level to produce a three-dimensional visual representation of the object.
18. The method of
storing extended collapse information, wherein the extended collapse information includes triangle connectivity information for theat least some of the vertices.
19. A method for displaying an object, wherein a vertex list and a neighbor list is stored for the object, and vertices in the vertex list are identified by a collapse priority, and the neighbor list identifies the path of a collapse for the vertices, comprising the steps of:
performing a collapse of the object responsive to the vertex list and neighbor list;
storing vertexin memory information for each collapse level, wherein the vertex informationregarding a collapse of the object,
wherein the object includes a vertex list and a neighbor list,
wherein vertices in the vertex list are arranged in a collapse priority, across all resolutions of the object,
wherein the neighbor list specifies, for each target vertex in the vertex list, a neighbor vertex of the object to which the target vertex collapses, for at least one resolution of the object, and wherein each vertex collapse operation at a respective resolution of the object collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective resolution of the object, and
wherein the information indicates which vertices of the vertex list exist in the object in theat a collapse level immediately higher and lower than thea current collapse level of the object;
analyzing the object using a processing device to determine athe current collapse level of the object; and
responsive to the determined collapse levela determination requiring the object to be rendered at a resolution higher than a resolution of the current collapse level, adding vertices toa vertex from the vertex list for the object responsive to the vertex list and stored vertex information; and
responsive to the determined collapse levela determination requiring the object to be rendered at a resolution lower than the resolution of the current collapse level, collapsing verticesa vertex in the vertex list for the object responsive to the vertex list and stored vertex information; and
automatically rendering the vertices in the vertex list for the required resolution to produce a three-dimensional visual representation of the object.
20. The method of
determining a velocity of the object; and
determining a projected area of the object.
21. The method of claim
2019 wherein the step of analyzing the object further comprises:
determining the number of polygons currently being displayed;
comparing the determined number of polygons to a predefined target number of polygons; and
responsive to a determination that the number of polygons currently being displayed beingis less than the predefined target number, adding polygons to the objecta vertex from the vertex list for the object.
22. The method of
determining a current frame rate;
comparing the current frame rate to a predefined frame rate; and
responsive to a determination that the current frame rate beingis less than the predefined frame rate, collapsing vertices in the objecta vertex in the vertex list for the object.
23. A method for transferring data across a remote connection, in a system in which a minimal resolution of an object is stored and separate packets of information comprising data for creating higher resolutions of the object are stored, comprising the steps of:
receiving as input to a processing device a request for a transmission of anthe object to be displayedat a target resolution version of the object;
transmitting, using the processing device, via a remote connection, a minimal resolution version of the object responsivein response to receiving the received request; and
selectively transmitting, using the processing device, via the remote connection, a separate, successive packet of information comprising data for creating acomprising the vertices required to increase a collapse level of the object to a respective, predetermined, next higher resolution version of the object in response to a respective determination that the target resolution version of the object has not been met;
determining whether a target resolution of the object has been met; and
responsive to a target resolution of the object not being met, repeating the transmitting a packet of information comprising data for creating a next higher resolution version of the object step.
24. The method of claim 2, wherein computing a visual distortion factor comprises:
computing an area change factor for each collapse path; computing an angular deviation factor for each collapse path; and computing a local volume change factor for each collapse path. 25. The method of claim 24, wherein computing an area change factor for each collapse path further comprises:
computing an area of the object after collapsing a first target vertex along a first collapse path; and subtracting the computed area from an area of the object prior to the collapse. 26. The method of claim 24, wherein computing a volume change factor for each collapse path comprises:
computing a volume of the object after collapsing a first target vertex along a first collapse path; and subtracting the computed volume from a volume of the object prior to the collapse. 27. The method of claim 26, wherein computing a volume further comprises:
selecting the first target vertex to be an apex for a pyramid; forming a base of the pyramid from a triangle connecting three consecutive neighbor vertices to the first target vertex; computing a volume of the pyramid; constructing a next pyramid from a next set of three consecutive neighbor vertices; computing a volume of the next pyramid; repeating the constructing a next pyramid and computing a volume for all unique three consecutive neighbor vertex sets; and summing the volumes of the pyramids to obtain a volume of the object. 28. The method of claim 23, further comprising:
storing the minimal resolution version of the object and the separate packets of information in memory. 29. The method of claim 23, wherein the target resolution version of the object is intermediate of the minimal resolution version of the object and a maximum resolution version of the object.
30. A method for creating a three-dimensional visual representation of an object, comprising:
determining, using a processing device, a collapse order for vertices of the object, wherein said determining the collapse order comprises:
determining a set of collapse paths available at a level of detail, including:
selecting a first target vertex;
identifying a number of neighbor vertices, responsive to a received input; and
determining a plurality of collapse paths responsive to coordinates of the first target vertex and the identified number of neighbor vertices;
computing a visual distortion factor for each collapse path in the set of collapse paths; and
responsive to the computed visual distortion factors, determining a collapse value for each collapse path in the set of collapse paths;
ordering the vertices of the object in a vertex list responsive to the determined collapse order; creating, using the processing device, a vertex collapse list responsive to the collapse order, wherein the vertex collapse list specifies, for each target vertex, a neighbor vertex of the object to which the target vertex collapses, for at least one level of detail of the object, and wherein each vertex collapse operation at a respective level of detail collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective level of detail; specifying a level of detail at which the object is to be rendered; and automatically rendering a three-dimensional visual representation of the object at the specified level of detail using the vertex list and the vertex collapse list. 31. An apparatus for creating a three-dimensional visual representation of an object, comprising:
a processing device configured to:
determine a collapse order for vertices of a vertex list for the object, across all levels of detail of the object;
order the vertices in the vertex list responsive to the determined collapse order;
create a vertex collapse list responsive to the collapse order, wherein the vertex collapse list specifies, for each target vertex, a neighbor vertex of the object to which the target vertex collapses, for at least one level of detail of the object, and wherein each vertex collapse operation at a respective level of detail collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective level of detail;
receive input specifying a level of detail at which the object is to be rendered; and
responsive to the received input, render a three-dimensional visual representation of the object at the specified level of detail using the vertex list and the vertex collapse list.
32. A non-transient computer-readable storage medium having stored thereon computer executable instructions, execution of which by a processing device causes the processing device to perform operations for creating a three-dimensional visual representation of an object, the operations comprising:
determining a collapse order for vertices of a vertex list for the object, across all levels of detail of the object; ordering the vertices in the vertex list responsive to the determined collapse order; creating a vertex collapse list responsive to the collapse order, wherein the vertex collapse list specifies, for each target vertex, a neighbor vertex of the object to which the target vertex collapses for at least one level of detail of the object, and wherein each vertex collapse operation at a respective level of detail collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective level of detail; specifying a level of detail at which the object is to be rendered; and rendering a three-dimensional visual representation of the object at the specified level of detail using the vertex list and the vertex collapse list. 33. An apparatus for creating a three-dimensional visual representation of an object, comprising:
a processing device configured to:
determine a collapse order for vertices of the object, including:
determining a set of collapse paths available at a level of detail, including:
selecting a first target vertex;
identifying a number of neighbor vertices, responsive to a received input; and
determining a plurality of collapse paths responsive to coordinates of the first target vertex and the identified number of neighbor vertices;
computing a visual distortion factor for each collapse path in the set of collapse paths; and
responsive to the computed visual distortion factors, determining a collapse value for each collapse path in the set of collapse paths;
order the vertices of the object in a vertex list responsive to the determined collapse order;
create a vertex collapse list responsive to the collapse order, wherein the vertex collapse list specifies, for each target vertex, a neighbor vertex of the object to which the target vertex collapses, for at least one level of detail of the object, and wherein each vertex collapse operation at a respective level of detail collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective level of detail;
receive input specifying a level of detail at which the object is to be rendered; and
in response to the received input, automatically render a three-dimensional visual representation of the object at the specified level of detail using the vertex list and the vertex collapse list.
34. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, execution of which by a processing device causes the processing device to perform operations for creating a three-dimensional visual representation of an object, the operations comprising:
determining a collapse order for vertices of the object, wherein said determining the collapse order comprises:
determining a set of collapse paths available at a level of detail, including:
selecting a first target vertex;
identifying a number of neighbor vertices, responsive to a received input; and
determining a plurality of collapse paths responsive to coordinates of the first target vertex and the identified number of neighbor vertices;
computing a visual distortion factor for each collapse path in the set of collapse paths; and
ordering the vertices of the object in a vertex list responsive to the determined collapse order; creating a vertex collapse list responsive to the collapse order, wherein the vertex collapse list specifies, for each target vertex, a neighbor vertex of the object to which the target vertex collapses, for at least one level of detail of the object, and wherein each vertex collapse operation at a respective level of detail collapses a respective target vertex to a neighbor vertex directly connected to the target vertex at the respective level of detail; specifying a level of detail at which the object is to be rendered; and automatically rendering a three-dimensional visual representation of the object at the specified level of detail using the vertex list and the vertex collapse list. 35. The method of claim 1, wherein, in said determining a collapse order, each vertex of the object has a fixed coordinate offset relative to each other vertex of the object across all levels of detail of the object.
Description This application is a continuation of U.S. patent application Ser. No. 09/243,099, filed on Feb. 2, 1999, which claims priority under 35 U.S.C. §119(e) from U.S. provisional patent application serial No. 60/089,794, filed on Jun. 18, 1998. 1. Field of the Invention This invention relates to the field of generating three-dimensional graphics; more specifically, to the field of generating multiple resolutions of an object in a three-dimensional environment. 2. Background of the Invention Realistic three-dimensional object rendering for use in games and other software applications has been the goal for software and hardware makers in the computer industry for years. However, numerous problems prevent the achievement of realistic three-dimensional object rendering on a typical user's home computer. Three-dimensional graphics use polygons to create the object to be rendered. These polygons are created and manipulated to portray curvature and details of the object. The more polygons used to create an object, the more detailed and realistic an object will appear. However, the more polygons used to create an object, the more computations required to render the object, thus slowing down the speed at which the object is rendered. Thus, there is a tradeoff from the developer's standpoint between speed and realism. The resolution of this problem is not easy. As most users do not have the latest, most powerful personal computer, the developer must design the objects for the lowest common denominator if the developer wants to reach the greatest number of potential users for the product. Thus, the developer must assume the user's processor is slow and is therefore capable of only rendering a small number of triangles per second. Therefore, the developer, when making the tradeoff described above, must favor the speed side of the equation, and design objects with fewer triangles than if faster machines were being used by all users. This solution, however, pleases neither the user with a low-end computer nor the user with the high-end computer. The user with the low-end computer will most likely still have images which are slow and choppy, because the developers are unwilling to completely sacrifice realism, and the user with a high-end computer will have images which appear artificial and robotic because the application is not designed to take advantage of the high-end machine's greater processing power. In fact, on some high-end systems, the application will be too fast to play or interact with because the polygon count is too low. Another problem facing the developer is the fact that the same object requires more detail when closer to the screen than it requires if it is in the background. When an object is closer to the screen, the angles and straight edges of the polygons comprising the object can be seen more clearly. At this point, more polygons are needed to smooth the angles and continue the realistic rendering of the object. However, the most detailed version of the object cannot always be used to render the object because the application will require too much computing power to quickly and smoothly render images on the screen. In order to achieve smooth 3D animation, the processor must render 3D objects at 20 to 60 frames per second. If too many polygons are used for each object, thus providing the necessary realism for the object when it is close to the screen, then the processor will not be able to achieve the above minimum frame rate required for smooth rendering. One solution to allow realistic rendering of three-dimensional objects while also limiting the number of polygons on the screen is to use Level of Detail mapping. Level of Detail mapping provides different levels of resolutions of an object based upon the distance of the object to the screen. In order to create the different levels of detail, the developer must create different versions of the object for each level required. Typically, only three or four levels are used because storage of multiple versions of each object to be rendered can consume too much of the user's system resources. There are several drawbacks to the level of detail methodology. First, this method has a large impact on system resources, as described above. Each object now requires three or four times more storage space than previously required to store each version of the object. Each level requires a separate vertex list as well as a separate data structure. Second, when transitioning from one level to another, an effect known as object popping occurs. The higher detailed version of an object is abruptly rendered as the object moves towards the screen, and “pops” out at the viewer, ruining the 3D immersive qualities of the application. The level of detail method also requires extra authoring of each version of the object, requiring more time from the developer. Level of Detail also does not address the lowest common denominator problem described above. The highest level of detail of each object must be created in consideration of the user with an inefficient computer who will be using the application. Thus, the highest level of detail cannot contain too many polygons or the image will appear slow and choppy on the low-end user's computer. Again, this image will also appear angular and robotic on the high-end user's computer, as it does not take advantage of the high-end computer's greater processing power. In accordance with the present invention, an apparatus, system, and method is disclosed for producing realistic rendering of a 3D object while minimizing the use of user system resources and maximizing fidelity without sacrificing speed. The invention produces a continuous level of detail of an object using vertex merging responsive to the location of the object on the screen and other factors, thus eliminating the object popping effect. As the object moves towards the background, and therefore requires less polygons in order to provide a realistic rendering, vertices of the object are merged together in a manner designed to cause the least visual distortion. As the vertices are merged, polygons within the object are eliminated, thus lowering the polygon count of the object continuously as it moves farther and farther away from the screen. As an object moves towards the screen, vertices are added to the object, adding polygons to the object and thus providing a more realistic representation of the object as it grows close to the user and fine details become necessary. Thus, at any given moment, every object on the screen only has as many polygons as is required to provide a realistic rendering of the object. No polygons are being unnecessarily drawn, and thus optimum use is being made of the user's system. No object-popping effects are created as polygons are added or removed from the object on a continual basis based on the object's movement in the 3D environment. Additionally, the invention requires only one version of the object to be authored and stored on the user's system, thus minimizing the impact on system resources. One vertex list is used which preferably specifies the highest level of detail, and the system in accordance with the present invention is able to then generate the continuous level of detail of the object for display on the screen. Also, the system advantageously increases and decreases the resolution of the objects on the fly. Thus, as only the current level of detail being displayed is stored, minimal use of memory is required. By storing certain minimum information which is determined prior to run-time to guide the resolution changes, the resolution changing is performed at run time at optimal speed. Another benefit of the present invention is its ability to allow a developer to tweak the vertex merging in accordance with the developer's own preferences. Finally, the invention automatically adjusts the amount of polygons in a screen responsive to the capabilities of a user's system, providing an optimal image for every user. In one embodiment, the invention monitors the system to determine the frame rate at which the frames are being rendered, and adjusts the total amount of polygons allowable on the screen at one time accordingly. Additionally, a target frame rate may be set, which allows the user to specify the speed at which the scenes should be rendered. The present invention then dynamically adjusts the total amount of polygons to ensure the frame rate is maintained. Alternatively, the invention allows a polygon count to be specified, and then ensures that this amount of polygons is always on the screen, regardless of the frame rate. In a preferred embodiment, a three-dimensional visual representation of an object having multiple resolutions is created by retrieving a vertex list for the object, determining a collapse order for the vertices identified in the vertex list, reordering the vertices identified in the vertex list responsive to the determined collapse order, and creating a vertex collapse list responsive to the collapse order, where the vertex collapse list specifies, for a target vertex, a neighbor vertex to collapse to. The vertex list may comprise 3D coordinates of vertices without referring to other vertex attributes or, in alternate embodiments, the vertex list may refer to other vertex attributes such as colors or normals. More specifically, in a preferred embodiment, the collapse order of the object is determined by determining an optimal collapse path from the set of collapse paths, computing visual distortion factors for the selected collapse path, determining a collapse value for the selected collapse path, repeating for each path in the set of collapse paths, comparing the collapse values to determine a collapse path causing a least visual distortion to the object, selecting a next vertex to be collapsed, collapsing the object along the selected path, and repeating until a minimum resolution level is attained. In The data source The vertex list After the vertex list has been retrieved, the system proceeds to determine After determining a collapse order for the object, the vertex list For example, as shown in Next, a collapse path from the set of collapse paths is selected Each collapse path is given The system determines The vertex to be collapsed is identified Next, a neighbor vertex is identified After identifying a neighbor vertex, a collapse path is determined For example, in Thus, as shown in In one embodiment, collapse values are calculated for each path and the paths are prioritized as described above. The path designated to be collapsed first is chosen as the first path to be collapsed and displayed to the developer In another embodiment, texture maps are indexed by the vertices. Texture maps provide texture for the mapped area, giving an object a realistic appearance. Textures for different triangles may be quite different. Therefore, when a triangle is collapsed, the system must determine the affect of the loss of the texture of the triangle on the appearance of the object. Vertices which are on the edges of texture discontinuities are not collapsed, because of the affect the collapse will have on the appearance of the object. Thus, when collapse paths are selected, the vertices in the path are examined to determine if they are located on the edge of a texture discontinuity. If they are, the collapse path is not selected. In one embodiment, the extended tables for each object are already created in the development stage, and the tables are simply loaded into data memory for easy access when the application is initiated. The runtime manager awaits a request from the application for a collapse level from an object. The original appearances of each object are represented in a default resolution. When the application or the graphics program requests The projected area of an object is another factor which is used by the runtime manager to determine an optimal collapse level for an object. The projected area of an object is the area which the object will occupy as rendered on the display. The greater the projected area of an object, the higher the resolution that is required. The system determines The present invention also provides for global polygon count management. In this embodiment, the user selects a target polygon count for each frame. In this embodiment, the system determines Alternatively, the user The present invention may also be used to transmit data through remote connections, as illustrated in As shown in Patent Citations
Non-Patent Citations
Classifications
Legal Events
Rotate |