OpenGL smooth surface rendering

So I’ve done a good amount of 3D work — modeling, animation, character animation, VR projects, etc. Tools like Maya, Cinema4D, and Blender are more than familiar. This project helped me scratch the surface on the technology that allows those tools to work. In this project, I used OpenGL to create a rendering of my own face! Here’s what I did:

  1. Took a picture of my face using my phone! lol

  2. Opened the picture in Blender to create a mesh that somewhat followed the features of my face

  3. Created a UV mapping of vertices and exported the mesh as an .obj file

  4. Wrote an OpenGL program to render the mesh

  5. Wrote a vertex and fragment shader

  6. Added code to the program that would apply a subdivision algorithm to smooth out the mesh. The subdivision algorithm is from my professor and can be found here.

Here’s a video that shows the result! You’ll first see the original mesh, then my face applied to the original mesh, then the smoothed surface after the subdivision algorithm was applied, and finally, my face applied to the smoothed mesh.

I took a screenshot of my face rendered like this and put it on all of my dating app profiles. It’s the best thing ever.