Subsurface scattering in deferred physically-based shading

Having a custom deferred renderer in Unity (not the built-in Deferred path) where one of my G-buffers contains material properties for physically-based lighting that is applied in post-process:

R = roughness [0…1]
G = refractive index 1…20 precomputed into f0 [0…1]
B = reflectivity [0…1]

Now I’m wondering, when we already have these 3 surface properties, is there a reasonably plausible heuristic out there that could let me auto-infer the material’s “subsurface-scatterability” (let’s call it SSS-strength) instead of adding another G-buffer channel? For example I’m thinking some materials like plastic and water and skin would have quite a high, yet metallic/stony/wooden etc. much smaller. But I can’t seem to make out any semi-logical “connection” that could translate any combination of the above “RGB” data into a suitable at-shader-runtime-derived “SSS-strength”.

(Ignoring here whether full-screen per-pixel SSS is a good idea perf-wise, I can always switch it off for another 1 or 2 years until hardware catches up a bit but I’m right now still itching to at least implement it and see the looks.)

Now there simply might not be any such connection, but yeah then there might well be. Especially the roughness and refractive index properties do carry some valuable info (for example I use them for fresnel reflections and the B (reflectivity) channel is just an artistic strength-multiplier slider of sorts, cranked up to 1 especially for shiny metals/mirrorglass/etc.)

I think it’s unlikely that there is any sort of hard-and-fast relation, or even a decent general heuristic. If you have some idea of the materials you need to render for your game, maybe you can write them all down and find some rule that works for the cases you care about.

I guess you’re right… well I post-poned the topic of SSS for now anyway :wink: thanks!

Im not sure if i understood the question at all, but i am sure subsurface scattering is mainly about the volume first.
So, why dont you just calculate the usual sss lighting and then distort the result with the refractivereflectroughness or whatever variable you have in mind?

You can check the assasins creed 4 water shader for an example. Although, while you will go for hiper-realism there it is too slow for realtime and even professional people fake or bake things with just a texture wherever possible.