Next-Gen Eyes

In the past, eyes were just low poly spheres, or even just textured onto a flat head volume. As technology progressed, we could increase the resolution of the eye spheres, have animated eyelids, and now even eyelash and eyebrow hair planes. After having worked on a feature film for a while, and seeing how eyes are done for offline rendering, I realized we can copy most of it in real time.

The final look:

The construction:

There are four key pieces of geometry:

  • The eyeball itself, which how a modeled iris and pupil. The iris domes inward, and the pupil is extruded backwards. This should have very little specularity, and be relatively broad in it's glossiness. The key here is to make the pupil jet black in the specular map so that it can never shine.
  • The eye shell, which recieves the specularity, and has a lens domed outward. It should be based off the inner eye's gometry so that it can be pushed only the tiniest amount so it doesn't intersect, but still rotates inside the eye socket without poking through. It must be transparent other than specular shine. (for Xoliul, set global opacity to 0, and ensure max's viewport is set to best transparency)
  • Eyelash planes. These should extend from the edge of the eyelid (matching them vert for vert, at least on the joining side, for animation purposes)
  • The tear line. Water accumulates between the eye and eyelid, and often shines. This is the least necessary of the four, but for closeups and hero characters can add a bit of extra realism. It's just a thin strip with only specularity, no diffuse.

How I made the texture: (diffuse normal specular)

The normal map for the lens sphere, it has no diffuse or specular map, just values.