IP Library › Granted Patent US 11,935,194
Granted Patent B2
US 11,935,194 · App. 17/548,038 · Granted Mar 19, 2024

Constrained BSDF sampling

Inventor: Maksim Aizenshtein (Sammamish, WA)
Assignee: NVIDIA Corporation
G06T17/20G06T15/005G06T15/06G06T15/30G06T15/50
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,935,194
App. No.
17/548,038
Granted
Mar 19, 2024
Kind
B2
Abstract

Systems and methods are provided to perform constrained BSDF sampling in relation to various algorithms, and specifically in relation to ray tracing algorithms. In some embodiments, a method is provided to generate samples by: determining a spherical polygon on a unit hemisphere; determining, on a unit circle, a projected area corresponding to the spherical polygon on the unit hemisphere; determining a parameterization of the projected area of the spherical polygon on the unit circle; generating samples in the projected area based on the parameterization; and generating samples in the spherical polygon. The unit circle is abase of the unit hemisphere, and the projection of the projected area is along a vector perpendicular to the unit circle. The generated samples in the spherical polygon correspond to the samples in the projected area. The method may further include evaluating a rendering equation based on the generated samples in the spherical polygon.

Claims (53)

1. A computer-implemented method, comprising:

determining a spherical polygon on a unit hemisphere;

determining, on a unit circle, a projected area corresponding to the spherical polygon on the unit hemisphere, wherein the unit circle is a base of the unit hemisphere, and wherein projection of the projected area is along a vector perpendicular to the unit circle;

determining a parameterization of the projected area of the spherical polygon on the unit circle;

generating samples in the projected area based on the parameterization according to a uniform distribution in the projected area; and

generating samples in the spherical polygon in a weighted cosine distribution, wherein the generated samples in the spherical polygon correspond to the samples in the projected area.

2. The method according to claim 1 , wherein an origin of the unit hemisphere is a point on a surface of an object, and

wherein the base of the unit hemisphere is perpendicular to a surface normal of the point on the surface of the object.

3. The method according to claim 1 , wherein the spherical polygon on the unit hemisphere is determined by intercepting rays from a polygonal area light with the unit hemisphere, and

wherein the rays are determined by connecting vertices of the polygonal area light to the origin of the unit hemisphere.

4. The method according to claim 3 , wherein the polygonal area light is partially below a horizon of the unit hemisphere, the method further comprising:

clipping the polygonal area light at the horizon of the unit hemisphere; and

dividing the clipped polygonal area light to generate a number of triangles.

5. The method according to claim 1 , wherein the projected area of the spherical polygon on the unit circle is bounded by a set of ellipses,

wherein the set of ellipses share an origin at the origin of the unit circle, and

wherein the set of ellipses corresponds to a set of great circles on the unit hemisphere.

6. The method according to claim 1 , further comprising:

evaluating a rendering equation based on the generated samples in the spherical polygon.

7. The method according to claim 6 , wherein the spherical polygon is transformed from an original space based on a linearly transformed cosines (LTC) matrix, the method further comprising:

transforming the generated samples in the spherical polygon back to the original space based on the LTC matrix.

8. A computer-implemented method, comprising:

generating a sample in a spherical polygon located on a unit hemisphere;

checking the sample against an acceptance criterion, wherein the acceptance criterion comprises an acceptance probability related to a height of the sample on the unit hemisphere along a vector perpendicular to a unit circle as a base of the unit hemisphere relative to a maximum height of the spherical polygon on the unit hemisphere along the vector perpendicular to the unit circle;

in response to the sample meeting the acceptance criterion, adding the sample to a set of samples; or

in response to the sample not meeting the acceptance criterion, rejecting the sample; and

generating an image based on the set of samples.

9. The method according to claim 8 , wherein the acceptance criterion is met responsive to determining that a randomly or pseudo randomly generated value is greater than or equal to the acceptance probability.

10. The method according to claim 8 , wherein the sample is generated in accordance with a uniform distribution on the unit hemisphere.

11. The method according to claim 8 , wherein a pole of the unit hemisphere is not included in the spherical polygon, the method further comprising:

determining the maximum height of the spherical polygon among vertices and edges of the spherical polygon.

12. The method according to claim 8 , further comprising:

evaluating a rendering equation based on the set of samples in the spherical polygon.

13. A system, comprising:

one or more processors; and

a memory storing instructions that, responsive to execution by the one or more processors, cause the system to:

determine a spherical polygon on a unit hemisphere;

determine, on a unit circle, a projected area corresponding to the spherical polygon on the unit hemisphere, wherein the unit circle is a base of the unit hemisphere, and wherein projection of the projected area is along a vector perpendicular to the unit circle;

determine a parameterization of the projected area of the spherical polygon on the unit circle;

generate samples in the projected area based on the parameterization according to a uniform distribution in the projected area; and

generate samples in the spherical polygon in a weighted cosine distribution, wherein the generated samples in the spherical polygon correspond to the samples in the projected area.

14. The system according to claim 13 , wherein an origin of the unit hemisphere is a point on a surface of an object, and wherein the base of the unit hemisphere is perpendicular to a surface normal of the point on the surface of the object.

15. The system according to claim 13 , wherein the spherical polygon on the unit hemisphere is determined by intercepting rays from a polygonal area light with the unit hemisphere, and wherein the rays are determined by connecting vertices of the polygonal area light to the origin of the unit hemisphere.

16. The system according to claim 15 , wherein the polygonal area light is partially below a horizon of the unit hemisphere, and wherein the instructions further cause the system to:

clip the polygonal area light at the horizon of the unit hemisphere; and

divide the clipped polygonal area light to generate a number of triangles.

17. The system according to claim 13 , wherein the projected area of the spherical polygon on the unit circle is bounded by a set of ellipses;

wherein the set of ellipses share an origin at the origin of the unit circle, and

wherein the set of ellipses corresponds to a set of great circles on the unit hemisphere.

18. The system according to claim 13 , wherein the instructions further cause the system to:

evaluate a rendering equation based on the generated samples in the spherical polygon.

19. The system according to claim 18 , wherein the spherical polygon is transformed from an original space based on a linearly transformed cosines (LTC) matrix, and wherein the instructions further cause the system to:

transform the generated samples in the spherical polygon back to the original space based on the LTC matrix.

20. A non-transitory computer readable medium storing instructions that, responsive to execution by one or more processors, cause a system to implement the method according to claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2021
From: AIZENSHTEIN, MAKSIM
To: NVIDIA CORPORATION
Reel/Frame 058364/0430 →
Continuity (2)
Provisional Application 63125315 · Dec 14, 2020
Related Publication 20220189114A1 · Jun 16, 2022