constructor (parent) {
    super(parent)
    this.material = 'standard'
    this.autoDisposeGeometry = false
    this.autoDisposeMaterial = false
    this._dirtyMtlProps = null
  }
A facade for rendering a Mesh. The following properties are supported:

@member {Geometry|BufferGeometry} geometry - The geometry instance to be used for this
        mesh. It's recommended to use a shared geometry instance between meshes when possible.
@member {string|class|Material} material - The type of the material to be used for this mesh. Can either
        be a reference to a Material class, a Material instance, or one of the strings in the `MESH_MATERIALS`
        enum. Defaults to 'standard'.
@member {boolean} autoDisposeGeometry - Whether the geometry should be automatically disposed when this
        mesh is removed from the scene. Defaults to `false`. You can set it to `true` as a memory optimization
        if the geometry is not expected to return to the scene later, but this is not generally needed.
@member {boolean} autoDisposeMaterial - Whether the material's shader program should be automatically disposed
        when this mesh is removed from the scene. Defaults to `false`. You can set it to `true` as a memory
        optimization if the material uses a custom shader that is not expected to be used again, but this is
        not generally needed. Note that this will _not_ dispose any textures assigned to the material.

Also, for convenience, properties of the material can be set via `material.*` shortcut properties. For example,
passing `{"material.transparent": true, "material.opacity": 0.5}` will set the material to half-opaque
transparency. Colors will call `set` on the Color object for that material property.