Original dragon with normal colors |
After smoothing the dragon, all of the normals are 0 |
I check it manually, making sure that all pairs actually match. However, it is hard to check for the case of an edge that does not have a partner.
So, I used Catmull-Clark subdivision, I wrote for last semester's final project. That method works on only faces that are closed, meaning faces that are completely surrounded by other faces. This means it only works on faces who have only edges with valid symmetric partners. Now, I know the dragon is a completely closed mesh, so if my structure was correct, subdivide should work on every face.
SO, I ran subdivide on the dragon, setting the normal of the new faces generated to (0,0,0), which would make them render in black. And - success! I know my structure is good.