IP Library Granted Patent US 10,586,375
Granted Patent B2
US 10,586,375 · App. 16/450,756 · Granted Mar 10, 2020

Hybrid raytracing approach for modeling light reflection

Inventors: Ivan Nevraev (Redmond, WA); James D. Stanard (Kirkland, WA)
Assignee: Microsoft Technology Licensing, LLC
G06T15/06G06T15/506
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 10,586,375
App. No.
16/450,756
Granted
Mar 10, 2020
Kind
B2
Abstract

Among the various embodiments disclosed herein are example methods for using real-time raytracing in a hybrid approach along with screen space reflections. In certain implementations, the two approaches are combined in a process that decides whether to use screen space reflections or raytracing for a given pixel during a preliminary analysis (pre-pass) of the pixel to be rendered.

Claims (47)

1. A computer-implemented method comprising:

generating a list of reflection ray origins and directions for the frame;

for a selected pixel having a reflection ray:

determining whether the reflection ray for the selected pixel is reflected back to a virtual camera position of the frame;

if the reflection ray is determined to be reflected back to the virtual camera position of the frame, performing a first reflection ray technique to generate a resulting pixel value for the reflection ray; and

if the selected reflection ray is determined not to be reflected back to the virtual camera position of the frame, performing a second reflection ray technique to generate the resulting pixel value for the reflection ray; and

rendering the frame for display on a display device, the rendered frame including the resulting pixel value.

2. The method of claim 1 , wherein the operations further comprise:

if the second ray reflection technique fails, performing the first ray reflection for the reflection ray.

3. The method of claim 1 , wherein the determination of whether the reflection ray is reflected back to the virtual camera position for the frame comprises:

computing a dot product; and

evaluating whether a resulting scalar value from the dot product is positive or negative.

4. The method of claim 3 , wherein the dot product is the dot product of a view vector for the selected pixel and the reflection vector for the selected pixel.

5. The method of claim 1 , wherein the determination of whether the reflection ray is reflected back to the virtual camera position for the frame is performed by:

computing line segment endpoints comprising the origin of the reflected ray and a point along a direction of the reflected ray;

transforming the line segment endpoints into a projected camera space;

constructing a reflected-ray-in-projected-space from the line segments endpoints by subtracting one from another; and

determining that a direction of the reflected-ray-in-projected-space is facing at the virtual camera, and thereby determining that the original reflected ray was reflected towards the virtual camera.

6. The method of claim 1 , wherein the reflection ray is determined to be reflected back to the virtual camera position of the frame, and wherein the raytracing technique comprises either a. using a reduced resolution image of the frame for the raytracing technique; or b. selecting a representative normal for a group of pixel values neighboring the selected pixel.

7. In a computer system, a method of rendering a pixel depicting a reflection from a reflective surface of a computer-represented environment, the method comprising:

adaptively selecting a rendering technique from among multiple available rendering techniques for use in rendering a pixel value representative of a reflection in a computer-generated environment;

computing the pixel value using the selected technique; and

buffering the pixel value in a hardware buffer,

wherein the adaptively selecting the rendering technique comprises:

determining that a reflection ray from the pixel location is not reflected toward a virtual camera position of the computer-generated environment; and

performing a screen space reflection technique for the reflection ray.

8. The method of claim 7 , further comprising:

determining that the screen space reflection technique failed for the reflection ray; and

performing another technique for the reflection ray for which the screen space reflection technique failed.

9. The method of claim 7 , wherein the adaptively selecting the rendering technique from among multiple available rendering techniques reduces the computational burden of rendering the frame.

10. A system comprising:

a computer processor; and

one or more computer-readable memory storing computer-readable instructions, which when executed by the computer processor, cause the computer processor to perform a method, the method comprising:

adaptively selecting a rendering technique from among multiple available rendering techniques for use in rendering a pixel value representative of a reflection in a computer-generated environment;

computing the pixel value using the selected technique; and

buffering the pixel value in a hardware buffer,

wherein the adaptively selecting the rendering technique comprises:

determining that a reflection ray from the pixel location is not reflected toward a virtual camera position of the computer-generated environment; and

performing a screen space reflection technique for the reflection ray.

11. The system of claim 10 , wherein the method further comprises using a reduced resolution image of the frame for one of the multiple available techniques.

12. The system of claim 11 , wherein the reduced resolution image comprises a one-quarter reduced image for the pixel value.

13. The system of claim 11 , wherein the reduced resolution image is used to render multiple pixels, and thereby reduces the computational burden of rendering the frame.

14. The system of claim 10 , wherein the method further comprises selecting a representative normal for a group of pixel values neighboring the pixel value.

15. The system of claim 14 , wherein the representative normal is selected only after determining that the pixel value has a normal that is within a threshold percentage or distance of the group of pixel values.

16. The system of claim 10 , wherein the method further comprises:

determining that the screen space reflection technique failed for the reflection ray; and

performing another technique for the reflection ray for which the screen space reflection technique failed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2019
From: NEVRAEV, IVAN; STANARD, JAMES D.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049710/0921 →
Continuity (2)
Continuation 15902926 · Feb 22, 2018
Related Publication 20190311521A1 · Oct 10, 2019