Forum: Poser - OFFICIAL


Subject: Skin tones and SSS

cedarwolf opened this issue on Jun 01, 2013 · 48 posts


kobaltkween posted Thu, 27 June 2013 at 1:46 PM

It's not clamping the specular.  It's clamping diffuse - specular.  And the diffuse is just as combined as the specular.   Even splitting the equation into lights wouldn't make it incorrect. 

(DiffA + DiffB + DiffC + .... DiffN) - (SpecA + SpecB + SpecC + ... SpecN) = DiffA - SpecA + DiffB - DiffB + DiffC - SpecC + ... DiffN - SpecN

sure you could just as accurately express it as

DiffA - SpecN + DiffB - SpecN-1.... DiffN - SpecA, but that doesn't change the equivalence nor have a real purpose.

Look at the equations I posted.  Specular can still go over 1 (or 255, depending on how you're describing the color).  The clamping just prevents the subtraction from going below 0, and creating a negative diffuse color where the specular is brighter than 1.  Or, thinking about it physically, it says that a very bright light doesn't spontaneously create anti-photons. ;D  Besides, it seems to me that without the clamping, the equation is purely Diffuse - Specular + Specular = Diffuse, and there's no point in having the specular at all.  Which wouldn't make any sense.

As for your information about normalization, I can sort of see your point with that.   I only say sort of because I'm not at all versed in the different diffuse and lighting models and their equations, nor do the examples on that site look like any of the tests I've ever done over the years.  I've done the whole sphere test thing, and never seen the reduction in specular intensity he demonstrated, so I've got no experience to relate his findings to.  I have noticed that Specular, all on its own, seems to (unnaturally) get brighter with higher rolloff.   But that has nothing to do with CoE in the material (I can't say anything about the node itself).   Also, he doesn't seem to be taking into account the Fresnel effect at all, which I'd have expected to be an issue in realistic specular.  In other words, I definitely take your (and his) word for what you're talking about, and I can sort of see what the math is saying.   But I don't have any theoretical or experimental experience to relate it to.

That said, I'm just not that fussed about the fudged reflection of a light that doesn't actually exist.  I've never seen results that in any way, shape, or form implied a solid and unchanging relationship among specular reflectivity, light intensity, real world lights, and real world reflections.   As I mentioned, changing the rolloff on Specular while keeping the value constant makes it look like the effect from a brighter light, rather than the more diffused and blurred reflection of the same light source.  Just looking at Blinn, I've got no clue at all what the equation is for getting Eccentricity to match up with IOR, even though Eccentricity controls Fresnel effect strength and must therefore have some relationship to IOR.  For me, getting specular to look right without emitting meshes has always been a strange exercise in imagining real lights, then imagining their reflections, then trying to imagine their reflections blurred on a given surface. 

Which I think gets to my larger concern about CoE.  I tend to use emitting meshes and reflections in addition to specular.  I think of specular more like a special effect than a realistic element, so the real accuracy usually involves reflection.  Whenever I've tried to include reflection in CoE in my own shaders, I've gotten some pretty wacky effects in my reflections at times.  Like reflections in negative colors but positive shading (that one really threw me).  Or just plain crazy colored artifacts all over everything.  I've even tried inverting Fresnel on the diffuse amount, but that just made black edges that didn't look correct or good.   I now do pretty much what EZSkin does: control the reflection amount with Fresnel and leave it at that.   Nothing else has worked as consistently or as accurately. 

If I'm not going to use CoE on reflection, using it on specular seems moot.  So most recently, I personally don't tend to apply anything but Fresnel to reflection and specular.  It's been working for me pretty well so far.

To be very honest, CoE is at the absolute bottom of my list of material and rendering difficulties.  I've seen some significant errors with addition of elements in the root node using GC.  I've had really weird shading errors with surfaces that get too close to point lights (mainly a black circle of shadow), which is a problem for lamps that I want to cast proper shadows.  Errors which vanish if I go pure raytracing by forcing everything through refraction, but that makes the whole light work differently and the render take longer.  I get serious blotches all over certain meshes (like ones with fine details, like vents) due to IDL occlusion problems, even with samples up to 10,000 and shading rates down to practically nothing.  Every now and then, I get black spots all over my reflective surfaces.  Spots which go away if I start with new clean scene and rebuild to exactly the same scene.  I was recently doing some hair tests, and getting huge, bizarre occlusion-like blotches in what seem to be random places underneath transparent mesh.  Since I've had this happen with other people's shaders and meshes in the same very simple test scene, I can't say it's just my mistake.  I'm sure I could make my diffuse/SSS and specular/reflection combinations more accurate than they are, but frankly, that's not where I'm taking major hits to realism, let alone experiencing the biggest rendering errors.

To be clear, I'm not complaining.  I usually don't have to fight to get good results.   Those are just my current concerns.