Who wants some Cycles Material presets in Trunk?

have you seen this new one

https://bwide.wordpress.com/node-groups/bwide-nodepack-for-blender/
these are pre define groups
not certain if it is like what you want!

happy cycles

I started, humbly, trying to create some of the setups in the earlier post and I’ll likely continue… to amuse myself at least:) I do agree with others that mention file size (due to image based textures) and clutter to be a con of these addons.

I saw this morning, with much excitement, the node setups that bashi has kindly given to the community http://www.blendernation.com/wp-content/uploads/2013/10/blender-nodegroups-pack.png. Even better, the download is under 1mb, for 70 Node setups!!

I can’t stress enough how this would increase productivity and usability. Can you tell me from a coder’s view point if this in fact would be difficult to make a script that could save these “presets”, much like the render settings?

I’ve mentioned time and again, I have zero python skills but by looking at the console would I be able to string these “actions” together of add node diffuse.
add node glossy.
add node mix
etc…

@RickyBlender… thanks! this is just what I’m interested in but using smaller specific Ubershaders, I realize that’s an oxymoron:)

All it would need from there is a button that would show all these “recipes”.

i’m trying to get a small script to do that with 2 level menus
in the cycles mat panel
hope this time i can do it inside a few days
but don’t expect to have 50 materials i first release!

but no icon to show mat and very simple to simply add new mat then you will probably have to add it manualy to an object maybe!

happy cycles

Here’s an additional BASIC node meant to be easily accessible by anyone regardless of experience with Cycles.


I’ve eventually put these into a single .blend to access via a single download, or possibly blendswap

I really appreciate your efforts! as for the 50 materials… personally I think we would only really need: Diffuse/Glossy, Glossy Coating, Glass/Liquid, and Anisotropic/Metal.

Regarding previews, when I added these Nodes as Fake Users they are of course available from the Materials dropdown already. What we need is a way to make sure these cannot be overwritten. Currently we need to make a single user of the material “type” to avoid accidental changes to the preset.


I have never use the same material twice, but i could be resonable to add some presets as a node groups with imputs ready do setup, and include them in startup file by default. But i don’t want any preview balls in interface. Actually We can do these groups ourselves , discuss them here and suggest this startup file to developers.

one thing here is that i’m not gong to start with group node only with simple nodes

i might try later on with group but they are way more complicated to do!

thanks

Hi ikkiz, I agree with you about re-using materials… it happens very rarely.

These are meant as starting points. The workflow would be, select the material template, make it a single user (by clicking the number sign beside it) then rename and make a custom material. If these were included in the default Blender these presets could be locked so they couldn’t be overwritten.

This one node “Diffuse/Glossy” could almost do a whole scene, and as I’ve show before if you need image textures or displace you just plug them in:) (see the previous page)

that’s already a great start, I just wanted to group these to make them tidy. Ultimately this would make the usability more like what we had in Blender Internal or Yafray and Lux.

but Groups instead of fake users materials is more tidy solution. I would not like to have 20 or 50 materials in empty file because it is messy. Whole list of unused materials. No. But few groups you could use (and re-use few times with different inputs) is cool.

What I suggest is a very slim set of these fake user materials (which i’d like to see as presets, not fake users). As i mentioned before, this is not an attempt to get 100 preset materials… just 4 or 5 builder materials that come stock with all versions of blender.

I stress, that in my mind this is just a beginning to take away the repetitive tasks we do when creating more complex materials. Complete materials are okay but since it’s scope is so huge, it’s less likely to get the okay. This, I believe, is much more achievable, and can happen right away.

By the way, great work! I saw your top row of Lady Mechanika and just took a quick look at your WIP and WOW!!! fantastic!

In general there are two types of students in a class room. First those who are really interested and invest time into learning the trade. And those who do not invest the time and just have a harder time to understand the subject matter.

When I explained the layering of materials they found the approach how I explained it logical still nodes do not translate as well into a layered material like well a layer list that goes up and down.

But then again static list approaches also have their serious limitations like VRay in Rhino.

So to be honest there is no super best option. I still feel nodes as superior because they show you a logical flow of operations. And in addition you can link one node to multiple nodes. This might be harder with a list approach.

Later the semester I might introduce blendswap and other options for material databases. Actually from my stand point I more for students learning the subject matter than taking short-cuts, which is why I find applications like Keyshot to be not suitable in a render class room as it is an extremely limited environment and it focuses only on rendering the easy way.

Blender for rendering offers much more tool depth and in addition with all the additional tools like boolean operations etc can be used as part of the design process and not just rendering.

