I’m currently working on enhancing the Voronois texture for EEVEE and Cycles and noticed, in some very common cases, the Fac output is nonsensical, even though it’s well defined. I’m sure many materials depend on this output, and I don’t want to break them. I’d like to know what the typical blender way of migrating legacy node systems generally is.
My main goals are:
- Provide inputs and outputs that are useful to users going forward
- Migrate any node networks using this on load so they don’t change legacy behavior.
- Not buck any established trends on how blender generally deals with these issues.
Some possible solutions I see are:
- Provide a “Legacy mode” input that reproduces the old behavior of the Fac output. Two options could be:
- A simple “legacy mode” drop down option.
- A obscure “pre-output exponent” input that can achieve the same behavior, but is practically useless and likely to confuse future users
- Dynamically generate some new nodes between the Fac and any of its consumers, so they get the previously expected value.
- In some cases this may actually result in a duplicate Voronois texture node as well.
- Do nothing, letting the output value change… breaking whatever might break
Any recommendations welcome.