Efficient scenery object rendering
Abstract
The number of graphic objects in a visual tile rendered varies as a function of distance between the tile and a viewpoint in a simulation. Fewer objects are rendered when the tile is far from the viewpoint, and vise versa. A level of detail (LOD) value is pseudo-randomly selected and associated with each object, indicating the maximum distance at which the object will be visible. A current LOD value is determined for the tile. An object is rendered if its LOD value is equal or greater than the current LOD value of the tile. Objects are faded into and out of view by modulating an opacity value as the current LOD value changes. Texture values of an object are adjusted as a function of ambient and direct components of light on the object, to achieve lighting corresponding to time of day, current season, and/or region in the simulated world.
Claims
exact text as granted — not AI-modifiedThe invention in which an exclusive right is claimed is defined by the following:
1 . A method for efficiently determining when to render a graphic object within a visual tile as a function of a distance between the visual tile and a viewpoint in an electronic simulation, comprising the steps of:
(a) pseudo-randomly associating with each graphic object within the visual tile an object rendering priority indicating a maximum distance between the viewpoint and the visual tile at which the graphic object will be rendered; (b) determining a current distance between the visual tile and the viewpoint in the electronic simulation; and (c) rendering each graphic object in the visual tile for which the current distance is less than the maximum distance indicated by the object rendering priority associated with the graphic object.
2 . A method for efficiently rendering graphic objects within a visual tile that is included in a plurality of visual tiles of an electronic simulation, so that a number of the graphic objects that are visible in the visual tile from a viewpoint varies with a distance between the viewpoint and the visual tile, comprising the steps of:
(a) for each graphic object in the visual tile, pseudo-randomly selecting a level of detail (LOD) value for inclusion in data defining the graphic object, said LOD value being thus associated with the graphic object and indicating a maximum relative distance between the viewpoint and the visual tile at which the graphic object will be visible in the electronic simulation; (b) determining a current LOD value for the visual tile as a function of the distance between the visual tile and the viewpoint in the electronic simulation; (c) comparing the current LOD value for the visual tile with the LOD values that were pseudo-randomly selected for each of the graphic objects in the visual tile to determine the graphic object that are visible for the current LOD value; and (d) rendering each graphic object that is visible for the current LOD value of the visual tile, so that the number of the graphic objects visible in the visual tile increases as the distance between the visual tile and the viewpoint decreases.
3 . The method of claim 2 , wherein the LOD of the tile represents a radial distance between the visual tile and the viewpoint in the electronic simulation.
4 . The method of claim 2 , wherein the step of pseudo-randomly selecting an LOD value comprises the steps of:
(a) determining a seed value as a function of a location of the visual tile in the electronic simulation; (b) generating the LOD value as a function of the seed value; and (c) assigning the LOD value to the graphic object.
5 . The method of claim 2 , wherein the step of determining a current LOD value for the visual tile comprises the steps of:
(a) detecting that the visual tile is within a predefined maximum range of the viewpoint; (b) determining the distance between the visual tile and the viewpoint; and (c) determining the LOD value associated with the distance that was determined in the preceding step.
6 . The method of claim 2 , wherein the step of rendering each graphic object comprises the steps of:
(a) determining a mapping of a texture to a size of the graphic object according to an integral cell size of the texture such that an integral cell of the texture is not divided; (b) applying the texture to at least one surface of the graphic object according to the mapping; and (c) displaying the graphic object with the texture applied to the graphic object.
7 . The method of claim 2 , wherein the step of rendering the graphic objects comprises the step of changing an opacity factor over a period of time to vary a visibility of the graphic objects as a function of the LOD value associated with the graphic objects and the distance between the viewpoint and the visual tile, causing said graphic objects to fade into view as the distance between the viewpoint and the visual tile decreases and to fade out of view as the distance between the viewpoint and the visual tile increases.
8 . The method of claim 2 , wherein the step of rendering includes the step of rendering each graphic object as one of:
(a) a solid graphic object; and (b) an orthogonal-plane graphic object.
9 . The method of claim 8 , wherein the step of rendering the graphic object as the solid graphic object comprises the step of displaying a plurality of adjacent surfaces of the graphic object in accordance with the data defining the graphic object and by applying textures to each surface of the graphic object that is visible; and wherein the step of rendering the orthogonal-plane graphic object comprises the step of displaying a pair of orthogonal planes in accordance with the data defining the graphic object and applying textures to the orthogonal planes.
10 . The method of claim 2 , wherein the data defining the graphic object comprises at least one of a location within the visual tile, a height, a width, a depth, an orientation, and a texture to be applied to the graphic object.
11 . A machine readable medium comprising machine instructions for performing the steps of claim 2 .
12 . A system for efficiently rendering graphic objects within a visual tile that is included in a plurality of visual tiles of an electronic simulation, so that a number of the graphic objects that are visible in the visual tile from a viewpoint varies with a distance between the viewpoint and the visual tile, comprising:
(a) a processor; (b) a display in communication with the processor; and (c) a memory in communication with the processor and storing machine instructions that cause the processor to:
(i) for each graphic object in the visual tile, pseudo-randomly select a level of detail (LOD) value for inclusion in data defining the graphic object, said LOD value being thus associated with the graphic object and indicating a maximum relative distance between the viewpoint and the visual tile at which the graphic object will be visible in the electronic simulation;
(ii) determine a current LOD value for the visual tile as a function of the distance between the visual tile and the viewpoint in the electronic simulation;
(iii) compare the current LOD value for the visual tile with the LOD values that were pseudo-randomly selected for each of the graphic objects in the visual tile to determine the graphic object that are visible for the current LOD value; and
(iv) render each graphic object that is visible for the current LOD value of the visual tile, so that the number of the graphic objects visible in the visual tile increases as the distance between the visual tile and the viewpoint decreases.
13 . The system of claim 12 , wherein the LOD of the tile represents a radial distance between the visual tile and the viewpoint in the electronic simulation.
14 . The system of claim 12 , wherein the machine instructions that cause the processor to pseudo-randomly select an LOD value, cause the processor to:
(a) determine a seed value as a function of a location of the visual tile in the electronic simulation; (b) generate the LOD value as a function of the seed value; and (c) assign the LOD value to the graphic object.
15 . The system of claim 12 , wherein the machine instructions that cause the processor to determine a current LOD value for the visual tile, cause the processor to:
(a) detect that the visual tile is within a predefined maximum range of the viewpoint; (b) determine the distance between the visual tile and the viewpoint; and (c) determine the LOD value associated with the distance that was determined in the preceding step.
16 . The system of claim 12 , wherein the machine instructions that cause the processor to render each graphic object, cause the processor to:
(a) determine a mapping of a texture to a size of the graphic object according to an integral cell size of the texture such that an integral cell of the texture is not divided; (b) apply the texture to at least one surface of the graphic object according to the mapping; and (c) display the graphic with the texture applied to the graphic object.
17 . The system of claim 12 , wherein the machine instructions that cause the processor to render the graphic objects, cause the processor to change an opacity factor over a period of time to vary a visibility of the graphic objects as a function of the LOD value associated with the graphic objects and the distance between the viewpoint and the visual tile, causing said graphic objects to fade into view as the distance between the viewpoint and the visual tile decreases and to fade out of view as the distance between the viewpoint and the visual tile increases.
18 . The system of claim 12 , wherein the machine instructions that cause the processor to render the graphic objects, cause the processor to render each graphic object as one of:
(a) a solid graphic object; and (b) an orthogonal-plane graphic object.
19 . The system of claim 18 , wherein the machine instructions that cause the processor to render the graphic object as the solid graphic object, cause the processor to display a plurality of adjacent surfaces of the graphic object in accordance with the data defining the graphic object and by applying textures to each surface of the graphic object that is visible; and wherein the machine instructions that cause the processor to render the orthogonal-plane graphic object, cause the processor to display a pair of orthogonal planes in accordance with the data defining the graphic object and apply textures to the orthogonal planes.
20 . The system of claim 12 , wherein the data defining the graphic object comprises at least one of a location within the visual tile, a height, a width, a depth, an orientation, and a texture to be applied to the graphic object.
21 . A method for efficiently rendering a graphic object in a simulated environment based on data defining characteristics of the graphic object and based on conditions in the simulated environment, comprising the steps of:
(a) determining a light source location and an intensity of light incident on the graphic object as a function of at least one of a time of day, a season, and a location of the graphic object in the simulated environment; (b) associating a texture value with the graphic object, where the texture value that is associated is selected as a function of at least one of the time of day, the season, and the location of the graphic object in the simulated environment; and (c) adjusting the texture value associated with the graphic object as a function of the light source direction and the intensity of the light incident on the graphic object.
22 . The method of claim 21 , further comprising the steps of:
(a) calculating a normal direction for each of a plurality of surfaces of the graphic object; and (b) determining a light source direction relative to the normal direction for each of the plurality of surfaces of the graphic object, to determine a direct light component and an ambient light component of the light incident on the surface.
23 . The method of claim 22 , wherein the step of adjusting the texture value associated with the graphic object comprises the step of modifying the texture value as a function of the ambient light component.
24 . The method of claim 22 , wherein the step of adjusting the texture value associated with the graphic object comprises the step of modifying the texture value as a function of the direct light component.
25 . The method of claim 24 , wherein the direct light component is a function of a dot product of the normal direction and the light source direction.
26 . The method of claim 21 , wherein a plurality of points represent the graphic object, further comprising the step of defining:
(a) a location of one of the plurality of points on the graphic object within the simulated environment; (b) coordinates of a texture value within a texture map; (c) a color value resulting from adjusting the texture value as a function of the light source direction and intensity; and (d) an opacity value.
27 . The method of claim 26 , further comprising the step of modulating the opacity value over a period of time, causing the graphic object to fade into view or out of view as a function of a direction in which the opacity is modulated.
28 . A machine readable medium comprising machine instructions for performing the steps of claim 21 .
29 . A system for efficiently rendering a graphic object in a simulated environment based on data defining characteristics of the graphic object and based on conditions in the simulated environment, comprising:
(a) a processor; (b) a display in communication with the processor; and (c) a memory in communication with the processor and storing machine instructions that cause the processor to:
(i) determine a light source location and an intensity of light incident on the graphic object as a function of at least one of a time of day, a season, and a location of the graphic object in the simulated environment;
(ii) associate a texture value with the graphic object, where the texture value that is associated is selected as a function of at least one of the time of day, the season, and the location of the graphic object in the simulated environment; and
(iii) adjust the texture value associated with the graphic object as a function of the light source direction and the intensity of the light incident on the graphic object.
30 . The system of claim 29 , wherein the machine instructions further cause the processor to:
(a) calculate a normal direction for each of a plurality of surfaces of the graphic object; and (b) determine a light source direction relative to the normal direction for each of the plurality of surfaces of the graphic object, to determine a direct light component and an ambient light component of the light incident on the surface.
31 . The system of claim 29 , wherein the machine instructions that cause the processor to adjust the texture value associated with the graphic object, cause the processor to modify the texture value as a function of the ambient light component.
32 . The system of claim 29 , wherein the machine instructions that cause the processor to adjust the texture value associated with the graphic object, cause the processor to modify the texture value as a function of the direct light component.
33 . The system of claim 32 , wherein the direct light component is a function of a dot product of the normal direction and the light source direction.
34 . The system of claim 29 , wherein a plurality of points represent the graphic object and the machine instructions further cause the processor to define:
(a) a location of one of the plurality of points on the graphic object within the simulated environment; (b) coordinates of a texture value within a texture map; (c) a color value resulting from adjusting the texture value as a function of the light source direction and intensity; and (d) an opacity value.
35 . The system of claim 34 , wherein the machine instructions further cause the processor to modulate the opacity value over a period of time, causing the graphic object to fade into view or out of view as a function of a direction in which the opacity is modulated.Join the waitlist — get patent alerts
Track US2004263512A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.