Is it possible to get negative colors on UMG?

Simply put, I want to have part of the UMG to display the negative colors of the scene. How should I do it?

My current solution is creating a regular material, using scene color node and 1-x node to get the negative colors, applying this material to a 2D sprite, and always placing the sprite in front of the player camera. That seems a hack (?).

When I try to create an image in UMG and add that material to the image, the editor tells me the material has to switch from surface to user interface domain, where unfortunately the scene color node cannot be used. :’<

Thanks for any advice.

You should use a post process material instead, check this tutorial out:

Just use 1-x node in that material.

I hope this helps :slight_smile:

Yes. It’ll require some work, but doable in Post shader.

Could you elaborate a bit?

What I want to do is to sort of emulate 0:39-0:43 of this clip ( DIO ZA WARUDO compilation (JoJo's Bizarre Adventure:Stardust Crusaders) - YouTube ), that is

  • spawn a circle in the center of the screen
  • enlarge the radius until the circle covers all the screen, then shrink the radius
  • display negative colors inside the circle

Would it be possible to implement this transition using post process volume/material?

Add a post process volume to your scene if you scene does not include one already. A post process setting is like an instagram filer for your game.

Make sure the post process volume has the “Unbound” setting checked, basicly this will tell the filter to apply to the entire scene, not just to the items inside of the volume

Create a material (your filter), and change the material settings as follows:

https://docs.unrealengine.com/latest/images/Engine/Rendering/PostProcessEffects/PostProcessMaterials/DomainPostProcess.jpg

Then in the material take the SceneTexture PostProcessInput0 node, connect it to a 1-x node and then connect that to your emissive input.

Apply this material to your post process volume

You should check the article I posted in the previous answer for more info