Skip to main content

Material

Client Server

Methods​

boolean HasProperty(string name)​

Vec3 GetPropertyVec3(string name)​

nil SetPropertyVec3(string name, Vec3 vec)​

Vec4 GetPropertyVec4(string name)​

nil SetPropertyVec4(string name, Vec4 vec)​

nil SetProperty(string name, Vec3|Vec4 vec)​

Feeds a live Vec3/Vec4 value into a shader uniform without rebuilding or reloading shaders — the practical way to drive a "maker-settable" uniform (e.g. from a UI slider). Notes:

  • The named field must already exist in a UBO the material actually uses; a brand-new UBO at an unused binding won't get filled. Pack scalars into a Vec4.
  • The value applies on the next frame; no Client:ReloadShaders needed for the value itself.
  • An unset UBO field reads as garbage — call SetProperty once at load to initialize it, and clamp to sane ranges in the shader.
  • Get the shared material the renderer actually draws with Scene:CreateMaterial("name") (returns the cached instance, not a copy).

See also the typed SetPropertyVec3 / SetPropertyVec4.