You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aliasing is a problem resulting from high-frequency signals being discretized with too low sample count. In today's image rendering, for anti-aliasing methods are usually used that query more samples per image area (so higher frequencies can be correctly discretized).
Nevertheless, these methods do not scale well. They only work as long as no higher frequency appears in the signal and require larger sample counts than higher the frequencies are.
There exist different methods that don't have this drawback. For example, in earlier years of OpenGL, GL_POLYGON_SMOOTH allowed rendering edges of triangles fuzzy, which smoothed transitions and thereby reduced frequencies at triangle edges.
The feature, though, was poorly implemented and lacked hardware support. Also, not being customizable, it was rarely used.
Another method is to, instead of sampling single fragments in the scene and aggregating these samples per pixel, average all parts of primitives that are covered by a pixel frustum part to calculate the resulting value.
In modern graphics hardware, this can be done by conservative rasterization. Conservative rasterization allows for every pixel to retrieve all primitives that have parts mapped to that pixel.
Additionally, auxilliar data, like how much of the pixels area is covered by a primitive or which primitive has the lowest/highest depth, can be retrieved using built-in functionality.
As every (visible) fragment in a pixel has an effect on the resulting pixel data and the data is applied to the whole pixel, regardless of the actual position of the fragment within the pixel, frequencies are smoothed out and less or no aliasing occurs.
(Also, the algorithm can be extended beyond a single pixel, further reducing aliasing.)
Alternatively viewed, every primitive extends smoothly beyond their edges, similar to an SDF, so no hard transitions between a primitive's edge and other geometry appear.
Along with anti-aliasing, conservative rasterization also allows for easy computation of other effects, like, e.g. special transparency effects or blurring.
Modern anti-aliasing can also be combined with different kinds of super-sampling methods (like sampling every fragment multiple times or perform modern anti-aliasing per sample instead per pixel).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Aliasing is a problem resulting from high-frequency signals being discretized with too low sample count. In today's image rendering, for anti-aliasing methods are usually used that query more samples per image area (so higher frequencies can be correctly discretized).
Nevertheless, these methods do not scale well. They only work as long as no higher frequency appears in the signal and require larger sample counts than higher the frequencies are.
There exist different methods that don't have this drawback. For example, in earlier years of OpenGL, GL_POLYGON_SMOOTH allowed rendering edges of triangles fuzzy, which smoothed transitions and thereby reduced frequencies at triangle edges.
The feature, though, was poorly implemented and lacked hardware support. Also, not being customizable, it was rarely used.
Another method is to, instead of sampling single fragments in the scene and aggregating these samples per pixel, average all parts of primitives that are covered by a pixel frustum part to calculate the resulting value.
In modern graphics hardware, this can be done by conservative rasterization. Conservative rasterization allows for every pixel to retrieve all primitives that have parts mapped to that pixel.
Additionally, auxilliar data, like how much of the pixels area is covered by a primitive or which primitive has the lowest/highest depth, can be retrieved using built-in functionality.
As every (visible) fragment in a pixel has an effect on the resulting pixel data and the data is applied to the whole pixel, regardless of the actual position of the fragment within the pixel, frequencies are smoothed out and less or no aliasing occurs.
(Also, the algorithm can be extended beyond a single pixel, further reducing aliasing.)
Alternatively viewed, every primitive extends smoothly beyond their edges, similar to an SDF, so no hard transitions between a primitive's edge and other geometry appear.
Along with anti-aliasing, conservative rasterization also allows for easy computation of other effects, like, e.g. special transparency effects or blurring.
Modern anti-aliasing can also be combined with different kinds of super-sampling methods (like sampling every fragment multiple times or perform modern anti-aliasing per sample instead per pixel).
Examples and Sources:
https://www.cg.tuwien.ac.at/research/publications/2013/Auzinger_2013_NSAA/Auzinger_2013_NSAA-Paper.pdf
https://cwyman.org/papers/i3d15_ftizb.pdf
https://patents.google.com/patent/EP2854108A2/en
Other anti-aliasing approach, but contains much Related Work:
https://dl.acm.org/doi/pdf/10.1145/3452097
Beta Was this translation helpful? Give feedback.
All reactions