IP Library › Granted Patent US 11,676,326
Granted Patent B2
US 11,676,326 · App. 17/145,016 · Granted Jun 13, 2023

Techniques for anisotropic texture filtering using ray cones

Inventors: Tomas Akenine-Moller (Lund, SE); Jakub Boksansky (Munich, DE)
Assignee: NVIDIA Corporation
G06T15/06G06T1/20G06T3/40G06T15/005G06T15/04G06T15/10
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 11,676,326
App. No.
17/145,016
Granted
Jun 13, 2023
Kind
B2
Abstract

One embodiment of a method for computing a texture color includes tracing a ray cone through a graphics scene, determining at least one axis of an ellipse formed by the ray cone intersecting a plane associated with geometry within the graphics scene at a hit point, computing one or more gradients along the at least one axis of the ellipse, and computing a texture color based on the one or more gradients and a texture.

Claims (66)

1. A computer-implemented method for rendering one or more graphics images, the method comprising:

tracing one or more ray cones through a graphics scene;

performing one or more anisotropic texture filtering operations to compute texture colors based on one or more cylinders that approximate the one or more ray cones that have been traced; and

rendering one or more graphics images based on the texture colors.

2. The computer-implemented method of claim 1 , wherein performing the one or more anisotropic texture filtering operations comprises, for each ray cone of the one or more ray cones:

determining at least one axis of an ellipse formed by the ray cone approximated as a cylinder intersecting a plane associated with geometry within the graphics scene;

computing one or more gradients along the at least one axis of the ellipse; and

computing at least one texture color based on the one or more gradients and one or more textures.

3. The computer-implemented method of claim 1 , wherein the one or more graphics images are associated with a video game, a film, or an architectural or design application.

4. The computer-implemented method of claim 1 , wherein the steps of tracing, performing one or more anisotropic texture filtering operations, and rendering are performed in a virtualized environment.

5. The computer-implemented method of claim 1 , wherein the steps of tracing, performing one or more anisotropic texture filtering operations, and rendering are performed in a cloud computing environment.

6. A computer-implemented method for computing a texture color, the method comprising:

tracing a ray cone through a graphics scene;

determining at least one axis of a first ellipse formed by the ray cone intersecting a first plane associated with geometry within the graphics scene at a first hit point;

computing one or more gradients along the at least one axis of the first ellipse; and

computing a first texture color based on the one or more gradients and a first texture.

7. The computer-implemented method of claim 6 , wherein computing the first texture color comprises performing one or more anisotropic texture filtering operations based on the one or more gradients and the first texture.

8. The computer-implemented method of claim 6 , wherein determining the at least one axis of the first ellipse comprises approximating the ray cone intersecting the first plane as a cylinder.

9. The computer-implemented method of claim 6 , wherein determining the at least one axis of the first ellipse comprises:

projecting a direction vector associated with the ray cone onto the first plane to generate a first vector associated with a major axis;

rescaling the first vector based on a first set of similar triangles;

computing a cross product between the first vector and a normal vector associated with the first plane to generate a second vector associated with a minor axis; and

rescaling the second vector based on a second set of similar triangles.

10. The computer-implemented method of claim 6 , wherein computing the one or more gradients along the at least one axis of the first ellipse comprises:

computing a plurality of barycentric coordinates on the first ellipse;

computing a plurality of texture coordinates based on the plurality of barycentric coordinates; and

computing the one or more gradients based on the plurality of texture coordinates.

11. The computer-implemented method of claim 10 , wherein computing the plurality of barycentric coordinates comprises dividing areas of a plurality of triangles within a first triangle by an area of the first triangle.

12. The computer-implemented method of claim 10 , wherein the plurality of texture coordinates are computed at a plurality of points that are along the at least one axis and on the ellipse and at the first hit point, and computing the one or more gradients comprises subtracting the texture coordinates at the first hit point from the texture coordinates at the plurality of points that are along the at least one axis and on the first ellipse.

13. The computer-implemented method of claim 6 , further comprising clamping one or more lengths of the at least one axis of the first ellipse to a constant value.

