Blender QMM (Quick Metal Materials) - Free Addon

Blender QMM Updated to 1.5.0

The big news in this release is internationalization of the N-Panel.

A cool dude from Shanghai reached out on Github about having trouble differentiating between the materials because the buttons in the N-Panel are in English. So what the hey, I localized it into Simple Chinese using DeepL, and the OP gave it a review for translation errors.

The process was so easy, I ran it for most of the other languages in DeepL’s engine as well.

Since it’s a straight AI conversion, I’m sure there are errors. If you speak one of these languages, and the localization is wrong, and you’re willing to send me corrections, I’ll be glad to update the library.

(Or if you’re a super-genius who’s comfortable creating a branch on Github and making the changes yourself, I’ll merge them back in.)

1.5.0

  • UI localized/internationalized
    • Chinese
    • Danish
    • Dutch
    • Finnish
    • French
    • German
    • Hungarian
    • Indonesian
    • Italian
    • Japanese
    • Polish
    • Portuguese
    • Portuguese (Brazilian)
    • Russian
    • Slovak
    • Spanish
    • Swedish
    • Ukrainian
  • Add new colors to Color Group nodes
    • Gold Colors
      • Chaos Harvest
    • Titanium Colors
      • Chaos Titanium
  • Edit Canistrophy Group
    • Add Master Scale input

1.4.9

QMM-Nickel

  • Add new material
    • Nickel
  • Rename Cinnabar to Red Metal since Cinnabar isn’t a metal.
  • Edit Canistrophy Group
    • Fix effect to object orientation
    • Add XYZ and XY Only output options
  • Tweaks to ALL materials except:
    • Glass Hack
    • Rubber Cutting Mat
2 Likes

Saw you have multiple addons for materials and they use different implementations. Would it be easier if you use blend files and combine all into one big library. The QMM use py files for material creation and some others use blend files already.

Perhaps you use a custom script to generate the py files for the QMM addon. Wouldnt it be easier to simply make materials and then each time update the blend file?

Hi rombout – thanks for your question!

I have two main reasons for my approach. I’m gonna ramble a bit, so bear with me.

1.) It’s a way to teach myself Python

This add-on began as a project to learn how to control Blender using Python. My continuing interest is in learning new things in Python and implementing them in my add-ons.

Now if this was a commercial product, it would definitely be a faster production pipeline to create and save materials in the Asset Browser file, and just append them to a new scene.

But since this is a personal project, and I have a background in teaching, I like the idea that folks can grab the add-on, look through the code to learn how things are done, and copy/paste useful parts into their own add-ons, just as I’ve been doing these past few years.

2.) Add-ons larger than 100k make my baby cry

Another concern of mine is file size. The core files are less than 100k in total. If I included a Blend file in the add-on, I’d be adding about 600k or more. While I provide an Asset Browser file with the materials, and it is 600k, I prefer keeping it as an option instead of a requirement.

In fact I’ve been so thoroughly brainwashed to reduce file size wherever I can – I’m a designer/developer of apps and web sites – that I actually export the Asset Browser preview thumbnails, compress them, and then individually re-link them in order to reduce the Blend file by about 100k.

File size is also a big part of the reason I recently localized/internationalized the text labels in the Sidebar N-Panel instead of converting to thumbnail images. Several folks have been asking about that lately, though, so if it keeps up, I may eventually surrender the point.

And BTW – I realize worrying about file sizes under 1mb when we’re talking about 3D is almost comical. I mean, my saved textures folder is over 45Gb. But still, keeping the add-on super small makes me very, very happy.

So there you have it – I do it this way because I like coding and small files.

But since this is all open-source, if you want to grab it and make your own version, that’s not only allowed but encouraged. As we used to say on Tumblr: Go nuts, show nuts.

2 Likes

I can understand some of your comments and some don’t make sense, like you said about the texture folder being 45 gb.

So when you add new mats, do you manually create those py fliles then or did found a method to spit all that data out into a file. Just like how the preset system of blender itself works.
Updating this add-on takes much more time now.

