#Paint Shader Recreation Help (Blender to Unity)

1 messages · Page 1 of 1 (latest)

bold prairie
#

Hi, I'm new to the engine (I've used it for modding in the past, but little to nothing custom) and the main thing I'm looking to learn first and foremost is Shaders and VFX. I've been using Blender for years and am used to its shaders, and I have one that I want to recreate in Unity's Shader Graph.

The main focus right now is on how my shader changes the normals, where I'm using this brush stroke texture, manipulated with a noise texture, mixed with a voronoi all affecting the normal to get this more painterly, uneven surface breakup.

I haven't been able to recreate the effect in Unity, maybe I just don't understand quite enough of the Unity nodes yet to achieve the same effect, but any assistance would be appreciated. I don't know for sure if this is the right channel or if these kinds of questions are allowed but I hope this is okay!

If needed I can also give the blend file, brush texture etc.

bold prairie
#

Actually, come to think of it, it might be better not to do the normal manipulation in unity itself since that might hurt performance when it's on nearly every object, might just bake them first instead

strange raptor
#

Unity has nothing comparable to "shader to rgb" and the lighting calculations aren't normally open for modification
So to make a similar material you'll need a graph that recreates the lighting in a way you can modify
Unity 6.3 has graph templates for custom lighting, and there's a third party option that may be more reliable:
https://github.com/Cyanilux/URP_ShaderGraphCustomLighting

deft depot
bold prairie
bold prairie
#

this is without any lighting changes, just the normal effect

#

but since it's a realtime effect, would it do too much to the performance if I put it in the shader itself instead of just as a baked normal map? since this is something that would be done to pretty much every object in the game

deft depot
#

you can actually manipulate the normal inside the shader itself, and that shouldnt hurt performance (much, depends on what you do with it)
Like you take vertex or pixel normal input, posterize it and output it to the shader

bold prairie
#

I see, well in that case would you know how best to replicate the normal shader?

#

this is everything actually relevant to it

bold prairie
strange raptor
# bold prairie this is everything actually relevant to it

There are no 3D noise nodes of this sort in Unity, and 2D noise nodes are already pretty expensive to use
But as far as I can tell all these should bake down to just one tangent space normal map with practically the same result
Then it will be trivial to use, and compatible with other shaders' normal map / detail normal map inputs