Shader Inputs
ShaderInputs is the engine-side bridge between shader-module props and the
uniform buffers or bindings consumed by a Model
or Computation.
It resolves shader-module dependencies, calls each module's getUniforms()
function, keeps per-module uniform values grouped by module name, and separates
uniform values from resource bindings.
Where Shader Types Fit
ShaderInputs relies on shader-module uniformTypes declarations to understand
which returned values are uniforms and how nested composite values should be
merged.
For the descriptor syntax and the TypeScript inference rules behind
uniformTypes, see Core Shader Types.
Composite Uniforms
ShaderInputs preserves the nested JavaScript shape of composite uniforms at the
module boundary. For example, a module can expose a struct or array-of-structs
API while still packing those values into a flat uniform buffer internally.
This is what allows modules like lighting
to accept lights: Light[] even though the underlying uniform buffer uses a
fixed-size trailing array of light structs.