For exporting Motion Vectors it would be essential to be able to scale the velocity to avoid clipping or flickering. Right now the vectors seem to be normalized (detailed infos missing in documentation), which will introduce flickering because the values scale differently over time.
So new parameters:
[ ] normalize vectors per frame
[ ] scale factor
With that in mind it would be equally important to have 16-Bit Color Precision for PNG files. I know this is not that essential for small resolutions, but with sprites larger than 256 it becomes obvious.
Thanks a lot for making EmberGen so flexible for different pipelines!
The motion vectors are not normalized currently, only when their magnitude is above 1.0 to avoid clamping to extreme values. So we should add indeed a scale factor to avoid that problem when you have very fast velocities in the simulation.
Beside that, to explain a bit more how it currently works, the motion vectors are not based on optical flow at the moment, they are accumulation of 3D velocities projected in screen space. We should provide an alternative way of computing the motion vector later on, based on image analysis, which is the most common way of doing it.
Concerning the 16bit PNG, the library we are using is not supporting that format at the moment, the only possible option is to export in EXR right now. We may export in other formats later one, but nothing is planed at the moment. 16bit PNG should be supported anyway.
Hi Gil, thank you for the insights. From my experience real 3d velocities look way better than optical flow or image analyses based ones, so I think with a scale factor it would be enough to get some high quality data.
To better understand the current vector data - so the values represent the actual movement of a pixel in screens space (as float values)?
Too bad that your library does not support 16Bit PNG, but thanks for pointing to EXR as an alternative. Thanks!