Computing dense optical flow with scene capture component 2D

That’s just math. Maybe the engine wants to saturate to -2…2 range. Maybe the engine has a bug, I don’t know. But your question was “why do my values go slightly outside -2 … 2” and the answer is “because 1.0 / (0.499 * 0.5) is greater than 4.0”

I haven’t looked at the motion buffer in detail – how are you reading them out? As 8-bit surfaces? Does it change if you read it out as 16-bit floats or 32-bit floats?