Post Process Video / buffer feedback effect ( smearing / updating render buffer using float map )

Hello, is it possible to do a video feedback effect in unreal engine? I couldn’t find get any relevant search results, but maybe I’m using the wrong terminology? like this kind of effect: Login • Instagram

It’s called Aftereffect. (Occuring after the main effect in a predetermined time interval).

I remember seeing an example of it somewhere on a jumping jack animation that would create rainbow colored particles and pile them on where the arms swing.

no idea if it was in the content examples, or just made with the same character/animation but you should have a look in the content examples.
It’s related to Anim Notifies and Particle Spawning.

Really Though, how to do it would vastly depend on how you wish to utilize it.
is it on a single item? Are you in 3d or paper2d? Etc.

Thank you I’ll look this up, ideally I’d like to visualize it as a post process effect in 3D, using a float texture in screen space, like an alpha channel, so if the map is white then the render buffer isn’t updated, so it just displays the last rendered pixel, but I’m not too picky, I think understanding how to get close to this will allow me to explore alternatives. Ideally it would be great to have a feedback system which allows for other Post Process operations to occur in the feedback loop rather than just a slitscan sort of buffer updating effect.

Well, look… if you can make a post process to color up the bounds of geometry by checking 8 pixels around the current pixel and doing stuff with the results… (and you most definitely can, it’s one of the most used shaders in games I think). I see no reason why you couldn’t apply some similar logic to the post process to create the streak like aftereffect.

Things that will help here are custom stencils, exactly like the outlines.
the motion and length on screen are the hardest parts to figure out. Though technically you shouldn’t care about motion and just lenght on screen / draw interval.

For example, if you can draw an outline every frame, and the object moves every frame but the outline remains for 10 frames overlaying to each other you already sort of got the base effect ready to go.

No idea how one would go about preventing the re-render or leaving the outline in place. Or redrawing the old outline in the same spot every frame… and that would be what needs to be figured out really.
and yes. Buffers make sense, but buffers are 2d.

So maybe you can cook up a few render textures with a scene capture 2d, isolate the character via stancil, and make the postproces fade in the texture of the capture that matches the screen.

Obviously it’s not very performant. But in a pinch it would probably give the result you are looking for with somewhat minimal setup.

Best tutorials to look up for that are the reactive water ones. The wiki has a few and they aren’t very well explained.
However the process they have in the content examples loops and updates at least 3 different render targets over time to generate the geometry on the water plane.

This is by nature already very similar to what you need. Maybe you can adapt the whole concept.
and no, its not only a post process effect anymore…

If you can access the buffer ofc, the process would be similar to the logic of the content example as well…

Oh my! I didn’t know about that node, I can’t wait to try it, I wonder if it can exist in the context of a post process material, and if not, if I can just plop a plane exactly to fit the camera view.

This sounds really interesting, I’ll definitely check it out, I’m really curious how the reactive water system works, maybe key to doing some interesting feedback systems!
Thank you for your time!

NP, take it with a grain of salt though - your idea of going with the buffer is definitely more “proper”.

As far as render target - it’s a texture. I’m sure you can put a texture in a post process (done it recently), as such I’m 99% sure the scene capture’s render target can be shown in the post process.

As far as the reactive water and how it works.
Essentially you draw the character position into the Emissive channel of a render target with a custom brush.
This would be similar to tracing where your character is stepping, making snow trails, making grass trails… with water though it needs to go back from the marked state to flat over time.
The content example does this by looping though and drawing the brush over time on different render targets.

This is the docs page, which I find to be inaccurate.

The content example actually sports different nodes.

Thank you, can’t wait to get some time to have a look at all this, a colleague at work linked me to this video as well, technique using an “accumulation buffer” UE4 | Console - v1 - YouTube

more relevant reading!
https://forums.unrealengine.com/development-discussion/rendering/115968-post-process-frame-blur-decay-render-target-etc

ps my current approach is with a plane in front of a camera using render target, but the above link looks like a better approach