Fix several correctness issues where the new OBJ/MTL importer was not producing the same results as the old one, mostly because the code for some reason had slightly different logic. Fixes T97757:
- When .obj file tries to use a material that does not exist, the code was continuing to use the previous material, instead of creating new default one, as the previous importer did.
- Previous importer was always searching/parsing "foo.mtl" for a "foo.obj" file, even if the file itself does not contain "mtllib foo.mtl" statement. One file from T97757 repros happens to depend on that, so resurrect that behavior.
- When IOR (Ni) or Alpha (d) are not specified in .mtl file, do not wrongly set -1 values to the blender material.
- When base (Kd) or emissive (Ke) colors are not specified in the .mtl file, do not set them on the blender material.
- Roughness and metallic values used by viewport shading were not set onto blender material.
- The logic for when metallic was set to zero was incorrect; it should be set to zero when "not using reflection", not when "mtl file does not contain metallic".
- Do not produce a warning when illum value is not spelled out in .mtl file, treat as default (1).
- Parse illum as a float just like python importer does, as to not reintroduce part of T60135.
Now the repro file from T97757 almost matches between the old & new importer:
The difference (selected objects) is where the old importer was producing arguably wrong results -- the vertex normals for the cornell box itself are never set in the .obj file, but the file contains some "completely unused" vertices along with their normals at the end of the file. The old importer was wrongly fetching normals for the cornell box vertices from that; basically the normals are nonsensical. The new importer behaves more correctly here.
