I hate UV’s.
This is a Vertex Painting tool for Unity, designed to help me speed up development on games and to be able to ignore UV unwrapping, texturing and that whole thing.
Basically, there are 2 variants of the shader demonstrated in the video.
- Vertex Colored Shaded
This has a base main color, and one color for each vertex. I use the X coordinate of the UV space for each vertex to store the amount of blending between main color and vertex color [0-1]. I use the Y coordinate to store the amount of shading applied to each vertex [0-1]. The fragment shader does basically nothing, allowing me to save performance on mobile.
- Vertex Colored Textured
This one also uses a color per vertex. However, this time I wanted to experiment with texturing. But the challenge was to texture without UV coordinates. So how I ended up doing it was sending the vertex normal and world position into the fragment shader to basically sample from each coordinate [X Y Z]. This allows me to texture in world space, which is fine for non-moving, non-rotating objects (for example props, ground, buildings etc..). I also built a paint mode which lets me blend between the vertex colors and the texture value.