I'm trying to convert an SFM model to Blender and came across something called an exponent texture. Do I need this, and if so, how do I plug it into the Principled shader?
1 Answer
I'm not familiar with SFM, so I googled and found: https://developer.valvesoftware.com/wiki/Phong_materials , which suggests that the image you're looking at is a remapping of specular power (remapped from 0,1 to 1.0, 150.0).
Specular power is used in some engines for gloss/roughness. A high specular power indicates high gloss/low roughness. Blender does not use specular power to control gloss in any of its shaders, in either Eevee or Cycles, and specular power does not map linearly (or in any particular way, really) to Blender's various roughness models.
If you wanted to use this perfectly, it would require a separate render layer for every light, where you computed the specular highlight in compositing from raw values. (Basically, specular = specColor * lightColor * clamp(dot(normal, (light+view)/2))^SP. Which is then added to a no-specular version.) This is tedious and doesn't lead to great looking output anyways.
If you wanted to use this in some fashion, you would use a remapped version of this and plug it into any roughness inputs your shaders use. Like I said, there's not really any mathematically correct way to do this, so you'd be doing it by eye. Main thing is to realize that a high SP corresponds to a low roughness and vice versa.
Note, that link suggests that different channels may or may not be used in SFM. The above should be correct for a grayscale exponent texture, which should be the norm. Technically, it is the red channel that is used as the exponent, while the green channel sounds like its used to tint the specular. The link does not give any more info on how the green channel is used, other than suggesting it is rarely used and not compatible with all SFM branches.