I got the thumbnails working now, i can compress so there are even smaller. Ill try to render all the thumbs at home using 3.2 and then see how it looks. You can always think about it. I made it a separate panel py file, so you could also make it an option to show it or not. I kinda works now like the Realtime Material addon, just realized that now

PS im a graphic design, can do some web-design and simple coding. Also taught myself coding with Extended Script for Indesign, Photoshop and Illustrator. Started checking code from an external render engine i used years ago around 2014 or so. Still can’t code from scratch, but i understand more as i go. Unless its those darn matrix stuff and very complicated mathematical conversion.

PS you should checkout how to make a dynamic operator. I think you could your addon work with a single operator and just load in json or stripped down code.

Just look at how preset files are done and called

till would be nice to collect everything into addon

  • I used “45Gb of textures” – meaning my folders of saved PBR texture JPGs and PNGS, which come to about 45Gb – as an example of how 3D projects often involve huge file sizes, and to point out the irony of my obsession with keeping the add-on as small as possible.

  • If I’m adding a new metal to the collection, I can duplicate, say, Auminium.py and need only change the values for Base Color, IOR, and Roughness. Then update __init__.py with new classes and panel button and bang – I’m done. Nice and easy.

  • I’d love to see your thumbnail version! Feel free to drop the ZIP in this thread. I’m a pushover for a really great proof-of-concept, so who knows?

  • Dynamic operators are a cool idea. It would open the add-on to users making their own custom versions. But since QMM currently works as intended, and users can save modified versions of the materials using the Asset Library, it’s probably an approach to save for a future project.

I feel like I’ve hit the limit on metal materials – IDK if the community is clamoring for cobalt, tungsten, or vanadium to be added – so my future efforts will probably be in improving the group nodes like Energy Conservation and Texturizer, and maybe coming up with new ones like Surface Imperfections or Corrosion.

The only material I’m working on is Cinnabar, which I originally added as a metal, but I’m revamping as a soft rock. Will it wind up being a gem, a glaze, back to a metal, or something else entirely? I can’t say yet, but I’m having fun figuring it out! :smiley_cat: :exploding_head:

1 Like

With the dynamic operator i meant we call the material operator by using the file name and than use eval. Another implementation could be to use the preset system approach. That way materials are not operators but simply little snippets which are run. Makes the file sizes even smaller and you dont need to register all those operators, which saves tons of code lines. Its same way the preset menus work inside blender.

Ill check if i can work a bit more on my version this weekend. I was a bit side tracked as i was checking out the realtime materials addon.

1 Like

Ooh! Slimming it down to a single operator and a .json list would be awesome!

A bit over my head at the moment, but definitely an interesting path forward.

1 Like

Blender QMC Updated to 1.2.4

Pantone announced its 2023 Color of the Year, and since that’s what got this whole add-on started, it’s update time!

I think they maybe went a little overboard with it this year. IMO Viva Magenta is, like, TOO intense for much more than accents and details. And their whole “Magentaverse” marketing thing is kinds giving off needy “I’m a cool Mom” vibes, y’know? Like, we love you Pantone, but just chill a little. Stop trying to make fetch happen.

Anyway, in other update news, if you use my Quick Metal Materials add-on, QMC will now change the Base Color of the Energy Conservation node.

I also indented the sub-categories in the menu to make it all a bit easier to scan and read.

1.2.4

  • Add PCOY 2023 Viva Magenta to Pantone Color of the Year
  • Indent names of sub-categories to improve legibility. This affects:
    • House & Garden 1971
    • Mid-Century Modern
    • Moods
    • Pantone Color of the Year
    • RAL Classic
    • Suburban Modern Exterior

1.2.3

  • Add Baker-Miller Pink to QMC Plus > Don1138 Select
  • Add Energy Conservation node group to list of affected nodes
  • Code refactoring
1 Like

Blender QMM Updated to 1.5.1

