KatsBits Community

General Category => News => Topic started by: kat on June 07, 2011, 04:36:20 AM

Title: Add new Material problems, changes between 2.56 and 2.57b
Post by: kat on June 07, 2011, 04:36:20 AM
I don't know who authorised this, put it into place or indeed how it managed to pass the radar at Blender Foundation but there has been a relatively small but nonetheless fundamental change to the way new materials are added to previously existing datablocks in Blender 2.57b. It's appeared out of the blue as well as it's not evident in any prior beta releases so far as I can tell; having tested this in 2.53 and 2.56 it's safe to assume that all previous beta versions show the same consistent behaviour regardless when adding new materials to a mesh.

Now this leaves me and other tutorial authors in a bit of a pickle - all 2.5 series tutorials that discuss 'materials' are potentially incorrect; we've all been working under the presumption that material management was pretty much 'feature locked' as it has always been throughout development (see below). But now this single untested and undocumented (at least apparently publicly stated) change has thrown a big cast-iron wrench at the monkey to stuff into the cogs. Our dilemma you see is this: do we update all the tutorials only to find the change reversed in later revision of Blender. Or do we leave everything as is and move on? Unfortunately it's incredibly time consuming and not quite a simple as one might think to change dozens of articles that cross-reference each other. So... to what's changed.

Up to 2.57b if you already had a material assigned to a mesh and clicked the "+" (add new material) button to the right of the material list[1] it creates a new entry, a duplicated of the original - in the material list you'd see two identical materials[2] (in the shot below the material is show after it's been made 'unique' - if you click either one they'd both show exactly the same settings). To make this new material independent of the parent (so it could be assigned to a specific section of the mesh) you'd simply click the "+" to the right of to the materials "DataBlock" field[4] (where the name can be changed), 'converting' it into a 'unique' datablock that can then be assigned to selected elements.

(https://www.katsbits.com/images/tutorials/blender-materials-changes/blender-2.53-material-changes_sml.jpg) (http://www.katsbits.com/images/tutorials/blender-materials-changes/blender-2.53-material-changes.jpg)
Shown above. When the "+" button is clicked[1] it creates a duplicate of the original material that can then be made 'unique' and renamed by clicking the "+" button to the right of the datablock name[4]

(https://www.katsbits.com/images/tutorials/blender-materials-changes/blender-2.56-material-changes_sml.jpg) (http://www.katsbits.com/images/tutorials/blender-materials-changes/blender-2.56-material-changes.jpg)
Shown above. The same behaviour is also true in 2.56beta where a similar process is gone through; the material is 'duplicated ('new')[1,2 & 3] and then made unique[4]

In Blender 2.57 this has changed. When you click the "new" button now it creates a completely blank datablock that has no relation to the previous material, it's effectively 'unique' by proxy (because it contains no data). The fact that it's neither a duplication nor fully 'tooled up' (with some default settings) can be seen as both a 'Pro' and a 'Con' - a 'Con' especially where materials are used not just for just for 'texturing' but also for mesh organisation, different materials can be applied to different areas despite referencing the same texture/image data and so on. To create duplicates in 2.57 you now need to select the previous materials 'data' from the datablock list[4] (click the sphere icon to show the list and select the material). This retains the unique nature of the new material but assigns the 'parents' properties. In effect, adding new materials is a sort of reveral of the previous process, you create the new as a unique then assign properties as opposed to create a new material with the same properties then make that unique.

This change also appears to be similar to the way the "Texture" Properties now behaves where loading in an image doesn't automatically create/update the associated Image settings the way it used to, you now have to manually set them. I've not fully tested this yet but this appears to be another fundamental change that's only made it's appearance in 2.57b.

(https://www.katsbits.com/images/tutorials/blender-materials-changes/blender-2.57-material-changes_sml.jpg) (http://www.katsbits.com/images/tutorials/blender-materials-changes/blender-2.57-material-changes.jpg)
Creating a new material in 2.57 simply adds a blank 'unique' slot that can be edited as is or assigned settings from another material

The mechanics involved with the change itself are neither here nor there in terms of 'functionality' and/or 'process' (the ability to add new material slots), it's quite easy to get to grips with either, providing the change is known. And herein lies the fundamental problem. This change was implemented in an 'stable' release of Blender, there is no historical record of feedback or usage testing in any of the previously released public betas (so far as I can ascertain), which is what they're there for; feature changes should be tested and assessed using betas with 'final' releases being locked down and bug fixed version based on that experience. It should not be, as is often the case with Blenders development, that changes are made between 'beta' and 'official' releases. If that's the case, it makes absolutely no sense of reasoning for the use of 'beta' or 'official' denominations to distinguish releases as they're all changing, all the time, each release (this was an observation someone made at last years Blender Conference which was pretty much brushed aside; the chap pointed out that the release schedule didn't make any sense to anyone outside of the core development team so seemed quite arbitrary).

And herein lies the fundamental reason why Blender isn't taken seriously by anyone outside of the community; no-one is going to put their business on the line, or money at risk using a tool that's going to break or fundamentally change during a production cycle that can take several months if not years. This is a common theme running through all the game development and real time projects I've consulted on over the years, a majority are only to happy to look at Blender for the production tool but when they learn what that means right down to the nuts and bolts, they go elsewhere. Blender Foundation really needs to get to grips with this situation if they truly want Blender to expand beyond it's current user base into the professional arena where people invariably have a lot at risk than kids sitting in their bedrooms or classrooms (no disrespect intended but you should get the point with that being said).

At this point, it's up in the air as to whether this is a permanent change or something temporary.
Title: Add new Material problems for 2.58
Post by: kat on July 03, 2011, 07:15:28 AM
Just noticed there's potentially an issue when making new independent (single user) Materials in 2.58 where rather than simply adding a new slot to an already existing material (therefore creating a *multimaterial*), if you try to add an actual single user material, adding the bitmap to the Image Slot doesn't appear to automatically update the the "Image" ID data (which it does when making multimaterials). Not sure if this is a bug or just a design feature of the GUI but it's odd that it does it one way but not the other... ???