Hello everyone! In this tutorial I will show you the options for customizing eyes for VRM models. We can use two types of eyes: Solid or Fake Eyeball.
Solid Eyeball
This is the type I have been using in my models, very common in 3D character models, after all it is quite intuitive to visualize the eyes as spheres. In some models it may be common to use a simple sphere with one or more eye textures. In others it may be composed of more than one mesh, such as a more or less concave sphere in the front to simulate parts such as the pupil, iris, sclera, etc. plus a simple sphere for the outer part of the eye, usually with a material similar to glass to simulate the moist surface of the eye and also to give a refraction effect that makes the inner part of the eye appear completely spherical.
In the image below, you can see an eye made with a material with properties similar to glass in Blender. As you can see, the eye looks like a simple textured sphere, when in fact it is an object composed of two meshes and two materials, one for the outside of the eye and one for the inside.


The problem is that materials can have different settings and appearances depending on the 3D software. VRM 0.x supports Unity standard and unlit shaders, as well as MToon, the latter of which is VRM's own. However, MToon does not support realistic materials such as glass. Setting up refracted glass in Unity can be tricky, and the best results are obtained in Unity URP, which is only supported in VRM 1.0.
An alternative to MToon would be to create a texture to simulate the highlights of light in the eyes, in the Emission and Rim settings in Unity or Rim Lighting in Blender. Although it is not realistic, it is possible to customize it in several ways, such as color and intensity of the edge, in addition to being able to add a specular texture.


As you can see in the images, this texture can have different shapes. To make the darkest part transparent and the lightest visible, it is necessary to set the alpha of Lit Color to a low value (above zero) and with very dark colors in Lit and Shade also to generate contrast with the specular map. The visible part can have several shapes such as ellipses, stars, etc. Also note that the shape follows the user's view when the angle is changed, which gives a certain impression of an illuminated object where the reflection will always follow the position of the light.




Fake Eyeball
This type is standard in VRoid models and very common in anime style models. Basically, a texture is used to simulate the sclera (white part of the eye) in the eye sockets instead of a spherical mesh and the iris and pupil in a semi-concave, almost flat mesh.
If we take a quick look there is no visible difference between the images of the wolf character in the example, but the one on the right has solid eyeballs and the one on the left has the fake eyeball. But if we select the object corresponding to one of the eyes we will notice the difference.




At this point we can ask ourselves which one is better? That depends, because each one has its advantages. The solid eye ball is better for character models with more detailed or more realistic textures, in which case it may be more interesting to make an eye with more realism.
In the case of fake eyeball it is better for models with toon shader, where graphics are not realistic, usually with flat colors and simplified depth.
Other advantages we can mention:
reduction in the number of polygons: although some eyeballs can be quite lowpoly, in some applications the number of total polygons in a model may be restricted, so in this context, the fewer polygons the better. In the images below we can see some of the complete eyeball, the iris with only the external part and only the iris.
Solid eyeball, outer eye and iris, iris only. Above their respective wireframes better fit: when the eyeball is separated from the eye socket, it can be difficult to adjust them in terms of size and position, for example when the eyes rotate around themselves, we don't want them to go beyond the eyelids or other areas of the face, this may depend on the position of the armature bones in relation to the position of the eye. Now when the socket simulates the eyeball, it makes adjustments easier, since there is no longer a larger spherical object to be contained in the socket area, but a mesh for the iris and pupil, much smaller and easier to contain.
different materials: with the solid eyeball, a texture map covering the sclera, iris and pupil is usually required, loaded into the material. With the fake eyeball, we can have the sclera separated from the other parts, which allows for a certain flexibility in customization. In the images below, for example, we have different combinations between the iris texture map and sclera colors configured in the material itself, without a texture map. If we keep the external part of the eyeball, we can combine it with customized highlights.




Conclusion
We've seen some differences and pros and cons of solid eyeball versus fake eyeball. Since fake eyeball is a better option for toon shader models, I plan to keep it as the default for my sample VRM models, but I might keep solid eyeball in the templates. So that's all, until next time!