The only downside with Blender is because it offers so much it takes time to learn it ;(

Claas

can you give me something for simple nodes set up for

stones
car paint
glossy coating

matte material not certain what you mean here

some simple wood other then oak!
i can find some simple oak

a rubber node might be usefull too

thanks
happy cycles

I’ve been asked to give my two cents, so i will give you all i have…

Thoughts on Cycles Material Presets Part I

I think there are several there are several things mixed up in this thread that are related. One is having some basic preset Materials, another is having a Material library.

Let’s start withMaterial Presets or Material bases (what i think is a better term to describe them). Those are general Materials which enable the User to modifiy it with a few changes to a wide range of Materials. One of such is Glossy, another Metal. Every Renderer (i can think of) has those in one or another way, except Cycles (and BI).

Those are not per se “finished” Materials, but really the basis to get fast to finished Materials. For example, you want a rough Aluminium, so you select Material Preset Metal, set it to Aluminium, change it’s roughness to 0.32356 et voila.

Of course you can then always go ahead and fine-tune it, add Bump, Specular Map or whatsoever, but you get 80% of your Material in 5 seconds, and in some cases this might even be enough.

That’s, what i understand, is the intention of Larry “comeinandburn”, to have something like that in Cycles. And i absolutely agree. Having worked with a similar setup now for two years (my NodePack is part of it), i would not want to not have this possibility, even if i still create custom setups for certain objects.

I think and hope we all can agree on that such Presets are helpful and speed up workflows, let alone make things even possible for Users that didn’t study Cycles Nodes for quite some time.

Let me outline how this could look like:

Basic preset Materials:
I “propose” to have a “Material Type” right along the Shaders, containing something like:

Car Paint
Cloth
Coating
Glass
Glossy
Matte
Metal
Mirror
Skin

Those could have their place in:


and


or

What exactly those are we need to figure out, and more importantly how they are made. But i suggest to let them be NodeGroups, out of two simple reasons: One can understand what is going on by looking at the Node Setup and learn from it - important point, me thinks. Secondly one can change what they do.

some random thoughts on those Material Presets:

  • must be physically correct (or hint if otherwise)
  • easy to understand + easy to setup (of course relative)
  • yet powerful
  • not Node Groups with fake user, but generated through Python

If - if we would want to have this, we would have to solve a couple of problems.

Let me state at this point: i don’t say this is the solution nor the thing we should do, those are just my ideas and thoughts of how this could look like/work out. And if you’re already bored, i suggest you to stop reading right now, grab a beer or lolipop, sit in the sun and enjoy yourself.

Back on topic now. If - we would want this, we could do it right now. Pick a few already existing Material Presets/Node Groups, check their physically correctness with someone that actually understands this topic (i’m thinking of François Gastaldo), add them to Blender and good is.

While this is certainly good, i see one main Issue. Node Groups in Blender are a pita. Namely, creating a usable UI and functionality. Let me start with functionality.

Actually, let me start with a new post, since i need some more images to ilustrate this… Part II will follow soon

Currently possible NodeGroup Sockets are very very limited, we have only those:


of which some actually crash Blender (Boolean), and other are basically the same. That leaves us with five possible Socket Types: Color, Shader, Integer, Float, Vector.

Now, Blender currently only allows to create Socket Types that are the same as the Node that is connected to the Group Input/Output, or copy the selected in case of add new Socket in the Node Editor - Interface UI. And since most Socket Types in the existing Nodes are Color, Shader, Vector or FloatUnsigned/FloatFactor most users will end up with Node Groups that look like this:


with some work you can come up with something like this:


Which is already better, but still…

ran out of images again… more in Part III

Part III

I think with some more Socket Types and a improved way of dealing with them we could quite easily have something like this:


While you’re right this Node does not make any sense at all, you get the idea.

I will stop here at this point “complaining” about my beloved Nodes, having a sip of budvar, and let this sink in.

For the End, something different, about Manage Materials:

Manage Materials:

If it is a dedicated Material Manager or a asset Manager or even in the File Browser, i don’t care. What we need is a system to have a space in Blender where nice previews of Materials are shown that the user simple can drop onto object to use them.

This requires that each Material has a pre-rendered preview Image and i think a way of solving this would be a dedicated Blender Material File type. That contains both Material and Preview.

Where those Materials are loaded from is another question. (I dislike the idea of this beeing .blend files.) Which, again with dedicated Blender Material File type, we simlpy can have one or several folders full of them, at your disposal when you need them.

I imagine those Materials being shared by users for users, maybe a small set (procedural) included with Blender.


This sums up exactly what I would want to available for use in group nodes eventually.

Imagine working inside of the group node interface, each widget (the normal widget, the value fields in the mapping node, enum menus, the image name field, the curve widget, the gradient widget ect…) has a special socket type that appears and when you plug that socket into the input field, you embed the widget inside of your group node interface. Once that is done, we can see the group builder expanded further with boolean nodes and the ability to hide options behind checkboxes and it should more or less make it possible to build any shader without needing to add outside nodes to make it work.

I would personally hope that Lukas Tonne can soon start on allowing something like for group nodes without programming because it will dramatically increase the power of groups.

Not a coder myself, but learning python and have written some addons… I don’t think that’s actually that difficult (but difficult enough for myself, maybe…)

You need a function that reads Node Setup and save them as Code.
You need a function that generates Node Setup back out of this Code.
You need a system to store this Code.
You need a system to share this Code.

Yes, i think it is essential that it does not need python or programming knowledge.

Having forgotten to say that we also need to allow Sockets everywhere. Currently for example the Defocus Node, you have absolutely no control over it by Nodes…