Made some tweaks to the Glass and Rubber Cutting Mat materials, and added the custom node groups to the asset browser file. The rest is mostly code cleanup suggested by Sourcery.

It kinda got buried in the 1.4.7 release notes, but the Specular group has been upgraded to the new Energy Conservation group.

It uses a Fresnel node to mix between Diffuse and Specular colors, so if you have those values from Physically Based, or a screenshot from Substance, now you can quickly drop them into Blender.

There’s also a Clearcoat output which multiplies the specular value by 10. A bit extreme, but y’know, tweak it to your taste.

For more info, you can watch Christopher 3D put it all together on YouTube.

  • If you don’t have a specular color specified, just use white for metals and black for dielectrics.

I tend to grab the hue of the diffuse color, set the value to either almost white (0.99, 0.99, 0.99) or almost black (0.01, 0.01, 0.01), and eyeball the saturation to something under 0.5 for white or over 0.5 for black.

  • If the edge fresnel is looking a bit too much, disconnect the IOR output – but leave the Specular output connected; that’s the good stuff – and set the shader node IOR to 1.52, the safe standard.

  • If you want even more energy conservation, set the Principled BSDF to Multiscatter GGX.

Based on Lukas Stockner’s The new Principled BSDF model in Cycles presentation at Bcon22, better energy conservation is coming to the Principled BSDF shader eventually. But for now, this is a fine stopgap.

1.5.1

  • Add names to node groups
    • Copper Colors
    • Gold Colors
    • Silver Colors
    • Titanium Colors
    • Canistrophy
    • Energy Conservation
    • Texturizer
  • Add node groups to asset browser file
    • Canistrophy
    • Energy Conservation
    • Specular
    • Texturizer
  • Rename QMM Glass Hack to QMM Glass
  • Tweaks to
    • QMM Glass
    • QMM Rubber Cutting Mat
  • Code refactoring
5 Likes

Blender QMM Updated to 1.5.3

TL;DR: Improvements to the Energy Conservation node group, and more code cleanup and refactoring.

1.5.3

  • Update Energy Conservation node group
    • New option to use an auto-generated specular (AGS) color, which is calculated from the diffuse color
    • New inputs:
      • Custom/Auto switch toggles between user-defined and AGS color
      • Metal/Dielectric switch toggles HSV value of AGS between metal (0.99) and dielectric (0.01) settings
      • Saturation input adjusts saturation of AGS
  • Organize layout of RGB nodes inside color node groups
    • Copper Colors
    • Gold Colors
    • Silver Colors
    • Titanium Colors
  • Code refactoring & cleanup

And wherever you are in the world:

:snowflake: Happy Winter Solstice,
:barber: Happy Festivus,
:chestnut: Happy Kwanzaa,
:synagogue: Hanukkah Sameach,
:santa: and Joyeux Noël!

Blender QMM Updated to 1.5.4 (Bugfix)

The Energy Conservation group included in the previous release was doinked, so here’s a quick update.

1.5.4

  • Bugfix: Correct Energy Conservation node group connections

I’ve also quietly updated the files in Blender Materials > Tutorials.

Since most of these are derivative works, and some of the tutorial creators are selling versions of their materials on their Patreons and so forth, I tend not to announce when I update these files.

But a year-end wrap up is a good occasion to mention them. Enjoy!

3 Likes

Blender QMM Updated to 1.5.5

More tweaks to the Energy Conservation node group.

Version 1.5.5 uses a new method to calculate the Auto Specular Color.

Previously, the ASC was simply the Diffuse Color separated by HSL, with the Saturation adjustable by the user, and the Value set to either 0.01 for Dielectrics or 0.99 for Metals.

Now, the ASC is calculated by Linear Mapping (formula below) the Diffuse Color, and so the Saturation slider is no longer needed. Custom/Auto and Metal/Dielectric toggles still work the same.

You probably won’t be able to see the difference, but you’ll know in your heart that it’s better.

