Merging the Musgrave Texture and Noise Texture nodes

The equations Roughness = power(Lacunarity, -Dimension) and subtracting Detail by 1.0 and covers most of the cases, however there are many edge cases where other equations are needed. When converting files from 4.0 to 4.1 all cases get covered, which is why the node setups after conversion are much more complicated than just adding the 2 nodes that are in the node setup in the picture in the release notes.
However these aforementioned edge cases rarely occur in practice, so to not add further confusion I didnā€™t include all equations.

If youā€™re interested in the full set of equations please have a look at the description of the Pull Request: https://projects.blender.org/blender/blender/pulls/111187

1 Like

Thank you! I built it slightly differently, but I absolutely believe that your screenshot in the manual is going to help people who are trying to bridge the gap in the future.

1 Like

Thanks. Iā€™ll take a look at improving node group. Great job on this, canā€™t wait for Gabor my math isnā€™t good enough for that

You mean a submenu of some standard noise types which inserts a node (group?) preset to generate that specific type of noise?

I think that would be an excellent idea.

2 Likes

No, I didnā€™t mean node groups. Just a way to create the noise texture node with different types directly.

I would like to bundle node group presets for different noise types at some point. But a preset that matches the old musgrave texture would not be one of them.

I thought ā€˜Musgrave Noiseā€™ was a term used outside of blender as a standard noise type as well, so I thought it would be a useful abstraction to offer to users. And it still feels like it is, but itā€™s possible this is because I used to experiment with ridged multifractals from Ken Musgraveā€™s website back in the day.
If I look at ā€˜Musgrave Noiseā€™ on google now it just blender results. This does skew my opinion about the desirabilty of a shipped nodegroup as the new Roughness input does work in a much more predictable way when just experimenting and having a built in nodegroup will probably have new users use that (while they would be better off using the new Roughness param directly). And if ā€˜Musgrave Noiseā€™ is not a general term but just some blender quirk the only reason to have it would be to keep old tutorials valid and appease people who are very much used to the old parameters. Keeping old tutorials valid is imo not a valid reason to add backwards compatibility stuff to blender and I guess most people very used to the old node would just one time create/download a nodesetup and happily/grudgingly (cross out whatever you donā€™t like :wink: ) use that.

However I still think itā€™s going to cause a lot of grumbling in the #support channel, but weā€™ll probably survive.

edit: ā€˜appeaseā€™ is not really the correct word. Iā€™m in no way implying they are not right in wanting to use what they know! I donā€™t really know how to better word itā€¦

1 Like

My question is - whatā€™s the actual harm in including it as a shipped nodegroup?

Is it something more thanā€¦ just a disliking the use of an artist using musgrave noise? Thatā€™s not meant to sound like a personal attack, Iā€™ve just no other way to phrase it.

Over in sculpting, theyā€™re coming up with a couple dozen preset brushes (which is great.) A musgrave noise preset doesnā€™t seem like a large ask?

1 Like

@thorn-neverwake First of all itā€™s not actually possible to have a node group that has identical behavior as the old Musgrave Texture due to:

Secondly, what Iā€™ve been trying to stress all this time is that fundamentally the Musgrave Texture and the new Noise Texture are the same.
The Musgrave Texture just does some additional arbitrary transformations on the input values. These transformations only complicate things and if the Musgrave Texture didnā€™t exist youā€™d be wondering why a node group would exist with some random input value distorting transformations before the Noise Texture inputs.
The fact that the input values (such as Dimension) were implemented with these transformations in the first place was a mistake as they donā€™t make any sense unless you really, really care about the mathematics behind them.
If you really want these transformations for some reason then you can just add some math nodes for that, but shipping a node group which is an inferior deprecated duplicate of another node doesnā€™t make sense.

2 Likes

I donā€™t really have an opinion on this. However if weā€™d add backwards compatibility for every blender-specific quirk that got changed to be more standard blender would be a mess

I donā€™t really understand how this can be true and at the same time itā€™s possible to create the correct nodesetup when converting from 4.0? Iā€™m not disagreeing, just curious how this is possible.

2 Likes

Exactly.

The problem is that for different types of Musgrave noise you need different setups, e.g. the setup for fBM is different from that of Ridged Multifractal. When converting from 4.0 Blender knows which noise type being used and creates the correct node setup, which only works for that specific type.
However when you add a new Noise Texture Blender doesnā€™t know which noise type youā€™ll end up using, thus it canā€™t know which node setup to use. This also means that the node setup converted from 4.0 only stays correct as long as you donā€™t change the noise type.

1 Like

Ah. and thereā€™s no menu/enum socket, so you canā€™t add a noise type menu to a nodegroup. Understood.

Great tip @Baardaap Thank you. I compared the settings from 4.0.1 to 4.1 and caught on. No worries.