Yesterday I uploaded a procedural wood flooring material and it is just incredible. The controls and good results of it just are neat to see in a material that doesn't have an image. Here is a picture of the material preview:
Here is a picture of it used in the real life setting.
You have controls for row offset, grain pattern, board width, board length, and a lot more.
I just posted the 50th material to the library! There is quite the selection there, from car paint, to diamond, to wood siding, to copper, to leather. If you have a material to submit then go the the Material Library page and scroll down, fill out the information and attach the file, then submit.
I just uploaded a Leather material that I found here by "TrueCryer" and it is an incredible material. Here is a rendered image of it:
It is one of the best procedural materials that I have ever seen, the perfect amount of gloss and incredible bumping on it make it a nice material to have. The only downside that I have found is that it takes longer to render, by about a factor of 2-2.5. A way to get around this if using a lot of it would be to bake a color, glossy, and bump map out, that would save a good bit of time I would think.
Today I posted another of my own materials which is a nice old red brick material. What makes it look good is not the image, but rather the bump mapping. It isn't to noticeable in this image:
but can really be seen in this one:
This image looks really good and it only uses one image, which is then run through some other nodes to get a nice looking black and white image to use for the bump. Another key piece in this image is the lighting, this is especially needed when using normal based maps, not actual geometry bumps.
Just recently a new material was added to the material library and it is Siding Old, under the wood tab. It is one that I personally did and have licensed as CC0, so feel free to use as you would like. The image is tile-able and the pattern is horribly noticeable to a certain point.
The material ball isn't the best representation of it so I rendered out a better version. The one below is just a plane that has been UV unwrapped and has had the material applied to it. There is a noticeable line towards that bottom, but it isn't to bad.
Since releasing Material IO I have been thinking that this file format would be a good way to host a material library, the file size is small and particular to that material. So you don't have to dig through a .blend to append the material. I have begun working on it and within the next few days I will be making it public, and there will be a submission page so people can contribute.
I just released my Material IO add-on which exports and imports a .bmat file type which is specific to this add-on. It means Blender material and I created it so that the script could be sure that it was getting a file that it could read and understand.
I was originally going to have it just be a plain text file, but then realized that it would take a lot of work to convert it back into a usable format. So I stumbled across XML and it looked very easy to use, which it is. Python has a built-in set of tools, called ElementTree, to work with XML. So then I had to work on a layout out for the file and this is what I ended up with:
You have the overall group which is always called "material", it has several attributes that let the script importing know which order to create the groups in, what images to load, the name of the material and then the other information is just there for if someone just wants to read the file.
Then within material you have all the different groups, the main node_tree is also counted as a group and is always called "main", within each group you have a element for nodes and one for links. Inside of those two you have the majority of the information. The script uses ast.literal_eval() extensively for converting those strings back into usable lists and tuples.
The .write of ElementTree writes it all as a single line which is basically impossible to read. So the add-on writes it out that way, then reads the file using xml.dom.minidom which has a method called toprettyxml() which formats all the text in the file as an easier to read, multi-lined, file. Which is then written back to the file location.
Go to Properties > Materials and have a material selected.
Then decide if you want to have images paths absolute, meaning they will only work if they are in the exact location on your hard drive, or relative, which means they will be packed into a folder. Ignore if no images in material.
Then select a file path, and click export.
You can then select the .bmat file and import it again where ever you want, in a different .blend file, or on a different computer.
The alpha version will be out this week, groups are working great, several problems with file names and loading images have been fixed. There is now an option to have all the images packed into a folder with the .bmat file so that you can send everything easily. Just several more areas to check for potential issues before I have people start using it. I might also try and make the files a little easier to read.