While trying to answer this question I found out "weird" behavior of ColorFunction
Plot3D[x y, {x, -10, 10}, {y, -10, 10}, PlotRange -> Full,
ColorFunction -> Function[{x, y, z}, Hue@(x y)]]
gives incorrect colors
the virtually identical code (from naive point of view)
Plot3D[x y, {x, -10, 10}, {y, -10, 10}, PlotRange -> Full,
ColorFunction -> Function[{x, y, z}, Hue@z]]
gives correct plot
Also if you disable ColorFunctionScaling as many posts (e.g. this) suggest
Plot3D[x y, {x, -10, 10}, {y, -10, 10}, PlotRange -> Full,
ColorFunction -> Function[{x, y, z}, Hue@(x y)],
ColorFunctionScaling -> False]
the colors are really messed up
So the question - why are the first two plots different? A bug?
I'm using Mathematica 11.1 on Linux.



PlotPoints(or too large a $xy$ range). You're correct in thatColorFunctionScalingis the issue for the first two plots, they are scaled differently, as is clear from the documentation. – Roman Apr 30 '19 at 17:12ColorFunctionScalingtrue. Alsoz=xysoHue[z]should be same asHue[xy]– BlacKow Apr 30 '19 at 18:44Hue@x,Hue@y, andHue@zboth with and withoutColorFunctionScalingit all becomes clear. – Roman Apr 30 '19 at 18:53ColorFunctionScalingcontrols the scaling of the value, not arguments. Honestly I'm not sure what's the point of scaling arguments to [0,1]. If you make it an answer I will gladly accept. Thanks! – BlacKow Apr 30 '19 at 19:08