Ubershader v4.0 - New Release 5/24/2013, Come and Get It!

is there supposed to be 2 nodes set up or only one?

also for some mat it is interesting to have the fresnel backfacing or the layerwegiht
anyway to add these may be to give more fexibility!

but beginning to look good one node and so much parameters

nice work

happy cycles

ive been following the progress on this fantastic shader however I experience a strange issue. Whenever I link it into a new file and connect it up as a material node the entire computer freezes. Causing me to have to turn it off with the power button? Any ideas or am i using the node wrong?


Not entirely sure what you’re asking. You should only have to use a single node. There are two versions of the Ubershader included, however. One with a Glass BSDF, another with approximated glass where reflection and refraction are separated into individual components. I’m interested in adding more options for things like fresnel like you mentioned, but without some kind of “if statement” node I’m having trouble working around some issues.


I had a similar issue originally when trying to add the tangent socket to the outside of the node group. Are you linking the entire material, or just the node group? Without the tangent output of the geometry node plugged into the tangent input for anisotropy you will get a hard freeze/crash as far as I can tell. I’m fairly sure it’s a bug and I can’t figure out if it’s already been reported or not. If you append the entire material instead of just the node group you shouldn’t have any issues.

sometimes math greater than, less than can be used like if statement.


do you have an example of this? I tried every combination I could think of using the math node and couldn’t get a usable result.

Here an example of a Selector.

0 = Diffuse
0.1 = Glossy
0.2 = Glass

the Selector contains 11 times the node group you see expanded on bottom right. just edited the Value in each ( 0.0, 0.1, 0.2 …)

What is it you want to do?

I was hoping to try to create virtual “tickboxes” in the material using boolean values of 0 or 1 to switch between materials since we don’t have the option for on/off functionality in nodegroups currently. The way the ubershader is set up now works, but when using, for instance, a simple diffuse or glossy material the shader still has to cycle through all of the unused materials for every sample, causing a 15-30% increase in render time for a scene with many simple materials. Ideally I’d like to set it up so that if something like “use anisotropy” or “is glass” isn’t set to 1 it wouldn’t even evaluate those parts of the shader tree.

On a more general note, Brecht mentioned in the mailing list that he would take a look at this thread when deciding on ideas for the true integrated Ubershader. I’d love to hear some ideas from people reading this thread about things they’d like to see me add to my WIP shader, and things they’d like to see include d in the real version eventually. Personally I really like the functionality of having controllable shadow opacity for glass materials. My setup currently uses the base color when selecting a shadow color, but I’d like to see a tickbox or on/off switch in the final version that says something like “use object color” which, when turned off, allows you to pick a custom shadow color. If fake caustics made it into the ubershader I’d be thrilled as well, as they are quite useful for selling a scene and cost almost nothing in render time, and it would provide something that even Arnold doesn’t have without lengthly setup time.

I have a laundry list of other things I’d like to see, but at this point I’d pretty much just be reciting features of the standard shader in Arnold and I don’t know how much of that I can share.

This is good! Blender’s lack of presets makes something like this easier to swallow than the nodes.
I’m not sure if this is relevant, but being able to bring in an image reference would make doing these giant nodes more universal. I built a texture bomber group but the main problem is that the image-file node contains the filename intrinisically. The bomber creates three different mappings of the same image texture and I had to put three different mappings INTO 3 different Image Textures nodes all set to the same filename, gaaaahhh! You have to open the group and edit all three filenames to bomb a different texture. Being able to bring one image reference into your group would allow all kinds of internal flexibility to make an Uber-Uber Shader. And yes, switches too!

so u’ve made blender pretty much like arnold now right??

but still less faster?

big thanks btw

Hahaha let’s not get carried away here. Cycles is great, but Arnold exists in its own class. All I did was create a node group that tries to emulate the functionality of the Arnold Standard Shader, along with some tricks I thought were kind of neat for glass. There are still plenty of things under the hood that I am not skilled enough to change yet that set Arnold far ahead of any other path tracer out there. Cycles is making great strides, and the developers are doing a hell of a job. I have high hopes that some day soon it will reach the point that Arnold is at currently, but I hold no delusions that it will close the gap very much. As fast as Cycles is advancing, you need to keep in mind that the team working on it is maybe 3 people max at the moment. Arnold has a team of over a dozen core engineers who are in the top of their field being paid very well to push the cutting edge. Maybe the Blender Dev Fund will explode in popularity some day and things will change, but until then we just have to “deal” with the fact that Blender and Cycles are “only” the best Open Source Software being developed right now.

i keep that in mind don’t worry
recently i start to use cycles for commercial project

but it did pretty much alright(with no transparency stuff),
i’ll include your node in my pipe now,
even though it need some time to get in
it look really powerful, and it looks a bit simmular to the shader they use for wrecked ralph.
thanks man :slight_smile:

PS it going to be great when its going to be in the trunk :slight_smile:

@@m9105826: unfortunately i haven’t found any way to really “disable” stuff in Cycles Node setups… this is highly needed imo, but it must have a Input to switch it, not like On/Off in Compositor with Checkbox.

(My Opinion is anyway that every single setting in a Node System must be accessible by Nodes… Otherwise you always end up with Nodegroups that you still need to edit inside for set even “simple” stuff… I know you can hack it somewhat with adding Drivers, but i don’t thrust them in NodeSetups. Linking caused issues as i made some tests. Nodegroups as well need the ability to add UI elements from Nodes Inside.)

I remember reading something on this forum a while back about a change to (I think) the node set-up that was applicable to both Cycles and BI. So, I was wondering if this Ubershader concept would be applicable in both. If not, can it be?

And I’m not trying to start a BI/Cycles war (honest, I’m not). Both have their merits and I’m just curious.

I realize it may not be possible because of how BI handles glass, but if Brecht is scouting this thread for ideas, making Ubershader available to both would be the idea I’d like to put forth.

Thanks for reading.

Certain things have a more or less 1-to-1 transfer between BI and Cycles and I can’t imagine it would be too hard to link them together, but certain things simply can’t be done in one or the other, or would be very hard to transpose. I doubt we’ll see any cross-platform functionality from the official Ubershader, mostly due to the different structures of each material type. BI materials are mostly UI based and although nodes can be used, they aren’t very efficient and mostly just work as a composition process without having to use the compositor. Cycles materials are the opposite, where the node system is deeply built into the system and works seamlessly and very quickly, and the traditional UI element of the materials in the properties panel is more of an afterthought. In all fairness, I wouldn’t open up a file in Maya and expect my Mental Ray materials to work automatically with my VRay materials, and that’s really the same relationship BI and Cycles have at the core.

Short answer, it could be done, but probably isn’t worth the effort for the few things that would carry over.

is there a standalone version of Arnold? Arnold Core? Once it becomes available maybe someone would enjoy making an exporter fro blender.

Every version of Arnold comes with a standalone app. It’s called Kick.exe and can be invoked from the command line using a .ass file. Definitely have my fingers crossed for a Blender exporter now that PyNodes are in trunk.

Whos idea was it to name it that?

Probably Marcos. It’s fun to run Kick scene.ass.

I haven’t studied your shader carefully yet, but I’d rather have just “anisotropy” and have the shader instead use either values below a cutoff to accept as “use anisotropy 0” (or invert the value and use math lesser than 1) instead of one “use anisotropy”, and then a anisotropy value.

Also as a heads up, a completely overhauled Ubershader is coming soon that is much more accurate to the original aiStandard. I’ll try and get it done and uploaded today, but I’m still tweaking it. Should be much faster and more physically accurate.