Cost
Measured, not claimed. Fort → Verify Contract re-checks all of it.
Where it lands
| Master | Everything off | Everything on | Taps | Samplers |
|---|---|---|---|---|
M_FortCharacter | 124 | 277 | 6 | 3 |
M_FortWeapon | 124 | 205 | 2 | 2 |
M_FortBase | 124 | 200 | 3 | 3 |
Pixel shader instructions, from the Material Editor's own estimate. It over-reports, so treat these as baselines to hold steady rather than ground truth.
What each switch gives back
On the character, from everything on:
| Turning off | Saves | Also |
|---|---|---|
bFriendFoeRim | 56 | a gradient tap |
bUseSpecular | 38 | the panorama tap and its sampler |
bUseDiffuse | 19 | two gradient taps |
bUnderglow | 14 | a gradient tap |
bSkin | 7 | a gradient tap |
These are real, not nominal. Feature gating is static bools on material function inputs, and a discarded function input is never compiled - so a switched-off feature takes its texture taps with it, not just its arithmetic.
The floor
124 instructions with every switch off. That is the shared surface block: the albedo and normal taps, the shading vectors, the pack unpack, and the clamped indirect and distance responses.
It does not shrink, because a Custom node emits its whole body whether or not an output is read. That is the trade for having the maths in a .ush instead of the graph, and it is the obvious place to look first if the budget gets tight.
Samplers
Three at most, on any master.
| BaseColor, Normal, CRM | share one - they are all on the world wrap group |
| The gradient atlas | one, however many rows are read |
| The panorama | one, because a Custom node brings its own |
Nowhere near the 16 the platform allows, and the verify pass asserts it stays that way.
Vertex
153 on the environment master, 313 on the character and weapon. The difference is the skeletal mesh vertex factory, not anything in the shading - nothing here writes world position offset.
Verifying
Fort → Verify Contract. It builds an instance per feature and asserts what this page claims, one at a time, so a failure names the claim that stopped being true.