1.5.5

  • Switch Principled BSDF light scattering to MULTI_GGX
  • Update Energy Conservation node group
    • Calculate Auto Specular Color by Linear Mapping (2 * (R, G, B)) of Diffuse Color
    • Remove Auto Specular Color Saturation slider
      • Metal color = Auto Specular Color
      • Dielectric color = Auto Specular Color with HSV value set to 0.01
  • Update Mix shader nodes
    • Add Blender 3.4.0 version test to switch between ShaderNodeMixRGB and ShaderNodeMix
    • This affects all materials that use a mix node
2 Likes

Blender QMM Updated to 1.5.6

Just some bugfixes and code refactoring.

1.5.6

  • Bugfix
    • Broken color link in Texturizer group
  • Code refactoring
    • Red Metal
  • Spell check
    • From Dialectric to Dielectric
2 Likes

Related: A discussion about Metalness and Speculaity, and my thoughts on the QMM Energy Conservation node over on Metalness vs. Specularity

1 Like

Interesting. I plug an IOR-Specular node group into the specular, pretty much as part of my default setup these days. You can see differences in the fresnel with different IORs, although the front facing specularity seems to remain unchanged. Thanks for the tip off.




1 Like

Hm – running a texture through the specular value hadn’t occurred to me, but that’s an interesting effect. Thanks for the tip!

1 Like

Blender QMM Updated to 1.5.7

After some discussion over on this thread, I’ve updated the Energy Conservation group to v5.

It now factors roughness into the surface fresnel, which is now processed by a Fresnel CCP group, which I ganked from CynicalcatPro’s video Blender Physically Based Shading: Theory.

With this approach, the fresnel effect is pretty much gone on metals with a roughness above 0.5-ish. Dielectrics still get appropriate fresnel across all roughness values.

The Fresnel CCP essentially voids the influence of IOR on metals, so all metals are now standardized at IOR = 1.45. And while I was at it, I also took another look at colors and values and made some tweaks.

This release also renames QMM Chrome to QMM Chromium, the proper name for the metal.

1.5.7

  • Update Energy Conservation group to v5
    • Add Roughness
    • Add Fresnel CCP group
  • Update diffuse color, specular color, roughness, and IOR on most materials
  • Rename Chrome to Chromium
  • Bugfix
    • Broken links in Asphalt and Asphalt Bleached

Future Plans for Quick Metal Materials

Here’s what’s on my TODO list:

  • Anisotropy Adjustments

    • Per suggestions, I’m exploring adjusting the Principled BSDF’s Anisotropic values on the metals
  • Anisotrophy X Group

    • A complement to the Canisotrophy group
    • A more extreme but interesting effect ganked from AlphaChannel in this thread
    • Needs a catchier name
  • Steel Roughness Presets Group

    • Roughness values for the ten most common types of Steel
      • Carbon Steel
      • Stainless Steel
      • Alloy Steel
      • Tool Steel
      • Spring Steel
      • Structural Steel
      • High-Strength, Low-Alloy Steel
      • Maraging Steel
      • Weathering Steel
      • Free-machining Steel
    • Possible color variations as well
  • Cinnabar

    • I just think it’s neat
  • Iridescent Materials

    • Something new to learn. Hopefully, this is where all my reading about Fresnel (and Schlick, Cook and Torrance, and Gulbrandsen) becomes really useful.
    • The materials I have in mind, sorted from slightly iridescent to very, are

No timetable on these, but I thought I’d share my list. Comments and suggestions are welcome.

1 Like

hello. i tried to install it. no error messages shown. the files are installed but i cant find it in addon browser to activate the addon. any idea?


Looks like you downloaded the repo, rather than the add-on.

You can either pull the blender-qmm folder out from inside blender-qmm-main and put that inside the addons folder – it will then show up under Settings > Addons > Materials – and then move the Asset Browser folder to wherever you keep Asset Browser files.

Probably best to rename it QMM Asset Browser or something like that.

Alternately, just delete the folder from addons, grab QMM_1.5.7.zip from here, and install as normal.

1 Like