A fully procedural breakthrough: mascara that forms, runs, dries and smears on the character's skin in real time.
Fully procedural by design
To my knowledge, this is VaM's first complete procedural mascara and tears system with physical contact smearing, with no direct equivalent.
I built Procedural Mascara to solve a problem that had been considered beyond VaM's limits: generating evolving pigment and wetness directly on a moving character's skin, then letting physical contact reshape the deposited mascara. Trail patterns, growth, drying and smearing are calculated during your scene.
Effects and controls
- Living mascara trails: pigment builds around the eyelids and develops into randomized cheek trails, independently for each eye.
- Finite or continuous flow: choose a target amount that grows and holds, or keep producing new trails as older pigment fades.
- Interactive smearing: colliding hands and objects can drag existing mascara across the face through sliding contact.
- Independent tears: separate sources and controls let tears run alone or alongside mascara.
- Adjustable appearance: tune strength, density, streak count, variation, dirtiness and gloss while retaining existing static makeup.
I pushed optimization as far as I could, fighting for fractions of a millisecond throughout development.
- Mask processing focuses on changed cells, and texture compositing runs on the GPU.
- Fixed buffers and a bounded pool of flow tips are reused throughout the simulation.
- Passive mode avoids skin readback; interactive processing is performed only when there is useful contact work.
- Once finite mascara has settled and wetness has dried, texture updates stop, provided independent tears are no longer emitting.
Part of one unified system
This plugin is part of my unified procedural system for VaM. The four components share the same focus: effects generated at runtime, responsive behavior and carefully optimized performance.
- Procedural Mascara: evolving mascara, tears and contact smearing.
- Procedural Saliva: attached liquid strands that form, stretch, merge and break.
- Procedural Wrinkles: skin folds driven by local compression.
- Procedural Slaps: contact-based redness, irritation and accumulated pain.
Compatibility in my testing
Within the scope of my testing, I have not encountered conflicts between these plugins or with the other plugins used in my scenes. This reflects the combinations and versions I have tested.