Renderer · interface
GiFieldOptions
It no longer composes the field, and that is the whole of what changed on 2026-09-18.
Explained in Hello world.
interface GiFieldOptionsimport type { GiFieldOptions } from '@driftengine/core';In depth
This pass used to take a list of instances, compose the world's distance field from them and
march the result. It was the only thing in the engine that composed a field at all — which meant
the renderer had none, and the indirect-light plan had four tasks written on the assumption
that it did. The lesson is in CONTRIBUTING.md, under auditing a closed plan: grep for who
calls a thing, not only for whether it exists.
The composition now belongs to the renderer, from what a consumer declares with
addDistanceField, and this marches what the renderer composed. So there is one field in a
frame rather than two, and what this draws is the field the indirect light actually traces
— which is the only thing that makes the picture worth looking at.
What draw does is a visualisation, and that is deliberate. A distance field is a thing you
can look at, and looking is what a number cannot replace: if the geometry is in the right places
at the right sizes the composition is right, and if a cascade boundary shows as a seam the fade
is wrong. Wave 4A's own recorded failure — a phantom surface that passed 111,907 parity samples
and was found by looking at a picture — is why this exists at all.
The field it marches is one frame old, because the renderer composes at endFrame and
prepare runs at beginFrame. PrepareContext.distanceField says why that is right rather
than merely what happens.
Properties
| Name | Type | Description |
|---|---|---|
marchStepsreadonlyoptional | number | How many steps a marched ray may take before it gives up. |