Chris Sprance

Technical Art Director

Cat Eyes Shader

HoudiniHoudini
Snowdrop EngineSnowdrop Engine

Cat Eyes

Built during The Division: Heartland, a shader to simulate realistic cat eyes, featuring dynamic pupil dilation and the tapetum lucidum — the reflective layer behind a cat's retina that causes that distinctive eye-shine in the dark.

Pupil Dilation

The pupil animation is driven by a custom gradient texture generated in Houdini. Each frame of the animation was rendered as a black and white alpha mask representing the pupil at a different stage of dilation. These frames were then packed into a single texture by remapping each frame's values into a 0–256 range and stacked on top of each other, where each step along the texture encodes progressively more of the eye opening. This allowed the entire animation to be sampled in a single texture lookup at runtime, keeping the shader cheap and avoiding any additional draw calls.

The dilation was controlled by a single scalar value fed in from the game: the local screen brightness at the character's position. Using screen brightness was a practical compromise: it was already available on the client, inexpensive to compute, and gave a convincing enough approximation of how a real cat's eyes would respond to ambient light.

Tapetum Lucidum

The shader also simulates the tapetum lucidum effect, the biological mirror-like layer in a cat's eye that reflects light back through the retina. In low-light conditions this produces the eerie greenish or reddish glow characteristic of cats photographed in the dark. The effect was tied to the same brightness input driving the pupil, so as the scene darkened the pupils would dilate and the tapetum glow would intensify simultaneously.

Implementation

The shader was prototyped in HLSL to iterate quickly on the look, then migrated into Snowdrop's node-based material system for integration into the game.