vertex colors vs bitmap texture - cost/performance considerations?

interpolator
Offline / Send Message
thomasp interpolator
just wondering if there's any general rule when it comes to the performance/memory overhead for using vertex colors over a bitmap in materials.

there's currently a single 2048 texture that i'm using in a hair material. it contains two 8bit/greyscale channels, one for a painted texture overlay that supplies strand detail, the other is the alpha mask. i combine that with vertex colors stored in the mesh (around 9500 vertices) and am able to multiply a color value on top of this in the material itself.

the approach seems pretty handy to me because when modeling hair you always end up reusing geometry and a color texture on the same UV set just makes that very obvious. vertex colors on the other hand help to give the strands a unique look and are more quickly doodled onto the mesh than creating a texture.

like so:

 
in my mind using vertex colors must be a lot cheaper than loading in another bitmap to define the strand color but is there a way (preferably in unreal) to profile this or do we have a general rule of thumb for 2016-era engines/hardware? everything i can find regarding vertex color seems to be pretty old and possibly outdated.

in my case the mesh would obviously have to be animated, whichever way, if that changes things. also, in this example it's broken up into an object that casts shadows and a much smaller one sharing the same material that does not.

needless to say - i've looked at a fair few assets from various games and nobody seems to be using vertex color this way.

Replies

Sign In or Register to comment.