Systems and methods for rendering frames of complex virtual environments
First Claim
1. A method for rendering frames of a complex virtual environment based on an octree file, the octree file including data defining an octree for the complex environment that includes spatially partitioned cells, the cells of the octree containing dynamic tessellation elements and non-dynamic tessellation elements, the method comprising:
- determining, using the octree for the complex virtual environment, cells that are visible based on a viewer position for a frame to be rendered;
identifying, in each of the visible cells, dynamic tessellation elements; and
dynamically tessellating the identified dynamic tessellation elements in the visible cells, wherein dynamically tessellating the identified dynamic tessellation elements comprises;
determining, for each identified dynamic tessellation element, a tessellation level; and
rendering each identified dynamic tessellation element according to the determined tessellation level.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed for providing interactive displays of complex virtual environments. Systems and methods consistent with embodiments of the invention may be implemented to generate virtual reality (VR) file(s) from a 3D model of the complex environment. The VR file(s) may include octree and collision detection information that is used to simulate and render frames of the complex environment. During simulation, moving objects may be evaluated to detect for collisions with other objects. Further, during rendering, objects or elements may be dynamically tessellated during run-time operations to actively control their appearance when displayed to a user. Memory management operations for facilitating the display of complex virtual environments are also disclosed, consistent with embodiments of the invention.
36 Citations
56 Claims
-
1. A method for rendering frames of a complex virtual environment based on an octree file, the octree file including data defining an octree for the complex environment that includes spatially partitioned cells, the cells of the octree containing dynamic tessellation elements and non-dynamic tessellation elements, the method comprising:
-
determining, using the octree for the complex virtual environment, cells that are visible based on a viewer position for a frame to be rendered;
identifying, in each of the visible cells, dynamic tessellation elements; and
dynamically tessellating the identified dynamic tessellation elements in the visible cells, wherein dynamically tessellating the identified dynamic tessellation elements comprises;
determining, for each identified dynamic tessellation element, a tessellation level; and
rendering each identified dynamic tessellation element according to the determined tessellation level. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for performing rendering operations for providing interactive displays a complex virtual environment, the rendering operations being performed as part of a simulation loop, the method comprising:
-
determining, using an octree of cells for the complex virtual environment, cells that are visible based on a viewer position for a frame to be rendered, the cells of the octree containing elements of the complex environment;
identifying, in each of the visible cells, dynamic tessellation elements; and
dynamically tessellating the identified dynamic tessellation elements in the visible cells, wherein determining visible cells based on the viewer position comprises;
determining a view frustum for the frame to be rendered based on the viewer position;
traversing the octree to identify non-visible cells that are outside of the view frustum; and
culling the identified non-visible cells of the octree. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A computer program product for providing interactive displays of a complex virtual environment, the computer program product comprising a computer readable medium embodying a computer program, the computer program comprising instructions that are executable by a system to perform a rendering method to facilitate the display of frames of the complex environment, the method comprising:
-
determining, using an octree of cells that spatially partition the complex virtual environment, elements of the complex environment that are visible based on a viewer position for a frame to be rendered, the elements of the complex environment including dynamic tessellation elements and non-dynamic tessellation elements; and
for each of visible element that is a dynamic tessellation element, dynamically tessellating the element by;
determining a tessellation level for the visible dynamic tessellation element based on the viewer position for the frame to be rendered; and
generating vertex data for rendering the visible dynamic tessellation element based on the determined tessellation level. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. In a system for providing interactive displays of a complex virtual environment, a graphics system for rendering frames based on virtual reality (VR) file(s), the VR file(s) including data defining a list of occluder candidates and an octree of cells that contain one or more elements of the complex environment, the graphics system comprising:
-
means for determining, using the octree for the complex virtual environment, cells that are not visible based on a viewer position for a frame to be rendered;
means for culling all cells of the octree that are determined not to be visible;
means for analyzing the list of occluder candidates to determine cells of the octree that are occluded based on the viewer position;
means for culling all cells of the octree that are determined to be occluded; and
means for rendering elements contained in the visible, non-culled cells of the octree to facilitate the display the frame to a user. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method for rendering frames of a complex virtual environment based on an octree of cells that spatially partition the complex virtual environment, the cells of the octree containing one or more elements of the complex environment, the method comprising:
-
determining, using the octree for the complex virtual environment, cells that are not visible based on a viewer position for the frame to be rendered;
culling all cells of the octree that are determined not to be visible;
analyzing a list of occluder candidates to determine cells of the octree that are occluded based on the viewer position;
culling all cells of the octree that are determined to be occluded; and
rendering elements contained in visible cells of the octree to display the frame to a user, wherein the elements contained in the visible cells include dynamic tessellation elements and non-dynamic tessellation elements. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56)
-
Specification