Jump to content
  • Advertisement
Sign in to follow this  
ChenA

temporal aa flickering

This topic is 717 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

recently i implement a temporal aa, everything is ok, but the stair is flickering when camera is static.

 

i don't find any material about anti-flickering solution, except the ue4 taa paper <<High Quality Temporal Supersampling>>.

but it don't contain the detail implemention.

 

i find in ue4 shader code, i found it pass a low-pass filtered color to the neighbor aabb clip function.

and it seems in default ue4 don't do the low-pass filter, the low-pass filtered color just = current color.

 

anybody have some solution to solve the noisy flickering?

thanks.

Edited by ChenA

Share this post


Link to post
Share on other sites
Advertisement

Haven't even gotten time to read it yet, but: http://www.j4lley.com/content/publications/pdf/pg2016-phlm.pdf

 

That being said it shouldn't be flickering under a static camera, unless there's dramatic lighting changes going on. Some more information, such as what you've got so far, would be helpful.

 

thanks for your reply, i will read it.

for my situation, lighting is not change.

under a static camera, taa will jitter the camera, the stair edge normal will change dramatical, that is where the flickering come from.

Edited by ChenA

Share this post


Link to post
Share on other sites

PHLM is not suitable for game, it use 7ms, ue4-taa use 0.4ms.

and it produce more jagged pixel than ue4-taa, ghosting is less than ue4.

Share this post


Link to post
Share on other sites

Yeah it turns out that paper's a bit theoretical at the moment. But are you missing an exponential history buffer? You're supposed to accumulate over time, blending previous frame(s) with the current one according to some exponential function. It sounds like you're just jittering camera position without blending from previous frames?

Share this post


Link to post
Share on other sites

Yeah it turns out that paper's a bit theoretical at the moment. But are you missing an exponential history buffer? You're supposed to accumulate over time, blending previous frame(s) with the current one according to some exponential function. It sounds like you're just jittering camera position without blending from previous frames?

 

i blending from previous frames, if want the stairs don't flicker, the current frame blend factor must be 0.01, but when use 0.01, the whole image is too blur.

i add a sharp filter pass, but it is still too blur.

i know should calculate different blend factor for every pixel.

i try some algorithm, but don't work.

how did you calculate the blend factor?

thanks.

Edited by ChenA

Share this post


Link to post
Share on other sites

I think you could build some information from neighbouring pixels, store and filter this information as well to have something to compare for the next frame.

 

E.g. if you use a bounding box from neighbour pixel world space positions, this box would become large for flickering edge pixels - large enough so the actual frames pixel fits in no matter if it's infront or behind a flickering edge. So you could calculate a small blend factor to hide flickering.

If a dynamic object crosses the screen, bounding box test fails -> large blend factor -> no ghosting.

 

Is that the general idea of TAA? (I'm no expert here)

 

So, instead bounding box in corld space you could also try:

Bounding box in color space

Normal cone

Bounding rect of 2D screen velocity (sounds like the best idea to me?)

 

However, i guess you can get good AA with little ghosting from something like that, but increasing sharpness is another question.

Personally i think realtime graphics are mostly too sharp and i really like UE4 TAA - it's blurry, but look at real camarea footage - blurry too.

Share this post


Link to post
Share on other sites

I think you could build some information from neighbouring pixels, store and filter this information as well to have something to compare for the next frame.

 

E.g. if you use a bounding box from neighbour pixel world space positions, this box would become large for flickering edge pixels - large enough so the actual frames pixel fits in no matter if it's infront or behind a flickering edge. So you could calculate a small blend factor to hide flickering.

If a dynamic object crosses the screen, bounding box test fails -> large blend factor -> no ghosting.

 

Is that the general idea of TAA? (I'm no expert here)

 

So, instead bounding box in corld space you could also try:

Bounding box in color space

Normal cone

Bounding rect of 2D screen velocity (sounds like the best idea to me?)

 

However, i guess you can get good AA with little ghosting from something like that, but increasing sharpness is another question.

Personally i think realtime graphics are mostly too sharp and i really like UE4 TAA - it's blurry, but look at real camarea footage - blurry too.

 

 

thanks for your reply.

normally, taa use color space aabb clamp.

yet, we can calculate a small blend factor for flickering pixel if the history pixel is near clamp, as i said before, if can't perceived the flickering,

this blend factor must be very small, 0.01.

but the other pixel's blend factor also decrease, lead to the blurry.

 

ue4 blurry is acceptable, but if use 0.01 as blend factor, it's too blurry.

Share this post


Link to post
Share on other sites

You should post a screenshoot - maybe we can spot something obvious like the jitter range being too wide.

Most TAA implementations flicker at edges (UE4 does). I was impressed by TAA from game Inside - no flicker but quite blurry.

Did you try to add some randomness to the jitter to make the flickering less regular?

Edited by JoeJ

Share this post


Link to post
Share on other sites

You should post a screenshoot - maybe we can spot something obvious like the jitter range being too wide.

Most TAA implementations flicker at edges (UE4 does). I was impressed by TAA from game Inside - no flicker but quite blurry.

Did you try to add some randomness to the jitter to make the flickering less regular?

 

i will post some screenshoot lately.

i check out the inside's shader code, https://github.com/playdeadgames/temporal.

it don't have especial code to reduce flickering.

i use the blend factor calculate method which the inside use, don't work for me.

 

add some randomness, yeah, i will try it.

thanks.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!