Best approach for digital car clusters?

Hi! I was lurking around in the forums for a while; building my blueprint-based car game in my free time, and stumbled on something I can’t decide how to do, wondering if you guys which all seem like skilled fellas might give me an advice.

So basically I have an interior view of a quite modern sportscar. In my case the Lamborghini Aventador, which has quite a complex 2D cluster system on the screen. By trying to copy it, I stumbled on two options which could make it work. Of both I am not sure if they work as I want though, how performance-hungry each is compared to the other one, and if it will turn out as I want to in general.

For those who don’t know the cluster I mean, here’s an example:
I have masked base textures for my gauges already. My approaches for this have both pros and cons I will also point out.

First option:
having everything surface-material based. Like, having a mesh of the screen, UV map it properly and make a standard surface material with parameters, masks and functions, plugging the gauges to the emissive color then.

-would work on the mesh I have, no need to tweak positioning in the blueprint.
-supporting reflections and specular, which is always nice, although not necessary.

-complex work with masks, functions, calculating pivots etc, which I am not quite sure if I can do that in blueprint (or… at all)
-materials don’t support fonts and text afaik. At least it’s not easy and I think very performance expensive. Would need that for speed display, mileage etc.

Second option:
creating a 3D widget component.

-far easier to layout and work with function-wise.
-would properly display text and pivot points would be easier to find.

-clumsy to work with in the car blueprint - placing it, having the right scale is a guess-act.
-doesn’t support specular, as mentioned no necessary, though.
-I belive eats more performance than a material. Although not sure.

All in all, have you guys a suggestion for me? probably my options are all bad and you know a better approach? Let me know, would help me a lot :slight_smile:

PS: I am not a super-pro in Unreal, so please have mercy if I listed some pros/cons wrong.

Thanks a bunch :slight_smile:

I don’t have the scene files available right now, but I have managed to get Slate/UMG rendering to a texture inside of a PBR material previously, which is then rendered on UV’d geometry. Its fairly straightforward to do. If I get a chance I’ll see if I can upload the asset/workflow for you - but it should be a good start for you to explore.

(for context, I was using it for interactive displays/keypads/PDAs inside the game world similar to how things were done in Doom III)

Oh wow, I had this option in mind aswell, although I didn’t know this was possible. Would be awesome if you could show me how to do that! Sounds like a perfect workaround tbh.

IIRC, it involves creating a Texture2DParam on your target material called ‘SlateUI’ (if you drop a widget object into your blueprint, and check the details, you should be able to find the material it uses to render the widget. Run up back through the parents until you find the root material, and check the name of the texture parameter node there.). Then you just have to create a widget, initiate a dynamic material instance, and assign the widget’s texture to your material instance.

Thanks! I will take a look at it later today :slight_smile: