CesiumGS / obj2gltf

Convert OBJ assets to glTF
Apache License 2.0
1.68k stars 303 forks source link

Adds texture overrides for independent materials #242

Open YANOUSHek opened 4 years ago

YANOUSHek commented 4 years ago

Allows passing a materialOverrides option to the loadMtl function. When generating a new material parsed from the .mtl file the overrides that are specific to this material are applied first before the global material overrides already existing in the code. This allows the users to specify different set of materials to override for a model. Following is an example value for the materialOverrides key:

{
  "material1Name": {
    "alphaTexture": "path_to_the_texture_file",
    "ambientTexture": "path_to_the_texture_file",
    "diffuseTexture": "path_to_the_texture_file",
    "emissiveTexture": "path_to_the_texture_file",
    "normalTexture": "path_to_the_texture_file",
    "specularTexture": "path_to_the_texture_file",
    "specularShininessTexture": "path_to_the_texture_file",
  }
}

It's possible to define more than one material override. If the .mtl file has materials that were not provided in the materialOverrides option they are loaded from the .mtl file without any overrides.