encodeScene abstract method
Draws every visible mesh of scene into an open pass, as the renderer
draws the world.
For a plugin whose content is ordinary geometry in an unordinary place — a first person weapon, a portal's far side — so it inherits materials, skinning and lighting instead of growing a second copy of them.
The shadows a draw samples come from SceneShadows.from over frame:
only what the calling node declared a read of, so a node that never
claimed the atlas gets nothing to sample rather than a renderer field.
Takes the RenderFrame rather than the settings, the pass state and the shadows separately. Those three came off the frame at every call site, and the shadows had to be assembled there too — three lines a caller could get wrong quietly. Getting them wrong looked like a weapon lit as though the room were not, and there was no way for this method to tell.
Everything here is in scene space — see SceneEncodeRequest and
"Space" in docs/CONTRACTS.md.
Implementation
void encodeScene(SceneEncodeRequest request);