Original patch Cheryl Chen, extra fixes by Brecht. Differential Revision: https://developer.blender.org/D3098