IP Library Granted Patent US 8,665,260
Granted Patent B2
US 8,665,260 · App. 12/425,040 · Granted Mar 4, 2014

Multiscale three-dimensional navigation

Inventors: James McCrae (Toronto, CA); Igor Mordatch (Toronto, CA); Michael Glueck (Toronto, CA); Azam Khan (Aurora, CA)
Assignee: Autodesk, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,665,260
App. No.
12/425,040
Granted
Mar 4, 2014
Kind
B2
Abstract

One embodiment of the present invention sets forth a technique for providing an end user with a multiscale three-dimensional (3D) navigation experience in design software application programs. An adaptive multiscale 3D navigation system allows an end user to transition between a planetary scale down to an individual building scale. The end user may navigate within the building, inspecting object details within the building. The size of the environment is sensed automatically, and the viewing and travel parameters are adjusted accordingly to provide the end user with a seamless navigation experience. A consistent navigation experience is supported at various scales, and real-time collision detection is provided. Scale computation for 3D scenes and collision detection may be based on a generated depth cubemap of the environment.

Claims (91)

1. A computer-implemented method for providing a dynamic viewing frustum in a multiscale three-dimensional (3D) navigation environment, the method comprising:

obtaining a set of distance values indicating distances between a camera and at least one closest fragment associated with one or more geometric objects in a 3D scene environment;

generating a depth cubemap that stores the set of distance values;

determining a minimum distance value in the set of distance values;

computing a near clipping plane distance from the camera based on the minimum distance value, wherein a near clipping plane of the dynamic viewing frustum is positioned at the near clipping plane distance;

comparing the minimum distance value to a far threshold distance value of a frustum threshold that is positioned within the dynamic viewing frustum;

extending the dynamic viewing frustum in response to determining that the minimum distance value is greater than the far threshold distance;

rendering the 3D scene environment as viewed from the camera to produce a rendered frame; and

storing the rendered frame in a memory or displaying the rendered frame on a display device.

2. The method of claim 1 , wherein the step of generating the depth cubemap comprises replacing a geometric object in the 3D scene environment with a proxy object that is lower resolution than the geometric object.

3. The method of claim 1 , wherein the step of generating the depth cubemap comprises rendering the 3D scene environment that has a lower pixel resolution compared with the rendered frame.

4. The method of claim 1 , further comprising the step of determining a collision detection threshold.

5. The method of claim 4 , further comprising the steps of:

determining that one or more of the distance values in the set of distance values are within the collision detection threshold;

computing a net penalty force for the one or more distance values that are within the collision detection threshold; and

applying the net penalty force in the 3D scene environment.

6. The method of claim 4 , wherein the collision detection threshold for the 3D scene environment is computed based on a distance between a destination target and the camera along a path.

7. The method of claim 4 , further comprising the steps of:

determining that the camera has not moved toward a destination target in the 3D scene environment;

dilating the collision detection threshold;

computing a net penalty force for distance values that are within the dilated collision detection threshold; and

applying the net penalty force in the 3D scene environment.

8. The method of claim 1 , further comprising the step of computing an updated position of the camera based on the set of distance values, the position of the camera, and a position of a destination target in the 3D scene environment.

9. The method of claim 1 , further comprising the step of computing a far clipping plane distance from the camera based on the near clipping plane distance, wherein a far clipping plane of the dynamic viewing frustum is positioned at the far clipping plane distance.

10. The method of claim 1 , further comprising the step of changing the near clipping plane distance when the minimum distance value indicates that no geometric object lies within the dynamic viewing frustum.

11. The method of claim 1 , further comprising the steps of:

comparing the minimum distance value to a near threshold distance of a frustum threshold that is positioned within the dynamic viewing frustum; and

shortening the dynamic viewing frustum in response to determining that the minimum distance value is less than the near threshold distance.

12. The method of claim 1 , further comprising the step of computing a scale for the 3D scene environment based on the set of distance values, wherein the scale indicates a relationship between a control unit of the 3D scene environment and a display unit of a rendered frame.

13. The method of claim 1 , further comprising the steps of:

determining that the camera has changed position within the 3D scene environment; and

repeating the steps of obtaining the set of distance values, determining the minimum distance value in the set of distance values, computing the near clipping plane distance, and rendering the 3D scene environment based on the changed position.

14. A non-transitory computer-readable medium including instructions that, when executed by a processing unit, cause the processing unit to provide a dynamic viewing frustum in a multiscale three-dimensional (3D) navigation environment, by performing the steps of:

obtaining a set of distance values indicating distances between a camera and at least one closest fragment associated with one or more geometric objects in a 3D scene environment;

determining a minimum distance value in the set of distance values;

computing a near clipping plane distance from the camera based on the minimum distance value, wherein a near clipping plane of the dynamic viewing frustum is positioned at the near clipping plane distance;

comparing the minimum distance value to a far threshold distance of a frustum threshold that is positioned within the dynamic viewing frustum;

extending the dynamic viewing frustum in response to determining that the minimum distance value is greater than the far threshold distance;

rendering the 3D scene environment as viewed from the camera to produce a rendered frame; and

storing the rendered frame in a memory or displaying the rendered frame on a display device.

