Deffered Decals vs Vertex Painting

Hello everyone!
I’m working hard on my project , always trying to pay attention to performance and maintaining the lowest possible draw calls.
For this reason, since the game i’m making will have extensive use of decals/marks (on walls, floors etc), i would ask: which is the best choiche for performance beetween Deffered Decals or Vertex Painting?
I did a quick search, and it seems that a high use of Vertex Painting is not recommended, anyone can confirm this?
Any given advice is welcome!

I would like to know that too… I was thinking about having maybe 50+ decals on my scene at the same time. Not sure if it’s a good idea.

My idea was to use decals to put rust/dust/wear on some objects instead of vertex painting. I have more control with decals imo.

Bump :slight_smile:
Want to know too.
In our VR project we use a lot of decals, but thinking about vertex paints for some of effects (cause in profiler decals sometimes take a lot of time( ).
And what difference in Decals vs Vertex paint? seems Decals make mesh render twice? does Vertex paint do same? or can they can be baked?

Can anyone tell me - what is more effective for GPU perfomance?

yeap. sorry for my English.

Well, if you use Instanced Static Meshes that already have Vertex painting, you have vertex paint with the benefit of Instanced Static Meshes. Your meshes will look the same though (can broken up with Material nodes like world Position or Noise)
I prefer Vertex Paint.

Honestly, I would recommend both. Because they both have places where they shine and places where they fall short. I think one of the best examples of this is how much area of the mesh is it covering? If it’s some occasional leaking or graffiti, you’ll likely be better off using a decal, because vertex painting requires a sizeably larger amount of instructions for such a finite area. However, if it’s for covering the entire roof of a building with snow, you’ll likely want to use vertex paint, as decals’ performance hit is directly proportional to the amount of pixels it’s covering, a caveat it shares with particle systems.

Another thing you might want to take a look at is using vertex painting in conjunction with the UE4’s relatively new “Merge Actors” options. One of the coolest things about it is that when merging multiple static meshes, you are given the option to merge all of their textures into a new one, but there’s another option that when enabled will store any vertex paint data on the meshes being merged and bake it into the previously mentioned texture atlas. In my tests, it’s a win on pretty much every front. Less draw cells, fewer texture fetches, and you can still keep the custom vertex paint data without the performance cost.

But like I said before, you should be using both. Never limit yourself to a single method of achieving something just because it appears more appealing in that moment. The best artists always consider all their options for different scenarios (:

I know it’s an old post. But the myth must be disproved. In my project I am using 3962 decals and all have 512x512. If to delete all of them. I gain 4 to 5 FPS more in my game. If I upload the textures to 4k and delete them. I gain between 10 and 12 FPS more. It must also be said that I am using Lumen

Fps mean next to nothing.

And the difference between decals and vector paint is likely infinitesimal so not something that can be benchmarked in a finished product.

You can set up a benchmark, with say 10000 decals. But then you literally wasted your time making a benchmark that will never give you a true cost per decal value.

Same with vertex paint except since that is always active after a material is set up you know the cost almost immidiately based on material instruction counts…