Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TAA reprojection #6048

Merged
merged 16 commits into from Mar 7, 2024
Merged

TAA reprojection #6048

merged 16 commits into from Mar 7, 2024

Conversation

mvaligursky
Copy link
Contributor

@mvaligursky mvaligursky commented Feb 9, 2024

Improvement to the initial TAA implementation (#5909):

  • Support for moving camera

Other changes:

  • partial support for velocity buffer rendering, will be finished in a follow up PR
  • new TAA example
taa1080.mov

Limitations:

  • No support for moving objects - velocity buffer implementation needs to be finalized for this.
  • The scene gets slightly soft when TAA is enabled. This is typically improved by a sharpening pass, which will be added in a separate PR.

@mvaligursky mvaligursky marked this pull request as draft February 9, 2024 14:19
@mvaligursky mvaligursky self-assigned this Feb 9, 2024
@mvaligursky mvaligursky added area: graphics Graphics related issue enhancement labels Feb 9, 2024
Martin Valigursky added 3 commits February 9, 2024 14:20
# Conflicts:
#	examples/src/examples/graphics/post-processing.mjs
@Maksims
Copy link
Contributor

Maksims commented Mar 2, 2024

Velocity buffer can be very useful for WebXR Space Warp technique. https://developer.oculus.com/documentation/web/webxr-space-warp/

I guess the format of vector data and the way it is stored is important here. If it matches between implementations - that would be just amazing!

@mvaligursky
Copy link
Contributor Author

Velocity buffer can be very useful for WebXR Space Warp technique.

created an issue: #6116

@mvaligursky mvaligursky marked this pull request as ready for review March 7, 2024 11:36
@mvaligursky mvaligursky requested a review from a team March 7, 2024 11:36

accumulationTexture = null;
/**
* @type {Texture}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* @type {Texture}
* @type {Texture|null}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is one of the unsolved issues I have with types. I want to declare a member ahead of time, like TS does, and then initialize it in constructor. But that does not mean the null is a valid type, as I assign a texture object to this in the constructor. So marking type as Texture|null just gives me VSC error on every access to it if I'm missing a null check. So I prefer to have a single error here and not allow null.

Thoughts?

Martin Valigursky and others added 2 commits March 7, 2024 14:12
Co-authored-by: Will Eastcott <will@playcanvas.com>
@mvaligursky mvaligursky merged commit 90ae108 into main Mar 7, 2024
7 checks passed
@mvaligursky mvaligursky deleted the mv-taa-reprojection branch March 7, 2024 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: graphics Graphics related issue enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants