Hello Polycounters !
I'm working on some grounds on Unity 5, and I want to mix textures to create variety. I've done it for film in the past inside Maya, and I was thinking it would be easy to do in Unity. I've seen that it's a very basic feature in Unreal Engine 4 ... But in Unity, it's not a smooth workflow at all, there is no native shader, nor native tools to do it.
I found some assets that do it, but I'd rather use less external packages as possible. Plus they are all dated from before Unity 5 and are not PBR compatible.
I don't care to paint in Maya or in Unity. But the real problem is that the shaders that I found are not PBR compatible.
So I was wondering how do you guys, handle that with Unity ? Modified standard PBR shader ?
Here's a quick Technical illustration, done with external asset, and not PBR compatible (and we want it to be compatible without use of external packages) :
Replies
EDIT: Look into the terrain surface shader. I know it says terrain but it's just a version of the standard shader that lets you blend between to sets of textures based on a mask. Looks pretty nice. I'm sure you could edit the shader pretty easily to add more layers as well.
EDIT : I've tried the terrain shader. It's quite good, very close to what I need (it misses a texture input for specular), but unfortunately it can't be used on custom objects
With good maps, it would be very nice ! Too bad we can't use the shader on other objets than Terrain :poly116:
I think Shader Forge's developper is hardly working on making his software compatible with the new native PBR rendering, I've tried it and at the moment it's not flawless at all, but I can't imagine him working on something else !
I wanted to try to manually edit the new Standard shader, it's a file called unity_builtin_extra, but it's quite gigantic : 280 000 lines of code !! so with my micro knowledge of coding I couldn't do much with it !
It's confirmed, Shader Forge 1.1 is planned with PBR native implementation
Here is what I got so far :
lerp blending :
Height Blending :
If this is what you want, you can get the shaders from here :
I didn't know we could do that. It's a step higher in terms of quality and map blending possibilities !
Here's my quick test with bad maps :
So, under the hood, the idea is to blend value between the alpha mask and vertex value ? is that it ?
I'm not used to work with an Alpha Channel inside image files, I've used TGA 32bit to make it work, do you know if it's an optimal format ?
Anyway, thank you again, awesome awesome work !
We have some introductory info about this on the wiki, FWIW
http://wiki.polycount.com/wiki/Texture_formats
As Eric said, Unity automatically convert your source images to compressed format for the game. you can use any format you want, that support alpha channel ( PSD/TGA/TIFF/PNG .. etc).
I found that we can bake AO in the vertex color !! It should allow some nice effects ...
So what's really needed now, is a good vertex painting tool, inside maya if possible. I've heared about Vertex Chameleon, it seemed quite powerful but it's no longer developped and is not working anymore on version 2015 of maya And unfortunately I didn't find any other plugin that seemed to propose some vertex color painting tools
Native tools of maya don't allow a per channel appoach, and that's quite annoying because when you add blue to red, il firsts want to go through green like color does, so in the shader, it blends a map that should'nt be there
Apply Color function allows a per channel coloring, but it's a per selected vertex tool, not very practical to work with a hundreds of assets to have to produce
Any Advice ?
For the fun, that's where I'm at with ShaderFX on maya ; It's a big mess, but potential is here !!
I am having the exact same problem. Can't find anything all the package links are dead - including the one you posted here, could anyone reupload? I know it's been a while but still trying...
I have to do the exact same thing - paint pbr shaders on a mesh, in Unity.
Any answers?
https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=relevance/query=vertex&paint&pbr
https://github.com/slipster216/VertexPaint
Or go to Unreal. Unity is positioned at the opposite end of the spectrum - it is a sort of blank canvas for you to work with in a relatively free but highly manual fashion, whereas unreal provide a hell of a lot but you have to do things in a much more specific way.