AcademySoftwareFoundation / AcademySoftwareFoundation/MaterialX

Add temporal antialiasing to MaterialX Viewer

Open
#1,723 1 comment 0 reactions 0 assignees View on GitHub
help wanted
Dominant language
C++
Stars
2.3k
Forks
451
Avg merge
4d 11h
Merged PRs (30d)
8

Description

The [MaterialX Viewer](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/DeveloperGuide/Viewer.md) might benefit from a simple implementation of [temporal antialiasing](https://en.wikipedia.org/wiki/Temporal_anti-aliasing), where the camera transform is jittered each frame, and successive frames are blended together.

In the context of the MaterialX Viewer, no dynamic reprojection would need to be used, and the history buffer could simply be cleared when the user moves the camera.

This antialiasing technique might work particularly well in addressing aliasing of under-sampled MaterialX patterns, which commonly appear in comparisons between real-time and offline renders, and could additionally improve the effectiveness of Filtered Importance Sampling in the context of the viewer.

The following are a few resources that may be useful in this implementation:

- https://en.wikipedia.org/wiki/Temporal_anti-aliasing
- https://sugulee.wordpress.com/2021/06/21/temporal-anti-aliasingtaa-tutorial/
- https://bartwronski.com/2014/03/15/temporal-supersampling-and-antialiasing/

Contributor guide

Open the contributing guide

Research direction

Start with documents/DeveloperGuide/Viewer.md to understand the MaterialX Viewer, then review the linked temporal antialiasing resources. The work is done when the viewer jitters the camera transform across frames, blends successive frames, clears history when the camera moves, and improves aliasing of under-sampled patterns.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.