encodeScene abstract method

void encodeScene(
  1. SceneEncodeRequest request
)

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);