- Number
- 20190340806
- Published
- 2019-11-07
- Filed
- 2019-07-12
- Assignee
- Disney Enterprises, Inc.
- Inventors
- MITCHELL; Kenneth, IGLESIAS-GUITIAN; Jose A., MOON; Bochang, MCDONAGH; Steven G.
- CPC
- G06T13/20; G06T15/06
- Verdict
- High Notable software
- Source
- Google Patents · FreePatentsOnline
The keeper's note
Noise reduction on G-buffers for Monte Carlo filtering PGPUB dup.
Abstract
Techniques for selectively removing Monte Carlo (MC) noise from a geometric buffer (G-buffer). Embodiments identify the G-buffer for rendering an image of a three-dimensional scene from a viewpoint. Embodiments determine, for each of a plurality of pixels in the image being rendered, respective world position information based on the three-dimensional scene and a position and orientation of the viewpoint. A pre-filtering operation is then performed to selectively remove the MC noise from the G-buffer, based on the determined world position information for the plurality of pixels.
Background
BACKGROUNDField of the Invention
The present disclosure relates to the field of computer animation and, in particular, to selectively reducing noise within a geometric buffer.Description of the Related Art
This application relates to the field of computer graphics and animation and to the interfaces for defining the same. Many computer graphic images are created by mathematically modeling the interaction of light with a three dimensional scene from a given viewpoint. This process, called rendering, generates a two-dimensional image of the scene from the given viewpoint, and is analogous to taking a photograph of a real-world scene. Animated sequences can be created by rendering a sequence of images of a scene as the scene is gradually changed over time. A great deal of effort has been devoted to making realistic looking rendered images and animations.SUMMARY
Embodiments provides a method, system and non-transitory computer-readable medium for selectively removing noise from a geometric buffer (G-buffer). The method, system and non-transitory computer-readable medium include identifying the G-buffer for rendering an image of a three-dimensional scene from a viewpoint. The G-buffer contains a plurality of values, and at least one of (i) a depth-of-field effect and (ii) a motion effect has been applied to the G-buffer. The method, system and non-transitory computer-readable medium include determining, for each of a plurality of pixels in the image being rendere
Claims
1. A computer-implemented method of selectively removing Monte Carlo (MC) noise from a geometric buffer (G-buffer), the computer-implemented method comprising: identifying the G-buffer for rendering an image of a three-dimensional scene from a viewpoint, the G-buffer containing a plurality of values; determining, for each of a plurality of pixels in the image being rendered, respective world position information based on the three-dimensional scene and a position and orientation of the viewpoint, the respective world position information including a respective world position sample value derived for the respective pixel; and performing, by operation of one or more computer processors, a pre-filtering operation on the G-buffer in order to selectively remove the MC noise from the G-buffer using a respective filtering weight function for each of the plurality of pixels, wherein the respective filtering weight function is defined based on at least the world position sample value derived for the respective pixel.
2. The computer-implemented method of claim 1, wherein at least one of (i) a depth-of-field effect and (ii) a motion effect has been applied to the G-buffer.
3. The computer-implemented method of claim 2, wherein performing the pre-filtering operation to selectively remove noise from the G-buffer further comprises: determining a plurality of predefined bandwidth values; determining a measure of estimated error for each of the plurality of predefined bandwidth values; and selecting, from the plurality of predefined bandwidth values, an optimal bandwidth value, the selected optimal bandwidth value having a lowest measure of estimated error.
4. The computer-implemented method of claim 3, wherein performing the pre-filtering operation to selectively remove noise from the G-buffer further comprises: defining the respective filtering weight function for each of the plurality of pixels, using the determined derived world position sample value and the selected optimal bandwidth value.
5. The computer-implemented method of claim 4, wherein performing the pre-filtering operation to selectively remove noise from the G-buffer is performed using the defined filtering weight function for each of the plurality of pixels.
6. The computer-implemented method of claim 1, wherein the pre-filtering operation is defined as g ^ c ( k ) = 1 W .Math. .Math. i ∈ Ω c .Math. .Math. w i ( k ) .Math. g ~ i ( k ) , where ĝ.sub.c(k) is the filtered feature at center pixel c in k-th feature buffer, and w.sub.i(k) is a filtering weight allocated to a noisy feature {tilde over (g)}.sub.i(k) stored at the i-th neighboring pixel.
7. The computer-implemented method of claim 6, wherein the filtering weight is defined at a neighboring pixel i for the k-th feature as a function of the determined world position information, wherein the function is defined as w i ( k ) ≡ w ( p ~ i , p ~ c ) = exp ( - d ( p ~ i , p ~ c ) 2 .Math. h 2 ) , where d({tilde over (p)}.sub.i,{tilde over (p)}.sub.c) is a distance function that computed a similarity between two world positions stored in pixel i and center c.
8. The computer-implemented method of claim 7, wherein the distance function comprises a Mahalanobis distance function with a per-pixel 3×3 covariance matrix of world position samples, wherein the per-pixel 3×3 covariance matrix is computed at each center pixel c using the determined world position information.
9. The computer-implemented method of claim 3, wherein determining the plurality of predefined bandwidth values further comprises: receiving a user input explicitly specifying at least one of the plurality of predefined bandwidth values.
10. The computer-implemented method of claim 1, wherein the identifying, determining and performing are performed on each of a plurality of G-buffers, inclusive of the G-buffer, wherein the plurality of G-buffers include at least one of a texture buffer, a depth buffer and a normal buffer.
11. A system to selectively remove Monte Carlo (MC) noise from a geometric buffer (G-buffer), the system comprising: one or more computer processors; and a memory containing computer program code that, when executed by operation of the one or more computer processors, performs an operation comprising: identifying the G-buffer for rendering an image of a three-dimensional scene from a viewpoint, the G-buffer containing a plurality of values; determining, for each of a plurality of pixels in the image being rendered, respective world position information based on the three-dimensional scene and a position and orientation of the viewpoint, the respective world position information including a respective world position sample value derived for the respective pixel; and performing a pre-filtering operation on the G-buffer in order to selectively remove the MC noise from the G-buffer using a respective filtering weight function for each of the plurality of pixels, wherein the respective filtering weight function is defined based on at least the world position sample value derived for the respective pixel.
12. The system of claim 11, wherein at least one of (i) a depth-of-field effect and (ii) a motion effect has been applied to the G-.
13. The system of claim 12, wherein performing the pre-filtering operation to selectively remove noise from the G-buffer further comprises: determining a plurality of predefined bandwidth values; determining a measure of estimated error for each of the plurality of predefined bandwidth values; and selecting, from the plurality of predefined bandwidth values, an optimal bandwidth value, the selected optimal bandwidth value having a lowest measure of estimated error.
14. The system of claim 13, wherein performing the pre-filtering operation to selectively remove noise from the G-buffer further comprises: defining the respective filtering weight function for each of the plurality of pixels, using the determined derived world position sample value and the selected optimal bandwidth value.
15. The system of claim 14, wherein performing the pre-filtering operation to selectively remove noise from the G-buffer is performed using the defined filtering weight function for each of the plurality of pixels.
16. The system of claim 11, wherein the pre-filtering operation is defined as g ^ c ( k ) = 1 W .Math. .Math. i ∈ Ω c .Math. .Math. w i ( k ) .Math. g ~ i ( k ) , where ĝ.sub.c(k) is the filtered feature at center pixel c in k-th feature buffer, and w.sub.i(k) is a filtering weight allocated to a noisy feature {tilde over (g)}.sub.i(k) stored at the i-th neighboring pixel.
17. The system of claim 16, wherein the filtering weight is defined at a neighboring pixel i for the k-th feature as a function of the determined world position information, wherein the function is defined as w i ( k ) ≡ w ( p ~ i , p ~ c ) = exp ( - d ( p ~ i , p ~ c ) 2 .Math. h 2 ) , where d({tilde over (p)}.sub.i,{tilde over (p)}.sub.c) is a distance function that computed a similarity between two world positions stored in pixel i and center c.
18. The system of claim 17, wherein the distance function comprises a Mahalanobis distance function with a per-pixel 3×3 covariance matrix of world position samples, wherein the per-pixel 3×3 covariance matrix is computed at each center pixel c using the determined world position information.
19. A non-transitory computer-readable medium containing computer program code executable to perform an operation for selectively removing Monte Carlo (MC) noise from a geometric buffer (G-buffer), the operation comprising: identifying the G-buffer for rendering an image of a three-dimensional scene from a viewpoint, the G-buffer containing a plurality of values; determining, for each of a plurality of pixels in the image being rendered, respective world position information based on the three-dimensional scene and a position and orientation of the viewpoint, the respective world position information including a respective world position sample value derived for the respective pixel; and performing, by one or more computer processors when executing the computer program code, a pre-filtering operation on the G-buffer in order to selectively remove the MC noise from the G-buffer using a respective filtering weight function for each of the plurality of pixels, wherein the respective filtering weight function is defined based on at least the world position sample value derived for the respective pixel.
20. The non-transitory computer-readable medium of claim 19, wherein at least one of (i) a depth-of-field effect and (ii) a motion effect has been applied to the G-buffer, wherein performing the pre-filtering operation to selectively remove noise from the G-buffer further comprises: determining a plurality of predefined bandwidth values; determining a measure of estimated error for each of the plurality of predefined bandwidth values; selecting, from the plurality of predefined bandwidth values, an optimal bandwidth value, the selected optimal bandwidth value having a lowest measure of estimated error; and defining the respective filtering weight function for each of the plurality of pixels, using the determined derived world position sample value and the selected optimal bandwidth value.