MetallicRoughness workflow conversion to SpecularGlossiness

I directly assign the metalicTexture in PBRMaterial to reflectivityTexture and set the metalicTexture and metalic and routing to null. The result shows an abnormality

This is an example:

I don’t see a question, but you can’t just assign a metallic texture to reflectivity because they are completely different. The metallic texture for the BoomBox is stored as ORM (occlusion in the red channel, roughness in the green channel, and metalness in the blue channel). Reflectivity texture wants a color specular texture.

glTF has an archived extension for spec/gloss workflow here: glTF/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness at main · KhronosGroup/glTF (

You can play with a conversion algorithm I came up with a while ago here: glTF PBR Conversion (BabylonJS) (

That said, why do you want to convert to spec/gloss?

1 Like

I found it interesting to switch workflows on Sketchfab and would like to create a similar one


I roughly understand. I will use your algorithm to see if it can achieve the desired effect

Note that conversion from metal/rough to spec/gloss is lossless, but conversion from spec/gloss to metal/rough is possibly lossy.

Also note that modern systems will use specular on top of metal/rough workflow. This is the primary reason why the KHR_materials_pbrSpecularGlossiness extension has been deprecated and archived.

1 Like