IP Library Granted Patent US 11,682,159
Granted Patent B2
US 11,682,159 · App. 17/341,250 · Granted Jun 20, 2023

Systems and methods for soft shadowing in 3-D rendering casting multiple rays from ray origins

Inventors: Justin P. DeCell (San Francisco, CA); Luke T. Peterson (San Francisco, CA)
Assignee: Imagination Technologies Limited
G06T15/06G06T17/005
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,682,159
App. No.
17/341,250
Granted
Jun 20, 2023
Kind
B2
Abstract

Graphics processing systems and methods provide soft shadowing effects into rendered images. This is achieved in a simple manner which can be implemented in real-time without incurring high processing costs so it is suitable for implementation in low-cost devices. Rays are cast from positions on visible surfaces corresponding to pixel positions towards the center of a light, and occlusions of the rays are determined. The results of these determinations are used to apply soft shadows to the rendered pixel values.

Claims (43)

1. A machine-implemented method of graphics processing, comprising:

determining, at a position in a scene, an extent of occlusion from a light by

determining a glancing ray which, of a plurality of rays cast from said position towards different points within the light, is the closest ray to an occlusion which is not occluded by the occlusion; and

using an angle between the determined glancing ray and a ray cast towards a predefined point on the light to determine the extent of occlusion at said position in the scene from the light.

2. The machine-implemented method of claim 1 , further comprising:

identifying visible surfaces of the scene for pixels of a frame of pixels; and

determining origins for casting rays from the visible surfaces towards the light.

3. The machine-implemented method of claim 2 , wherein the light is an area light, modelled as a disc with diameter L, positioned in the scene at a distance D from the determined origin, and wherein the angle θ between the determined glancing ray and a ray cast towards to the centre of the light is used to determine the extent of occlusion from the light by determining a proportion of the light from the area light which hits the determined origin in accordance with (2D tan θ/L) 2 .

4. The machine-implemented method of claim 2 , further comprising using the determined extent of occlusion from the light for said one or more pixels corresponding to the ray origin to determine shadowing for said one or more pixels.

5. The machine-implemented method of claim 4 , further comprising determining rendered pixel values of the frame in accordance with the determined shadowing for the pixels.

6. The machine-implemented method of claim 2 , wherein the extent of occlusion from the light is determined for all of the pixels in the frame.

7. The machine-implemented method of claim 1 , further comprising for a plurality of the ray origins:

casting the plurality of rays from the determined origin towards different points within the light; and

determining whether each of the plurality of rays are occluded from reaching the light.

8. The machine-implemented method of claim 7 , further comprising:

determining, for each of a plurality of pixels in the frame, whether a ray cast from the determined ray origin at the identified visible surface for that pixel towards the centre of the light is occluded;

wherein the extent of occlusion from the light is determined only for pixels for which it is determined that the ray cast from the determined ray origin at the identified visible surface for that pixel towards the centre of the light is not occluded.

9. The machine-implemented method of claim 7 , further comprising:

for each of the rays that are determined to be occluded from the light, determining an attenuation value for its respective occlusion; and

using the determined attenuation value when determining the extent of occlusion from the light for one or more pixels corresponding to the ray origin.

10. The machine-implemented method of claim 9 , wherein said determining an attenuation value for an occlusion comprises processing a texture for the occlusion to determine a level to which the occlusion attenuates light.

11. The machine-implemented method of claim 10 , wherein if the texture for the occlusion is opaque, the occlusion is determined to completely attenuate light, whereas if the texture for the occlusion is translucent or punch through then the level of attenuation is variable and is determined by sampling the texture.

12. The machine-implemented method of claim 9 , wherein said determining an attenuation value for an occlusion comprises casting a secondary ray from the occlusion towards the light to determine an extent to which the occlusion is itself occluded from the light.

13. The machine-implemented method of claim 1 , wherein the angle defines an unoccluded conic section which is used to represent a portion of the light that is unoccluded.

14. A graphics processing unit configured to render a frame representing a scene, wherein the graphics processing unit is configured to:

determine, at a position in a scene, an extent of occlusion from a light by:

determining a glancing ray which, of a plurality of rays cast from said position towards different points within the light, is the closest ray to an occlusion which is not occluded by the occlusion; and

using an angle between the determined glancing ray and a ray cast towards a predefined point on the light to determine the extent of occlusion at said position in the scene from the light.

15. The graphics processing unit of claim 14 , wherein the graphics processing unit comprises surface identification logic configured to identify surfaces within the scene and processing logic configured to process graphics data for identified surfaces.

16. The graphics processing unit of claim 15 , further configured to:

identify visible surfaces of the scene for pixels of the frame; and

determine origins for casting rays from the visible surfaces towards the light.

17. The graphics processing unit of claim 15 , further configured to, for a plurality of the ray origins:

cast the plurality of rays from the determined origin towards different points within the light; and

determining whether each of the plurality of rays are occluded from reaching the light.

18. The graphics processing unit of claim 17 , further configured to:

for each of the rays that are determined to be occluded from the light, determine an attenuation value for its respective occlusion; and

use the determined attenuation value when determining the extent of occlusion from the light for one or more pixels corresponding to the ray origin.

19. The graphics processing unit of claim 14 , wherein the angle defines an unoccluded conic section which is used to represent a portion of the light that is unoccluded.

20. A non-transitory computer readable storage medium having stored thereon processor executable instructions that when executed cause at least one processor to:

determine, at a position in a scene, an extent of occlusion from a light by:

determining a glancing ray which, of a plurality of rays cast from said position towards different points within the light, is the closest ray to an occlusion which is not occluded by the occlusion; and

using an angle between the determined glancing ray and a ray cast towards a predefined point on the light to determine the extent of occlusion at said position within the scene from the light.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Continuity (5)
Continuation 16706584 · Dec 6, 2019
Continuation 16030510 · Jul 9, 2018
Continuation 15059818 · Mar 3, 2016
Provisional Application 62127439 · Mar 3, 2015
Related Publication 20210295590A1 · Sep 23, 2021