Well i am new Unity user, i’m not programmer i don’t know much about programming, just graphics.
I tried all shaders that come with free unity and in my point of view none of them are complete, always missing something…
Then i found here the Strumpy Shader Editor. Even without programming knowledge i could do something because its node based.
I’m trying to create a shader that uses independent maps, i do not like this thing of having to put the specular in the alpha channel and not have controls for certain things.
My intention is to have a shader that works in the same way as a shader for 3ds max, maya, 3dvia…
Xoliul’s shader works great and has more quality and power on 3ds max, maya viewport than any shader that comes with unity.
So I’m trying to create a shader with independent channel for each map and with value control for each thing, specular level, specular tint, glossiness, normal power etc.
Download the shader i made here: http://www.megaupload.com/?d=VTCM1CY6
Its working but it’s not perfect, because i do not understand programming very well.
Is there any way to make this shader work like Xoliul’s shader (i know that not everything would be supported), or is there a way to convert Xoliul’s shader to work with unity?
It looks like what you’re after is an Übershader, which is generally a bad idea. It’s obviously easier for artists to tune (rather than selecting from a large set of more limited shaders), but it will usually result in poor performance. Most graphics hardware doesn’t get a speed boost when a given part of a shader isn’t used, so you end up calculating a lot of redundant things for most surfaces.
If you want your game to run reasonably, you should start by figuring out which features you need, and which ones you can do without. The result should be a few combinations of features, each appropriate for different surfaces in your game. You can play around with Xoliul’s shader in Max, and then write a few variations that implement only the features you end up using. Some features, like transparency, are unwieldy as well as expensive in real-time graphics, so you probably want to leave them out of most shaders. This is why there are so many variations and combinations that ship with Unity: if you’re not using every feature, it’s a waste of GPU time.
There is no way to get Xoliul’s shader to work in Unity directly, except by porting it manually. This process requires a good working knowledge of both Unity’s Shaderlab language, and whatever language the shader was originally written in.
A naive implementation of an ubershader would indeed have the aforementioned drawbacks, however what mostly happens is that it’s simply a macro to create a shader that only includes the features you want.
Yes, it’s entirely possible to implement Xoliul’s shader in Unity (as far as I know) but as mentioned by Daniel and Duke, Laurens built it for artists to show off their models. It’s not something you’d actually apply to all of the objects in a real game.
You should be able to work it out if you open up his shader and check out the code.