What kind of Material Functions do you have/use?

Hello Guys,

i used the search for a topic like this but could not find something similar - thats why i have decided to create a new topic.

I started using Unreal recently (for VFX of course) and i am learning with EAT 3D and ImbueFX.

I really like the Advanced FX Masterclass from EAT 3D. In that the instructor sets up quite a few Material Functions upfront to use them later down the line. Im pretty sure this workflow still holds up.

So i wanted to go about creating my own little functions to get a feel for using them and seeing what types of improvements or issus i run into. I dont mean to base my workflow on them completely, but really just checking how to work if them and learn Unreal better etc.

But being rather new its still a little hard to wrap my head around what kinds of functions to build. In the DVD he creates functions for statics, caustics, distortion, a radius, a sprite dot, noise…

Since this is a little all over the place (which is good) im still trying to find out what is best to fill in the gaps and create other functions.

So what kinds of “things” would you do in/as a function?


Unreal Engine 4 comes with a lot of them already! I’m not currently using them in my projects since they have small scopes and I’m pretty much the only person touching that stuff. But later on after testing those shaders for a longer time I’ll have a better idea of what to keep and what I don’t need that much, so I’ll condense some stuff in functions.

Check out this thread where people weigh the pros and cons of this approach, might enlighten you a bit:


I’d say as a good rule of thumb, things that use a lot of math nodes that need 2 or more inputs for the final result, including things that use static (unchanging) scalar values. In general I use them for big messy connections of nodes, and even for smaller things that I will be re-using for multiple materials. I highly recommend looking through the thread @Bruno linked, but I’ll add an example to help answer your question.

This is an example of a simple mat function we use for flickering particles, it has a constant flicker and an option to include a dynamic parameter input for randomization. Not advanced in any way, anyone here could make it, but it just makes it easy to drop into a new material and hook up, and we’ve used it in quite a few of our master materials.


I use this fantastic UE4 remap material function all the time:
Here’s the working bits:

And the result in the Mat Editor:


I think most names speak for themselves:



thanks for all that info, guys! I had already seen the thread and i will read it today - it sems to contain a lot of workflow stuff - very curious!
Thanks for your example node-trees - those are about the size of something i had in mind myself. Not to big, but still very useful and used often.

Thanks Luos - this is what initially had in mind. This is great to see, thanks a lot for sharing!

Time to go and read the thread you posted!

1 Like

Here’s some from my current library. Self explanatory names, hopefully.