Performance Tips
If a Genesis material is slow, it is almost always one of three things: too many texture samples, too many shader variants, or batching broken by a script. This page walks the optimization process the way a perf engineer would.
As a reference, a heavy material (Lit + Cel Ramp + Rim + MatCap + Triplanar + Stochastic + Outline + Dissolve) can cost around 6.2ms/frame on an Adreno 730. Trimmed to Toon + Cel Single + Outline, the same gameplay-distance read drops to roughly 1.8ms — a 3x reduction with no visible difference at distance.
The optimization process
- Profile first. Open the Unity Profiler. Identify the slowest material.
- Check sample count — Frame Debugger shows the fragment instruction count and sampler bindings.
- Disable one feature at a time. Cut everything you cannot prove is needed at gameplay distance.
- Audit variants.
Tools > Genesis > Shader Tools Window > Variant Audit. - Confirm batching survives in the Frame Debugger.
Cost reference
Tactical wins
- Use Single-band cel when you can. Stepped(3) and Ramp look great, but Single is the cheapest tier.
- Bake AO instead of running real-time AO. Use the AO Baker tool.
- Share materials. Two materials with the same keyword set = batched. Diverging materials = separate draw calls.
- Disable Receive Shadows on FX, holograms, and Unlit FX meshes.
- Drop texture resolution on distant props. 512 instead of 1024 is invisible at 10m+.
- Avoid Stochastic on mobile. Use plain triplanar plus a low-frequency detail map.
Mobile target frame budget: a single Genesis material should cost under 1.5ms per fragment shader invocation in the worst case. If you exceed this, audit samples and variants.
Per-instance keyword toggles via EnableKeyword instantiate the material
and double draw calls. Pre-create material variants instead.
Build size
Variant count drives build size. A typical project ships 20–50 unique variants. If Tools > Genesis > Shader Tools Window > Variant Audit reports more than 200, your Feature Configurator profile is too permissive — tighten it.