A while back I wrote a nice little vertex painting system that used Unity 5.0’s additionalVertexStream feature to allow you to paint on mesh instances. I’ve added a ton of new features to the system, a fully PBR splat map shader with flow mapping and support for 5 splat channels, and released it on my GitHub account today.
Get it here:
Features:
Requires Unity 5.3+
Paint on mesh instances using the new additionalVertexStream features of Unity 5
Supports Color, Position, and UV0-3 as targets for data
Paint mesh deformations, with correct normal and tangent adjustments
Paint Flow direction, for flow mapping and other effects
Bake Ambient Occlusion and simple lighting to any mesh channels
Bake Pivot of the mesh into mesh verts- useful for shatter effects, particle trees, etc
Bake out data to mesh assets
Splat Blend Shader features:
PBR shader based on Metallic or Specular workflow
Blend up to 5 layers of splat texture based on height value in diffuse alpha channel
Designate one layer as a Flow map layer
Support for alpha and refraction on Flow map layer (for water effects)
This is wonderful, I’m looking forward to integrating this into my workflow!
I have a small issue, which really has nothing to do with your tool. And more to do with the shaders.
So far my project has been using either toon shaders, or legacy / specular setup shaders, as I’m going for a flat comic style look.
Attached is an example Illustrating my problem. My cartoony textures get washed out when I turn off the metallic and smoothness settings, but in a specular setup, I can change the specular color to black, and the albedo retains it’s saturation.
I don’t know much about shaders so this may be a stupid question, but I was wondering how I could change these shaders to use a specular setup instead of a metallic one? Would this be a simple thing to do? Would the shaders need to be re-written, or just a small amount of code changed?
Anyways, this is such an amazing tool. There are lots more features in this tool, than a lot of the vertex painters I’ve seen on the asset store. Incredible. Thanks so much for releasing it to the public.
Metallic is the preferred workflow because it uses less data (no specular color) and just looks correct with less work. Specular workflow is nice because you can break the laws of reality, achieving some additional looks.
Making a version of the shader which supported a specular workflow wouldn’t be too hard, but if you’re not familiar with shaders that shader is not the place to start- it’s full of tricks to allow it to optimize our what isn’t in use and not be a million lines of duplicate code. I’ll look into rolling a specular workflow version of it when I have some time…
This is an amazing tool!! However, i don’t know if there will be compatibility issues with mobile devices, is that shader PC exclusive?
Right now i’m using a simple splatmap shader that looks fine in the iphone 6 but everything looks pink in the iphone 4s, that’s why im asking… since its an tool that i’d love to use to make my environments look more realistic
Great asset works fantastic, just wondering is there a way to get this working with static objects? I’m getting these 3 errors “not allowed to acces vertices/triangles/colors on mesh” all assets are marked as Read/Write enabled in the importer.
When you mark an object as static, Unity no longer keeps the mesh data on the CPU- which means the vertex painter cannot access that data, hence the errors. Note that by default the vertex painter removed the CPU representation of the data after uploading it to the GPU in runtime mode. However, this doesn’t make the mesh static, and in most cases you won’t get the batching you’d like because every instance of your mesh likely has a unique paint job (which effectively makes it a new mesh). One way around this is to combine/bake the meshes out to unique assets on disk, and then they can be marked static.