14. The computer-implemented method of claim 6 , further comprising:

tracing a reflected ray cone through the graphics scene;

determining at least one axis of a second ellipse formed by the reflected ray cone intersecting a second plane associated with additional geometry within the graphics scene at a second hit point;

computing one or more gradients along the at least one axis of the second ellipse; and

computing a second texture color based on the one or more gradients along the at least one axis of the second ellipse and a second texture.

15. One or more non-transitory computer-readable media storing program instructions that, when executed by at least one processor, cause the at least one processor to perform the steps of:

tracing a ray cone through a graphics scene;

determining at least one axis of a first ellipse formed by the ray cone intersecting a first plane associated with geometry within the graphics scene at a first hit point;

computing one or more gradients along the at least one axis of the first ellipse; and

computing a first texture color based on the one or more gradients and a first texture.

16. The one or more non-transitory computer-readable media of claim 15 , wherein computing the first texture color comprises performing one or more mipmap lookup operations based on the one or more gradients and the first texture.

17. The one or more non-transitory computer-readable media of claim 15 , wherein determining the at least one axis of the first ellipse comprises:

projecting a direction vector associated with the ray cone onto the first plane to generate a first vector associated with a major axis;

rescaling the first vector based on a first set of similar triangles;

computing a cross product between the first vector and a normal vector associated with the first plane to generate a second vector associated with a minor axis; and

rescaling the second vector based on a second set of similar triangles.

18. The one or more non-transitory computer-readable media of claim 15 , wherein each of the one or more gradients comprises a texturing coordinates gradient.

19. The one or more non-transitory computer-readable media of claim 15 , wherein computing the one or more gradients along the at least one axis comprises subtracting texture coordinates at the first hit point from texture coordinates at a plurality of points that are along the at least one axis and on the first ellipse.

20. The one or more non-transitory computer-readable media of claim 15 , wherein computing the one or more gradients along the at least one axis of the first ellipse comprises:

computing a plurality of barycentric coordinates on the first ellipse;

computing a plurality of texture coordinates based on the plurality of barycentric coordinates; and

computing the one or more gradients based on the plurality of texture coordinates.

21. The one or more non-transitory computer-readable media of claim 15 , the steps further comprising:

tracing a reflected ray cone through the graphics scene;

determining at least one axis of a second ellipse formed by the reflected ray cone intersecting a second plane associated with additional geometry within the graphics scene at a second hit point;

computing one or more gradients along the at least one axis of the second ellipse; and

computing a second texture color based on the one or more gradients along the at least one axis of the second ellipse and a second texture.

22. A system, comprising:

one or more memories storing instructions; and

one or more processors that are coupled to the one or more memories and,

when executing the instructions, are configured to:

trace a ray cone through a graphics scene,

determine at least one axis of an ellipse formed by the ray cone intersecting a plane associated with geometry within the graphics scene at a hit point,

compute one or more gradients along the at least one axis of the ellipse, and

compute a texture color based on the one or more gradients and a texture.

23. The system of claim 22 , wherein the one or more processors includes at least one of a graphics processing unit (GPU) or a virtual GPU, and computing the texture color comprises performing, via a texture unit included in the at least one of the GPU or the virtual GPU, one or more anisotropic texture filtering operations based on the one or more gradients and the texture.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE INVENTOR NAME FROM JAKUB BOKSANKSY TO JAKUB BOKSANSKY PREVIOUSLY RECORDED ON REEL 054865 FRAME 0665. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 19, 2021
From: AKENINE-MOLLER, TOMAS; BOKSANSKY, JAKUB
To: NVIDIA CORPORATION
Reel/Frame 055345/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2021
From: AKENINE-MOLLER, TOMAS; BOKSANKSY, JAKUB
To: NVIDIA CORPORATION
Reel/Frame 054865/0665 →
Continuity (3)
Provisional Application 63030162 · May 26, 2020
Provisional Application 63022033 · May 8, 2020
Related Publication 20210350608A1 · Nov 11, 2021