It would be very nice to have access to more than 2 uv channels per mesh.
As a matter of fact, I wish there was a way to create user defined channels to pass custom data per vertex. Until that is possible, gimme more UV channels please
P.S. Am I the only one who wishes for more UV channels or some nice way to pass custom data per vertex. Using other channels like normal or tangent works that is until you need them.
For example, let’s say you create a mesh that contains a bunch of rectangles but you want the border around those rectangles to be a constant thickness regardless of the aspect ratio of these rectangles. In this case, you would want to provide the shader with information about each rectangles on a vertex per vertex basis to ensure constant border thickness.
Or maybe you want this mesh to also contain other shapes like circles or line segments, then you would need a way to let the shader know what it needs to render.
Crude example of a single mesh containing different shapes using a single shader that can switch types and maintain even border thickness.
I needed it for custom terrain, in which 1. uv is the main texture, 2. uv secondary texture, 3. uv splat map, 4. uv noise. As Stephan said, I’m using the tangents now but it is hack.
and then you add more features which require the use of the normal and tangent channel and then you end up packing 2 floats into a single one to free up that Y (V) in one of the UV channels to get that special data your shader needs
And the good thing is, my UVs are already set up so that I can just apply the damage as a decal. But for now I am forced to use material swaps which I know are slow as HELL. And I am also using SSS which complicates things…
I’m not sure about for the use the OP intended, but for Neptune_Imaging, you could use vertex colours and a vertex blending shader to get the damaged look without material swaps. Of course, this is assuming your not using the colour data for anything else.
The format of vertex data is largely dependent on the GPU hardware and the graphics pipeline, what it supports and how you have to work with it, and the drivers. If the graphics hardware simple does not have more than 2 UV channels supported then there is pretty much nothing you can do to add more channels for that purpose, and have to resort to using other unused channels as mentioned like the tangents. It would be nice to customize everything but hardware has to be very specific in order to be highly optimizable. You also could read in more UV channel data from textures using Vertex Texture Fetch on DX10+.