15. The non-transitory computer-readable medium of claim 14 , further comprising the step of changing the near clipping plane distance when the minimum distance value indicates that no geometric object lies within the dynamic viewing frustum.

16. The non-transitory computer-readable medium of claim 14 , further comprising the steps of:

comparing the minimum distance value to a near threshold distance of a frustum threshold that is positioned within the dynamic viewing frustum; and

shortening the dynamic viewing frustum in response to determining that the minimum distance value is less than the near threshold distance.

17. A computer-implemented method for providing a dynamic viewing frustum in a multiscale three-dimensional (3D) navigation environment, the method comprising:

obtaining a set of distance values indicating distances between a camera and at least one closest fragment associated with one or more geometric objects in a 3D scene environment;

determining a minimum distance value in the set of distance values;

computing a near clipping plane distance from the camera based on the minimum distance value, wherein a near clipping plane of the dynamic viewing frustum is positioned at the near clipping plane distance;

determining a collision detection threshold;

determining that one or more of the distance values in the set of distance values are within the collision detection threshold;

computing a net penalty force for the one or more distance values that are within the collision detection threshold;

applying the net penalty force in the 3D scene environment;

rendering the 3D scene environment as viewed from the camera to produce a rendered frame; and

storing the rendered frame in a memory or displaying the rendered frame on a display device.

18. A computer-implemented method for providing a dynamic viewing frustum in a multiscale three-dimensional (3D) navigation environment, the method comprising:

obtaining a set of distance values indicating distances between a camera and at least one closest fragment associated with one or more geometric objects in a 3D scene environment;

determining a minimum distance value in the set of distance values;

computing a near clipping plane distance from the camera based on the minimum distance value, wherein a near clipping plane of the dynamic viewing frustum is positioned at the near clipping plane distance;

determining a collision detection threshold;

determining that the camera has not moved toward a destination target in the 3D scene environment;

dilating the collision detection threshold;

computing a net penalty force for distance values that are within the dilated collision detection threshold;

applying the net penalty force in the 3D scene environment;

rendering the 3D scene environment as viewed from the camera to produce a rendered frame; and

storing the rendered frame in a memory or displaying the rendered frame on a display device.

19. A computer-implemented method for providing a dynamic viewing frustum in a multiscale three-dimensional (3D) navigation environment, the method comprising:

obtaining a set of distance values indicating distances between a camera and at least one closest fragment associated with one or more geometric objects in a 3D scene environment;

determining a minimum distance value in the set of distance values;

computing a near clipping plane distance from the camera based on the minimum distance value, wherein a near clipping plane of the dynamic viewing frustum is positioned at the near clipping plane distance;

comparing the minimum distance value to a far threshold distance value of a frustum threshold that is positioned within the dynamic viewing frustum;

extending the dynamic viewing frustum in response to determining that the minimum distance value is greater than the far threshold distance;

computing an updated position of the camera based on the set of distance values, the position of the camera, and a position of a destination target in the 3D scene environment;

rendering the 3D scene environment as viewed from the camera to produce a rendered frame; and

storing the rendered frame in a memory or displaying the rendered frame on a display device.

20. A computer-implemented method for providing a dynamic viewing frustum in a multiscale three-dimensional (3D) navigation environment, the method comprising:

obtaining a set of distance values indicating distances between a camera and at least one closest fragment associated with one or more geometric objects in a 3D scene environment;

determining a minimum distance value in the set of distance values;

computing a near clipping plane distance from the camera based on the minimum distance value, wherein a near clipping plane of the dynamic viewing frustum is positioned at the near clipping plane distance;

computing a far clipping plane distance from the camera based on the near clipping plane distance, wherein a far clipping plane of the dynamic viewing frustum is positioned at the far clipping plane distance;

comparing the minimum distance value to a far threshold distance value of a frustum threshold that is positioned within the dynamic viewing frustum;

extending the dynamic viewing frustum in response to determining that the minimum distance value is greater than the far threshold distance;

rendering the 3D scene environment as viewed from the camera to produce a rendered frame; and

storing the rendered frame in a memory or displaying the rendered frame on a display device.

21. A computer-implemented method for providing a dynamic viewing frustum in a multiscale three-dimensional (3D) navigation environment, the method comprising:

obtaining a set of distance values indicating distances between a camera and at least one closest fragment associated with one or more geometric objects in a 3D scene environment;

determining a minimum distance value in the set of distance values;

computing a near clipping plane distance from the camera based on the minimum distance value, wherein a near clipping plane of the dynamic viewing frustum is positioned at the near clipping plane distance;

comparing the minimum distance to a far threshold distance value of a frustum threshold that is positioned within the dynamic viewing frustum;

extending the dynamic viewing frustum in response to determining that the minimum distance value is greater than the far threshold distance;

rendering the 3D scene environment as viewed from the camera to produce a rendered frame; and

storing the rendered frame in a memory or displaying the rendered frame on a display device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2009
From: MCCRAE, JAMES; MORDATCH, IGOR; GLUECK, MICHAEL; KHAN, AZAM
To: AUTODESK, INC.
Reel/Frame 022556/0710 →
Continuity (1)
Related Publication 20100268457A1 · Oct 21, 2010