code: def colors_to_materials(colors, count=None):
      
  
      # convert RGB to RGBA
      rgba = to_rgba(colors)
  
      # if we were only passed a single color
      if util.is_shape(rgba, (4,)) and count is not None:
          diffuse = rgba.reshape((-1, 4))
          index = np.zeros(count, dtype=np.int)
      elif util.is_shape(rgba, (-1, 4)):
          # we were passed multiple colors
          # find the unique colors in the list to save as materials
          unique, index = grouping.unique_rows(rgba)
          diffuse = rgba[unique]
      else:
          raise ValueError('Colors not convertible!')
  
      return diffuse, index
docs: Convert a list of colors into a list of unique materials
      and material indexes.
  
      Parameters
      -----------
      colors : (n, 3) or (n, 4) float
        RGB or RGBA colors
      count : int
        Number of entities to apply color to
  
      Returns
      -----------
      diffuse : (m, 4) int
        Colors
      index : (count,) int
        Index of each color