# ModelMaterial

#### new Cesium.ModelMaterial()
Scene/ModelMaterial.js 26

  A model's material with modifiable parameters. A glTF material contains parameters defined by the material's technique with values defined by the technique and potentially overridden by the material. This class allows changing these values at runtime.

  Use `Model#getMaterial` to create an instance.

  ##### See:

  - Model#getMaterial

### Members

#### readonlyid : String
Scene/ModelMaterial.js 61

  The name of the glTF JSON property for this material. This is guaranteed to be unique among all materials. It may not match the material's `name` property (@link ModelMaterial#name), which is assigned by the artist when the asset is created.

#### readonlyname : String
Scene/ModelMaterial.js 44

  The value of the `name` property of this material. This is the name assigned by the artist when the asset is created. This can be different than the name of the material property (`ModelMaterial#id`), which is internal to glTF.

### Methods

#### getValue(name) → Object
Scene/ModelMaterial.js 108

  Returns the value of the parameter with the given `name`. The type of the returned object depends on the glTF type of the parameter. It will be a floating-point number, Cartesian, or matrix.

  Name | Type | Description
  --- | --- | ---
  `name` | String | The name of the parameter.

  ##### Returns:

  The value of the parameter or `undefined` if the parameter does not exist.

#### setValue(name, value)
Scene/ModelMaterial.js 82

  Assigns a value to a material parameter. The type for `value` depends on the glTF type of the parameter. It will be a floating-point number, Cartesian, or matrix.

  Name | Type | Description
  --- | --- | ---
  `name` | String | The name of the parameter.
  `value` | Object | optional The value to assign to the parameter.

  ##### Throws:

  - DeveloperError : name must match a parameter name in the material's technique that is targetable and not optimized out.

  ##### Example:

      material.setValue('diffuse', new Cesium.Cartesian4(1.0, 0.0, 0.0, 1.0));  // vec4
      material.setValue('shininess', 256.0);                             // scalar