![]() The ground truth is shown in the insets in the large image (upper and lower right corners). On the far right, we show two crops of the main image, as well as their corresponding discrete Fourier transforms over both space (DFT(XY)) and time (DFT(ZY)). Our spatiotemporal blue noise (STBN) masks (right of large image) additionally exhibit blue noise in the temporal dimension, resulting in a signal that is easier to filter over time. Traditional 2D blue noise masks (far left) are easy to filter spatially, but exhibit a white noise signal over time, making the underlying signal difficult to filter temporally. The Disney cloud rendered using exponential moving average (EMA) with = 0.1įigure 1 uses stochastic single scattering, where free-flight distances are sampled using a series of blue noise masks over time. In these situations, our noise does no worse than spatial blue noise, so it should always be used instead, to gain benefits where available and do no worse otherwise.įor more information, download spatiotemporal blue noise textures and generation code at NVIDIAGameWorks/SpatiotemporalBlueNoiseSDK on GitHub.įigure 1 shows an example of using blue noise compared to spatiotemporal blue noise.įigure 1. Pixels that are still even for a moment gain temporal stability and lower error, however, which is then carried around by TAA when they are in motion again. For high sample counts, or high dimensions found in algorithms like path tracing, you would likely want to switch to low-discrepancy sequences to remove the error, instead of trying to hide it with blue noise.Īlso worth mentioning is that that pixels under motion under TAA lose temporal benefits and our noise then functions as purely spatial blue noise. Our work focuses on blue noise first and convergence second, which makes for better renders at the lowest of sample counts, where blue noise has the most benefit.Ī notable limitation to blue noise textures is that they work best in low-sample-count, low-dimension algorithms. While other methods combine blue noise and better convergence, they focus on convergence first and blue noise second. We go on a deeper technical dive in the follow up post, Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 2. We also show you how to make non-uniform blue noise textures to allow for importance sampling. This provides better convergence and temporal stability over other blue-noise animation methods. In this post, we add the time axis to blue-noise textures, giving each frame high-quality spatial blue noise and making each pixel be blue over time. To use a blue noise texture, you tile it across the screen, read the texture with nearest neighbor point sampling, and use that as your random value. ![]() Blue noise textures are harder to see and easier to remove than noise made by either random number generators or hashes, both being white noise. ![]() Blue noise textures are useful for providing per-pixel random values to make noise patterns in renderings.
0 Comments
Leave a Reply. |