Recent from talks
Temporal anti-aliasing
Knowledge base stats:
Talk channels stats:
Members stats:
Temporal anti-aliasing
Temporal anti-aliasing (TAA) refers to two distinct forms of anti-aliasing in computer graphics. The commonly understood meaning is formally referred to as temporally-amortized supersampling anti-aliasing, which is a specific technique that removes spatial aliasing from an image, using data from multiple frames, and is used in video games and real-time rendering. Using this meaning, TAA is a type of spatial anti-aliasing technique. The older meaning is a general class of techniques that remove temporal aliasing and create motion blur. Using this meaning, TAA is not a type of spatial anti-aliasing technique.
The commonly understood definition of TAA is a spatial anti-aliasing technique for real-time computer graphics that reuses information from previously rendered frames to remove aliasing, such as jaggies, from the current frame. The term temporal anti-aliasing is somewhat of a misnomer, and this technique is formally referred to as temporally-amortized supersampling. It is also known as TXAA (an implementation by Nvidia) or Temporal Super-Sampling Anti-Aliasing (TSSAA). This method can achieve results comparable to supersampling, at a small fraction of the computational cost, but produces soft images and can cause ghosting. TSSAA popularized in video games in the 2010s, with two early examples being Halo: Reach and Crysis 2, and is now the most common form of spatial anti-aliasing in real-time rendering and game engines.
Each pixel is sampled at a slightly different position each frame, which is achieved by adding a 2D offset to each frame, a "jitter" that shifts the image by a fraction of the size of a pixel, horizontally and vertically. The jitter changes each frame, following a pattern (such as a Halton sequence) so that every point in the image is sampled evenly over time.
Old frames are blended into the current frame, accumulating historical rendering data, approaching the result of supersampling over time. Changes to the scene—such as moving objects, camera motion, or changes in lighting—often mean that the history for any given pixel may be somewhere else on screen, be invalid, or may not exist at all. Failure to account for these changes results in ghosting.
To account for movement, velocity vectors are maintained in the G-buffer, allowing the location of each pixel in the previous frame to be calculated. The pixel at that location in the previous frame is accumulated into a history buffer, at its new location. This is called reprojection. Accurate velocities are required to prevent smearing.
Often, the historical data for a pixel will become invalid due to changes in occlusion, such as the pixel having recently become visible after being blocked by an object last frame. This causes ghosting unless it is detected: One method is to compare the depth of the historical position to the depth values in the current pixel's neighborhood. Color can also be useful for validating the history of a pixel, since a sudden change in color can indicate new lighting conditions or an incorrect pixel velocity.
A drawback of TSSAA is that it does not work well with transparent objects, particles, or reflections, because they can produce incorrect velocity vectors. In the case of transparency, this is because only one velocity vector can typically be stored per pixel. Dithering can be used to simulate opacity, a technique known as screen-door transparency, which works with TSSAA and is smoothed out over time by it.
Ghosting and blurriness are two disadvantages specific to TSSAA, though both can be significantly reduced with proper implementation. TSSAA requires more engine- and game-specific tuning than other anti-aliasing methods to achieve acceptable results; poorly-tuned implementations can severely exacerbate TSSAA's issues in some situations.
Hub AI
Temporal anti-aliasing AI simulator
(@Temporal anti-aliasing_simulator)
Temporal anti-aliasing
Temporal anti-aliasing (TAA) refers to two distinct forms of anti-aliasing in computer graphics. The commonly understood meaning is formally referred to as temporally-amortized supersampling anti-aliasing, which is a specific technique that removes spatial aliasing from an image, using data from multiple frames, and is used in video games and real-time rendering. Using this meaning, TAA is a type of spatial anti-aliasing technique. The older meaning is a general class of techniques that remove temporal aliasing and create motion blur. Using this meaning, TAA is not a type of spatial anti-aliasing technique.
The commonly understood definition of TAA is a spatial anti-aliasing technique for real-time computer graphics that reuses information from previously rendered frames to remove aliasing, such as jaggies, from the current frame. The term temporal anti-aliasing is somewhat of a misnomer, and this technique is formally referred to as temporally-amortized supersampling. It is also known as TXAA (an implementation by Nvidia) or Temporal Super-Sampling Anti-Aliasing (TSSAA). This method can achieve results comparable to supersampling, at a small fraction of the computational cost, but produces soft images and can cause ghosting. TSSAA popularized in video games in the 2010s, with two early examples being Halo: Reach and Crysis 2, and is now the most common form of spatial anti-aliasing in real-time rendering and game engines.
Each pixel is sampled at a slightly different position each frame, which is achieved by adding a 2D offset to each frame, a "jitter" that shifts the image by a fraction of the size of a pixel, horizontally and vertically. The jitter changes each frame, following a pattern (such as a Halton sequence) so that every point in the image is sampled evenly over time.
Old frames are blended into the current frame, accumulating historical rendering data, approaching the result of supersampling over time. Changes to the scene—such as moving objects, camera motion, or changes in lighting—often mean that the history for any given pixel may be somewhere else on screen, be invalid, or may not exist at all. Failure to account for these changes results in ghosting.
To account for movement, velocity vectors are maintained in the G-buffer, allowing the location of each pixel in the previous frame to be calculated. The pixel at that location in the previous frame is accumulated into a history buffer, at its new location. This is called reprojection. Accurate velocities are required to prevent smearing.
Often, the historical data for a pixel will become invalid due to changes in occlusion, such as the pixel having recently become visible after being blocked by an object last frame. This causes ghosting unless it is detected: One method is to compare the depth of the historical position to the depth values in the current pixel's neighborhood. Color can also be useful for validating the history of a pixel, since a sudden change in color can indicate new lighting conditions or an incorrect pixel velocity.
A drawback of TSSAA is that it does not work well with transparent objects, particles, or reflections, because they can produce incorrect velocity vectors. In the case of transparency, this is because only one velocity vector can typically be stored per pixel. Dithering can be used to simulate opacity, a technique known as screen-door transparency, which works with TSSAA and is smoothed out over time by it.
Ghosting and blurriness are two disadvantages specific to TSSAA, though both can be significantly reduced with proper implementation. TSSAA requires more engine- and game-specific tuning than other anti-aliasing methods to achieve acceptable results; poorly-tuned implementations can severely exacerbate TSSAA's issues in some situations.