Download

Make Material black except within Volume

As the topic suggests, I want to make a map on a certain wall that starts out black but has a moving volume on it that reveals the area it overlaps. Suggestions?

with no info on what volume shape you want i’d suggest using a spheremask. do you want the revealed parts to stay revealed? then you’ll probably have to resort to writing a mask to a render target.

I’d like to use cubes and cylinders. I want it to work like a subtractive BSP only at runtime if that helps visualize it any.

What about the outline through walls processes? Is there a way to make the outline the objects normal texture and then only create an outline when a specific material is over it?

You can try using the material function “BoxMask-3D” for this. There is also a Cylinder Distance field function that would do it.

I did some searching for “BoxMask-3D” and found that this has the result I need for one revealed area, but can this be used for multiple revealed areas of unknown quantity?
I’m starting to think that I need to approach this from the other direction. Make the wall black and add a new mesh over it that has the map on it tied to world position so I can layer them without any texture position or z fighting issues.

If you want to iterate over an arbitrary number, you’d need a setup like this:

https://forums.unrealengine.com/showthread.php?128723-Feeding-material-with-world-position-offset-data&p=623790&viewfull=1#post623790

Which would require converting the boxmask into some hlsl code which shouldn’t be hard. Or you could give yourself a realistic limit like 10-20, and just wire up that many box masks and control them using Material Parameter Collections.

That sounds doable, I’ll fool around with it and let you know how it comes out.