This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Temporal Anti-Aliasing

Temporal anti-aliasing (also known as TAA) is a technique used to reduce temporal aliasing (flickering or shimmering effects).

ISS without TAA.
ISS with TAA.

TAA Features#

Unlike Multisample anti-aliasing (MSAA) that performs anti-aliasing only on edges of polygons (and makes this edges smoother), Temporal anti-aliasing applies smoothing to the whole scene. In case of full deferred rendering (when the final image is composed of different texture buffers: depth, normal, etc.), MSAA will increase performance costs, because Multisample anti-aliasing should be applied to each texture buffer.

How TAA works#

The main concept of temporal anti-aliasing is to use a sub pixel jitter of scene camera every frame and then combine all this frames into the final image. So, it will take time to get a smoothed picture (for example, 5-7 frames), but with the frequency of 60 frames per second it will look seamlessly.

Simplified demonstration of the TAA camera jitter.

During rasterization process, there is a test whether the object will get into pixel or not. And the object will not be rendered if it doesn't occupy a major part of a pixel.

Vector image before rasterization.

And here we can get an error, when we have a sphere object before rasterization and get a square object after, because some parts of the sphere doesn't occupy enough pixel space.

Bitmap image after rasterization without TAA.

Not a very good rendering, right? And temporal anti-aliasing solves this problem, because camera will have a sub pixel jitter, and each part of this sphere at least once will be rendered in a frame. And after combining these frames, we will get a true sphere, not a square! Voila!

Bitmap image after rasterization with TAA.

Ghosting#

This anti-aliasing technique works perfectly for static scenes (without any moving objects). But when objects are moving, frames will significantly differ one from another and we will see a trail of "ghosts" of the moving object. This effect is called ghosting.

To get rid of ghosting, there is a velocity buffer. Velocity buffer stores information about transformations of objects. Due to this buffer, the engine knows about the object transformation and don't render the "ghosts" of the moving object. Also, the engine checks the color intensity of the pixel, because of camera jitter.

Summary#

TAA has a wide scope of usage, because it improves whole image (not only the edges of the geometry, like MSAA) including geometry, shadows, etc. But the main factor of good TAA working is optimized content on the scene: the higher FPS is, the faster temporal anti-aliasing smooths the scene. In addition to this, UNIGINE 2.0 allows you to choose the type of anti-aliasing: TAA or FXAA.

Last update: 25.12.2019
Build: ()