Procedural Saliva

Plugins + Scripts Procedural Saliva

Download [<1 MB]
This update addresses issues reported after 0.4.13: flickering strands and the apparent limit of around 16 strands even with Max Strands set to 32.

  • Strands can now survive brief delays in skin updates. The plugin reads skin geometry from the GPU to keep attachment points on the visible surface. Previously, when that data became slightly too old, the plugin could skip drawing existing strands or reject their anchors. A busy scene could therefore make strands disappear and reappear even though their contact surfaces still existed.
    Existing strands now continue using the last valid skin snapshot for up to 0.5 seconds while waiting for updated geometry. A single failed read also preserves that snapshot instead of immediately discarding it. This addresses a specific timing problem that could contribute to flickering at low FPS.
  • The temporary snapshot is only for keeping existing strands alive. New strands still require sufficiently fresh geometry and a valid external contact. Disabled, removed or replaced surfaces invalidate their attachments, and old snapshots expire rather than leaving strands attached to stale positions indefinitely.
  • Max Strands now has enough sources to support its selected value. Previously, the slider increased the allowed strand count, but the actual source pool stayed fixed: 12 arc sources, plus five tongue sources for Mouth. Raising the limit to 32 therefore could not produce 32 independent strands.
    Both emitters now expand their source pools as needed. Existing sources keep their assignments, and increasing the limit does not reset active strands. Contact coverage, probability and merging still determine how many strands actually appear.
  • The larger source pool keeps the existing search budget. Contact checks rotate through the available sources instead of checking every additional source in every pass.
  • The reported flickering still needs confirmation on the affected setup. Please try this hotfix in the same scene and with the same graphics settings, particularly around 35 FPS or below.
Changes since the initial Hub release, 0.4.10.
This update improves liquid highlights and attachment accuracy, adds control over strand lifetime, and removes repeated work from contact detection and rendering.

Liquid appearance and skin attachment
  • Corrected liquid highlights: Smoothness, Fresnel and Specular now use the correct parameters for VaM's native liquid shader. The existing sliders keep their ranges; their values now translate correctly into the material.
  • More accurate attachment: Strand anchors now follow the skin geometry VaM actually displays, including smoothing, delayed GPU display and skin offsets. This corrects the mismatch that could leave attachment points away from the visible surface.
  • Stable strand sources: Each source stays assigned to its strand until that strand ends. Active sources are no longer randomly repositioned or repeatedly reassigned to the nearest external contact.
Lifetime and strand continuity
  • New Strand Lifetime control: Set each emitter independently from 1 to 120 seconds. The default remains 12 seconds. Changes also apply to existing strands, with a smooth fade during their final 0.6 seconds.
  • Existing strands retain their identity: Merging now happens only among strands created in the same generation pass. Established strands keep their age, volume and simulated shape.
  • Lowering Max Strands limits new generation without deleting strands already present. A strand expiring during an uninterrupted contact no longer immediately produces a replacement; release and make contact again to generate another.
Performance and optimization
I continued fighting for fractions of a millisecond by removing repeated searches, calculations and geometry uploads.
  • Occupied sources reuse their saved contact anchors. Full surface searches are skipped when every source is already occupied.
  • Mouth attachment searches repeat only after enough movement or a relevant normal change. The existing smooth transfer across facial skin is retained, with shared skin-motion tracking for all Mouth strands.
  • Strand endpoints are sampled once per visual frame and reused across simulation steps and rendering.
  • Unchanged strand geometry is no longer rebuilt or uploaded. Small movements accumulate until an update is needed, while stretching, motion, breaking and lifetime continue to work.
Updating
Your existing settings are retained; Strand Lifetime saves independently for Mouth and Vagina.
Back
Top Bottom