In my work, I come across a situation quite often, especially when working with volumes and procedural materials, where every node that reads a bezier curve (color ramp, vector curves, etc) cannot accurately make a formulaic curve, and on top of it, have limited resolution well before float errors should be occurring.
I want a node that can output a curve between two values. The map range node could hold this functionality, but I’m conflicted, as map range would also limit useful side-features, like extrapolation, or additional options for each formula, but it’s all technically doable in nodes already.
The issue is, the map range node already has some curve profiles built in. As well, they are arbitrary, not based in commonly known math, whereas my node would map things to a math function within a range… essentially the same thing. This may sound like an easy “just add to the map range node”, however, there are definite pros and cons to adding a new node for this. From what I can tell, they basically boil down to:
cons:
“more nodes take more work to maintain, there’s already a similar functionality in map range node, there hasn’t been a distinct call for this outside of my own, and all these functions are technically doable in a node group.”
pros:
“a new node would be able to introduce new functionality like a default output, blending, or extrapolation, if you add it to map range, you’ll flood its drop downs with dozens of options, map range already has more lines of code than 90% of all nodes and adding a dozen more options could triple it, and adding function curves to map range would be new functionality- all its current curves are arbitrary.”
an example of what can be done right now just adding more functions to map range
I’m already successful at adding to map range, and as a novice, it was striking how many files I had to change to do it, though from what I understand half was the UI element.
so, I need some input.
Should I just roll it into the map range node?
If it was its own node, what are your thoughts, additions or needs for it to be useful?
Am I asking for something better tackled by a node group collection?