Mat LIght Function VS Emissive Txt

Hello everybody! Can Someone explain me the differences between a material using material domain “light function” and a material using emissive textures? I tried to use both of them inside my project and I noticed light function mats are not influenced by post process volumes (temperature and bloom don’t change for example).

Thank y’all!!

Light functions are intended to be used on light actors, not surfaces.

What do you mean they aren’t affected by post process volumes? Are you applying it to a surface? If so it should behave exactly like an unlit emissive material.

1 Like

@Arkiras Ty you for your answer! So If Light Functions are for light actors, what I was trying is no sense? Ye I was using this domain on meshes like displays that I usually manage with emissive textures. I was curious. As I said in the question, post process volume is not changing/customizing lights coming from LF Materials. Settings like bloom, temperature, color management for example are not applied on them. Anyway, Can you help me to understand more about light function? Googling It I didn’t found great infos.

Thank you!

Correct

That’s interesting. I’m not able to reproduce this in either desktop forward or deferred shading so I don’t know why that would happen. They behave exactly like unlit emissive for me when applied to a mesh, affected by post processing and all.

That being said, they’re not meant to be used like this so unexpected behavior is kinda expected.

Light actors only have properties to control very high level effects like the radius, falloff and intensity, but sometimes you want more explicit control like the ability to animate the intensity at a per-pixel level, and for that you would use a light function. Probably the most common use is for faking caustic reflection but it can also be used for gobos.

You can often use decals to get similar effects however the nice thing about light functions is that they will affect volumetric fog (and lumen), which decals can’t do.

Can read more about how they work in the docs (also has some nice examples of where/why you might use it):