passOrder constant
Every pass the engine registers, in the order it registers them —
gfx-19n.
The key space disabledPasses is typed against, published as data
rather than described in prose. A name here is what a caller types,
character for character: 'point shadows (static)' carries spaces and
parentheses, 'antialias' is not spelled fxaa, and the graph rejects
anything else rather than silently changing nothing. Prose cannot be
typed into a set, and a document that drifted from the strings would be
worse than no document — which is why pass_order_test.dart compiles a
frame and compares.
The order is the version chain: each pass reads what the ones before it left. That is why it is a list rather than a set, and why reading it answers questions the names alone cannot — occlusion is registered before bloom, so a glow is taken from a picture that is already occluded.
Not every registered pass is here, and the exception is stated rather
than hidden. A reflection probe's name carries its index —
'reflection probe 0' — so the set of them is a property of the scene
and not of the engine. probePassName builds one. Everything else is a
fixed string.
Three of these cannot be switched off at all; ask undisablePasses.
Implementation
static const List<String> passOrder = <String>[
'point shadows (static)',
'point shadows',
'directional shadows',
// Reflection probes are registered here, one per probe in the scene, and
// are named by index rather than by a constant — see [probePassName].
'scene',
'object ids',
'reflections',
'luminance',
'ssao',
'ssao blur',
// Beside the occlusion because it reads the same buffer and its result is
// applied in the same place — `gfx-76n`.
'contact shadows',
'light shafts',
'depth of field',
'bloom',
'composite',
'antialias',
// `gfx-43n`/`44n`/`45n`, last: a mode here is about the finished picture,
// so it runs after the tone map and after the edges are smoothed.
'viewport shading',
];