René Vidra shared the process of creating, rigging, and animating a realistic 3D eye.
In case you missed it
Read our previous interview with Rene
Hi! My name is Rene Vidra and I live close to Vienna, Austria. I’m a Co-Founder of the CG-company Utopiatree, working in the fields of illustration, film, and augmented reality. I’m a 3D generalist who is trying to improve my skills, especially in the fields of character creation, rigging, and animation.
I started my career as a CG Artist in 2009 after I got a degree in “Interactive Entertainment Design” at the SAE Institute in Vienna. Back then I had been working as a freelancer for several clients and projects, mostly in the fields of 3D Projection Mappings, Advertisement, and AR. Although I initially wanted to work as a concept artist, I discovered my passion for 3D early.
Focus on a Small Part of the Character
I took CGMA's course ‘Character Creation for Film/Cinematics’ with Pete Zoppi and created a mermaid that I wanted to improve. When you bring life to a character, one of the most important areas is the eyes. There're quite many things critical for a highly realistic look, – not textures, shaders, and rendering, but also rigging, animation, etc. I chose to focus on the eyes first and had to spend a lot of time to get them right.
First Things First – Getting References
Getting enough references is key to everything when it comes to realism. There are tons of stunning references for eyes – high-resolution photos, (super) slow-motion videos, and already a bunch of tutorials on how to create 3D eyes for film/cinematics and game engines. One of the best resources for reference images of the human head is Daniel Boschung's website. It seems like you can endlessly zoom in his pictures and see every pore, skin feature, and facial hair.
We see dozens of eyes every day, that’s why it is easy for us to differentiate between a CG eye and a photo. The most interesting part is to intensively analyze those details and walk the extra mile. That is the reason you should always spend enough time doing your research. It will save you a lot in the long run.
Modeling – Splitting Things Up
I split the eyeball itself into three pieces – the sclera, the iris, and the cornea. The iris is an amazing part of the eye with its unique colors and forms. As a base, I used a photo, modified it in Photoshop to my needs, and used it as a base for my sculpting process. Especially for the iris, you do not have to worry too much about the form and the structure if it looks good to you.
Additionally, I sculpted the caruncula and modeled a meniscus shape to get everything I needed for the final eye.
Texturing and Shading
I used Substance Painter and Photoshop for the entire texturing process. Using a combination of projection painting with reference images and adding some hand-painted areas got me the result I wanted. I ended up using just a color map out of Substance Painter and displacement maps baked out of ZBrush. The rest could be achieved trough ramp-nodes and colormaps in Maya.
I used V-Ray for the rendering and VrayMtls or VrayAlSurfaces for different meshes. Although I add some small adaptions each time for every character, the basic setup is pretty simple.
For the caruncula, I used the same texture as for the sclera, placed the UVs accordingly to my needs, and for the blending between caruncula and sclera I used a ramp for the opacity channel.
Although I am a 3D generalist, one of my real passions is rigging. it was easy for me to set up an animation-friendly rig that is able to make some realistic eye movements. I created all the joints which are needed around the eye area and one single controller to do all the connections. I know it is always impressive to see a rig with lots of controllers and attributes but as soon as it comes to animations, it’s often overwhelming especially if you just want to make some basic movements. That is the reason I wanted to have it as simple as possible.
I started adding an aim constrain to the joint that is bind to the eyeball itself (skinned to the cornea, sclera, and iris) so it follows the controller.
The most important thing that adds realism to the whole rig is the so-called “skinny eye setup”. It’s basically the movement of the skin around the eye that follows the eyeball in different increments.
There are several ways to set up this kind of rig and connect the joints to the controller. Creating a combination of multiplyDivide and clamp nodes in the node editor will probably be the best solution performance-wise, but I chose to do it via DrivenKeys just for the sake of convenience and to save time.
To go the extra mile, I added two additional attributes to the controller to open and close the eye and to scale the iris.
After setting up the rig as animation-friendly as possible the animation process was actually pretty easy and was done in just a couple of hours. The key here was to find a good reference for the eye movements but luckily the internet has tons of slow-motion videos. Still, having in mind that I was creating a mermaid that could turn into a monster, I also wanted to do a transformation into that state. To do this, I created a png image sequence in After Effects with footage of different ink splashes and plugged it as an animated texture into the opacity channel of a separated mesh sitting between cornea and sclera.
Lighting and Rendering
The lighting of the scene is super simple, it’s actually done with just two lights. A key light on one side of the face that is responsible for almost the entire lighting and a fill light to brighten the other side of the face.
Although I pushed the 3D render already pretty far, I wanted to be able to adjust each renderpass afterward to get the best result. I added all AOVs I needed and reconstructed them in After Effects to use some color adjustments at the end.
I learned so much by focusing on a specific part of the human body. You really must dig into the anatomy, the specific features, and all the fine details.
The project is available on Gumroad, you can check it out here (includes the full face of the character).
René Vidra, 3D Generalist & Co-Founder at Utopiatree
You may find this article interesting