US7589724B1ExpiredUtility

Successive-convolution-compositing technique for rendering soft shadows

76
Assignee: ADOBE SYSTEMS INCPriority: Feb 15, 2006Filed: Feb 15, 2006Granted: Sep 15, 2009
Est. expiryFeb 15, 2026(expired)· nominal 20-yr term from priority
G09G 2310/04G09G 3/003G06T 15/60G09G 5/34
76
PatentIndex Score
3
Cited by
19
References
21
Claims

Abstract

One embodiment of the present invention provides a system that uses a successive-convolution technique to render shadows produced by a set of shadowing sprites onto a shadowed sprite. During operation, the system initializes a shadow map. Next, the system iteratively processes each shadowing sprite, starting at a furthest shadowing sprite from the shadowed sprite, and iterating through successively nearer shadowing sprites, until a nearest shadowing sprite is processed. In doing so, the system processes each shadowing sprite by first transforming the shadowing sprite's coverage map to the parametric space of the shadowed sprite. Next, the system composites the transformed shadowing sprite into the shadow map, and then incrementally blurs the resultant shadow map.

Claims

exact text as granted — not AI-modified
1. A method for using a successive-convolution technique to render shadows produced by a set of shadowing sprites onto a shadowed sprite, comprising:
 initializing a shadow map; and 
 iteratively processing each shadowing sprite starting at a furthest shadowing sprite from the shadowed sprite and iterating through successively nearer shadowing sprites until a nearest shadowing sprite is processed, wherein processing each shadowing sprite involves,
 transforming the shadowing sprite's coverage map to a parametric space of the shadowed sprite, 
 compositing the transformed shadowing sprite into the shadow map, and 
 incrementally blurring the resultant shadow map, wherein incrementally blurring the resultant shadow map comprises performing an incremental convolution which is functionally related to the distance between the shadowing sprite and the next-nearest shadowing sprite, wherein the initializing, the iterative processing, the transforming, the compositing and the incremental blurring are executed by a computer processor. 
 
 
     
     
       2. The method of  claim 1 , wherein transforming the shadowing sprite's coverage map to the parametric space of the shadowed sprite involves shifting the shadowing sprite's coverage map based on light direction and the Z-distance between the shadowing sprite and the shadowed sprite. 
     
     
       3. The method of  claim 1 , wherein performing the incremental convolution involves performing a Gaussian convolution on the resultant shadow map. 
     
     
       4. The method of  claim 3 , wherein performing the Gaussian convolution involves performing the incremental convolution based on the property that Gaussian convolution widths add in quadrature, whereby the successive incremental convolutions applied to the shadow map for nearer shadowing sprites result in a composite blur width for the shadowing sprite which is consistent with the total Z-distance between the shadowing sprite and the shadowed sprite. 
     
     
       5. The method of  claim 1 , wherein after the iterative process is complete, the method further comprises using the resultant shadow map as a shadow texture while rendering the shadowed sprite. 
     
     
       6. The method of  claim 1 , wherein the method is used to render shadows for each layer in a scene, except for a nearest layer. 
     
     
       7. The method of  claim 1 , wherein a given sprite comprises a planar surface which is orthogonal to the Z-axis, and wherein the given sprite has:
 a Z-coordinate; 
 a diffuse color texture for the planar surface; and 
 a coverage map which determines coverage of the planar surface. 
 
     
     
       8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for using a successive-convolution technique to render shadows produced by a set of shadowing sprites onto a shadowed sprite, the method comprising:
 initializing a shadow map; 
 iteratively processing each shadowing sprite starting at a furthest shadowing sprite from the shadowed sprite and iterating through successively nearer shadowing sprites until a nearest shadowing sprite is processed, wherein processing each shadowing sprite involves,
 transforming the shadowing sprite's coverage map to a parametric space of the shadowed sprite, 
 compositing the transformed shadowing sprite into the shadow map, and 
 incrementally blurring the resultant shadow map, wherein incrementally blurring the resultant shadow map comprises performing an incremental convolution which is functionally related to the distance between the shadowing sprite and the next-nearest shadowing sprite. 
 
 
     
     
       9. The computer-readable storage medium of  claim 8 , wherein transforming the shadowing sprite's coverage map to the parametric space of the shadowed sprite involves shifting the shadowing sprite's coverage map based on light direction and the Z-distance between the shadowing sprite and the shadowed sprite. 
     
     
       10. The computer-readable storage medium of  claim 8 , wherein performing the incremental convolution involves performing a Gaussian convolution on the resultant shadow map. 
     
     
       11. The computer-readable storage medium of  claim 10 , wherein performing the Gaussian convolution involves performing the incremental convolution based on the property that Gaussian convolution widths add in quadrature, whereby the successive incremental convolutions applied to the shadow map for nearer shadowing sprites result in a composite blur width for the shadowing sprite which is consistent with the total Z-distance between the shadowing sprite and the shadowed sprite. 
     
     
       12. The computer-readable storage medium of  claim 8 , wherein after the iterative process is complete, the method further comprises using the resultant shadow map as a shadow texture while rendering the shadowed sprite. 
     
     
       13. The computer-readable storage medium of  claim 8 , wherein the method is used to render shadows for each layer in a scene, except for a nearest layer. 
     
     
       14. The computer-readable storage medium of  claim 8 , wherein a given sprite comprises a planar surface which is orthogonal to the Z-axis, and wherein the given sprite has:
 a Z-coordinate; 
 a diffuse color texture for the planar surface; and 
 a coverage map which determines coverage of the planar surface. 
 
     
     
       15. An apparatus that uses a successive-convolution technique to render shadows produced by a set of shadowing sprites onto a shadowed sprite, the apparatus comprising:
 an initialization mechanism configured to initialize a shadow map; 
 a processing mechanism configured to iteratively process each shadowing sprite starting at a furthest shadowing sprite from the shadowed sprite and iterating through successively nearer shadowing sprites until a nearest shadowing sprite is processed, wherein while processing each shadowing sprite, the processing mechanism is configured to,
 transform the shadowing sprite's coverage map to a parametric space of the shadowed sprite, 
 composite the transformed shadowing sprite into the shadow map, and to 
 incrementally blur the resultant shadow map, wherein while incrementally blurring the resultant shadow map, the processing mechanism is configured to perform an incremental convolution which is functionally related to the distance between the shadowing sprite and the next-nearest shadowing sprite. 
 
 
     
     
       16. The apparatus of  claim 15 , wherein while transforming the shadowing sprite's coverage map to the parametric space of the shadowed sprite, the processing mechanism is configured to shift the shadowing sprite's coverage map based on light direction and the Z-distance between the shadowing sprite and the shadowed sprite. 
     
     
       17. The apparatus of  claim 15 , wherein while performing the incremental convolution, the processing mechanism is configured to perform a Gaussian convolution on the resultant shadow map. 
     
     
       18. The apparatus of  claim 17 , wherein while performing the Gaussian convolution, the processing mechanism is configured to perform the incremental convolution based on the property that Gaussian convolution widths add in quadrature, whereby the successive incremental convolutions applied to the shadow map for nearer shadowing sprites result in a composite blur width for the shadowing sprite which is consistent with the total Z-distance between the shadowing sprite and the shadowed sprite. 
     
     
       19. The apparatus of  claim 15 , further comprising a rendering mechanism, wherein after the iterative process is complete, the rendering mechanism is configured to use the resultant shadow map as a shadow texture while rendering the shadowed sprite. 
     
     
       20. The apparatus of  claim 15 , wherein the rendering mechanism is configured to render shadows for each layer in a scene, except for a nearest layer. 
     
     
       21. The apparatus of  claim 15 , wherein a given sprite comprises a planar surface which is orthogonal to the Z-axis, and wherein the given sprite has:
 a Z-coordinate; 
 a diffuse color texture for the planar surface; and 
 a coverage map which determines coverage of the planar surface.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.