It looks like the “mask” textures are supposed to hold the opacity channel
If we look inside the .mtl file, it has lines like:
map_d gleditsia triacanthos flowers mask.jpg
According to this MTL OBJ materials file (paulbourke.net) reference, map_d refers to a “dissolve texture”.
map_d -options args filename
Specifies that a scalar texture file or scalar procedural texture file
is linked to the dissolve of the material. During rendering, the map_d
value is multiplied by the d value.
As it turns out, we do support this in the .obj loader. When I open the tree model in the Sandbox, I can see the material has the correct opacity map
But the leaves are still fully opaque.
If I open it up with the texture inspector and paint transparent pixels, then the material becomes transparent in those places
So the root of the problem is that we expect opacity textures to hold the opacity data in the alpha channel, but this model is using black/white to represent opacity instead.
Not sure if this is something we would want to address on the .obj loader side, or on the material side. @bghgary what do you think? Worth nothing that this model is broken in the exact same way in Blender.