[Request] Please re-enable Distortion for Particle Systems

Distortion was something I used to use regularly in particle system, while refraction is okay, it requires a LOT of extra instructions and a lot of extra art/maths to make even the most basic distortion material, and takes a huge amount of work to get results anything like what I had in UE3.

Not only that, but in order to get refraction to work, you need a normal texture, which goes through all the same masks and processes that your shape-mask does. This not only increases instruction counts, but also the time it takes to generate the art, your memory usage etc. it all adds up.

While Refraction is great for static objects or water/oceans, it’s not very suitable for particle systems, especially when it increases their complexity massively. It can also be somewhat ugly, my particles now have very defined hard-edges compared to the soft distortion they had in UE3, which has a similar material set-up but adjusted for refraction.

To better explain why this is necessary, the first image shows the same distortion effect and textures in UE3, which is very soft and pleasing to the eye.

The second image shows refraction in Rocket which uses the same texture (but grayscale) as a mask to lerp between different refraction values. As you can see, the effect is MUCH harsher in UE4 and looks very ugly.

Very well explained :slight_smile:

I hope we get that option back or specific instructions on how to reproduce the effect you want very easily in current setup!

We intend to bring back the option to specify a 2d offset - similar to how it was before. This might be combined with motionblur for better performance and the ability to blur the content. It might take us a while to come to this task.
Meanwhile you should be able to achieve the same using refraction.

Awesome, thanks Martin. Good to know there are plans for it!

One suggestion, try and drive your refraction using a lerp, and use a very small range, like .8/1 (1 being no refraction, and 0 being full refraction) You can drive this with a dynamic parameter, OR I like to drive my refaction with my particleAlpha (especially on GPU particles)

I have been able to get very soft/sublte refraction using this method. It’s a bit different, but once you get used to the settings you can get some pretty great results, and the normal map allows for some pretty explicit controls…i.e. you can multiply your normal by a 3 vector, and then drive that with a dynamicParam for some pretty cool effects :slight_smile:

Hope that helps out!