I'm playing around with 3D graphics programming and it's only a few weeks I'm into OpenGL and able to render meshes with textures with few basic transformations.
I've a hobby project where I want to apply a picture of human face on a 3D mesh head. I'm not very clear about the best programmatic approach to do that.
I read about how textures are created using a UV map which is created using some sort of projection of vertices in 3D onto a 2D image plane. This UV map is taken as reference to create the texture so that the texture appears correctly when it folds around the 3d mesh object.
So for my application let's say I've 3D mesh head with a UV map. I'd like my application to map the picture of my face onto this UV-map and create a texture which folds as seamlessly as possible on the 3D mesh head.
Please suggest some approaches I can explore. Also what kind of image processing algorithm I should refer and what libraries would best suit my needs?
Edit 1: Please check a similar app which is in market. https://play.google.com/store/apps/details?id=itseez3d.game.avatar&hl=en They are taking only one selfie image and superimposing it with a UV-map template to create it. I'd like to do something on similar lines.