I have done an object highlighting setup which highlights interactable objects when either the crosshair is over one or when the player is at a certain distance from it. Currently i got a very nice outline by using a material as a blendable in global post processing.
What I would like to do as well is not only an outline but a “highlight” of the whole mesh. Swapping materials is not the way to go as I want to keep the overall look & feel and just add a glow (also this should be applicable to many different types of objects with various material setups). Another post volume is also out of question as I want the effect to follow the contours of the object exactly.
Probably this video will help you: I sometimes use the material setup that you can see in it for items so that they are glowing a little bit without loosing their base colour (but of course you will have to edit it a little bit to get a very good result)
Thanks for the link - I’ve had a quick look. As I’ve said, I try to avoid doing it this way as I would have to duplicate a great deal of materials (I assume you just switch the materials as they do it in the content examples), i.e creating a highlight material for each normal material. I was hoping there is a more generic/efficient approach like some kind of material “overlay” or something.
By the way, I’m using this for all kinds of meshes (skeletal, skeletal rigid, static, etc)
It’s a valid approach and perfectly doable, downside is that I still need to touch every material (at least I dont have to double them I have complex objects with 7 to 10 materials for each, I just wondered if there is a way to apply the effect at the post level like with a blendable material…If not, I’ll probably use your proposed solution…
Did you find a better way of applying your highlight effect without modifying every material you had? I’m stumbling on the same issue. I wished I could “sample” an existing material from another material. This way I could make a “super” material that I apply dynamically to the selected object, put the old material as an input of the super material (programmatically), and blend it with another set of effect. But that doesn’t seem doable.
The best I got working was creating a material function and a material parameter set, so I just had to add these two nodes to the materials. Then I just altered the glow strength to switch the highlighting on/off via BP.
But to be frank, I am sticking with the outline highlighting of the object as I didn’t like the highlighting of the full object after all. This is doable by using blendables in the global post processing volume and just requires turning on one setting of a mesh (custom depth pass).
Sorry to bump this thread from May, but just to echo some of the questions asked in this thread as I couldn’t find a conclusive answer -
Q1) As you’ve all noted, for item highlighting the Content Examples project uses a hidden duplicate mesh with a redundant emmissive material and toggles mesh visibility for highlighting items. Is there a reason not to favor a parametric material whose emmissive nature can be controlled via blueprints instead? Is there a performance benefit to using the sample project’s approach?
Q2) Is outlining of objects typically done in a post processing volume or the material/shader itself? The example project uses a post processing volume but because of how it works the mesh outline is rendered on top of all other actors on the screen so while it’s perfect for a first person game, it overlaps the character model in a third person setup (for the latter I realize I’ll probably need to investigate the post process material to see why that is the case)