3D Painting

I am tinkering with the design of a prototype 3D painting application based on OpenGL. The application takes some 2D input from the user via the application OpenGL display and transform the 2D point on screen to either a 3D point in space or 2D texture coordinate on a parametric surface e.g. NURBS.

Should I approach the design as an extension/reversal of the OpenGL picking problem ?

Cheers