cedarwolf opened this issue on Jun 01, 2013 · 48 posts
kobaltkween posted Wed, 19 June 2013 at 3:41 AM
Please forgive me for the long post. I don't mean to be impolite, just informative. Please feel free to ignore any information you don't find useful.
Bill1200 - I edit my textures a fair amount, just to get different skin tones out of textures I already like. Darker skin textures tend to fair worse with EZSkin style shaders. That's why I made my own shader in the first place. Light skinned characters looked great, but darker skinned ones looked very weird to me. A dark skin should be brighter/higher valued in the light, not less saturated- which is what adding white will do.
icandy265 - Nice use of double scatter! It's simple and clean. I totally get why you're using Alt Diffuse rather than Ambient. I like having the separate Value control for possible diffuse mixing, but Alt Diffuse is more elegantly simple.
I just thought I'd pass along a few warnings about some of the things you've done that have sometimes caused me problems in my own shaders in the past.
The first and most basic is using HSV to hue shift. You should be able to do this. If Poser's HSV node worked like Blender's (my other weapon of choice), it wouldn't be a problem. But for what is (to me) completely unapparent reasons, the hue shift on the HSV node doesn't act like HSV in Photoshop. The results are more volatile. Sometimes it works, and sometimes it makes blotches of crazy color on your map. IIRC, the old Alice texture by Aery Soul used to have this weird green blotch at the lips (and other redder places) when I did pretty much the same hue shift you did to make the subdermal map.
Which isn't to say don't use hue shifting. If it works, don't worry about it. Most of the time, it's not a problem. But if you use it and get weird blotches of a color that doesn't make sense, that's why. I've given up figuring out which textures it likes and which it doesn't, so I use Blender and color multiplying and other tricks to deal with the hue part. So if you run into that problem, you can get around it.
The second is really minor. You've used the same conservation of energy technique that's in EZSkin2, which is to use your Blinn as a single channel mask for your Diffuse and SSS shading. This works great as long as Blinn is single channel, which, since most people use white directional lights, it usually is. Years ago, when I was first trying to make my own skin shader, I tried this and got some weird and severe color problems in certain situations. The problem stemmed from my use of colored lights, which means a colored Blinn.
When a color is made single channel, it's averaged. So if there's, say, 100% Red and Green, and 0% blue, it will average out to about 66% grey. If your Blinn is the pure, bright yellow described above, and you do a single channel mask of your diffuse and sss, there's going to be much less blue than there should be and much more yellow.
That said, almost everyone uses EZSkin2 and I've never seen the problem in anyone else's renders. I don't think it will necessarily present you with issues. I'm just mentioning it because I spent ages fighting that problem in my test renders way back when before figuring out its cause.
The simplest solution to that is not to worry about CoE. Specular nodes are just fake reflections. It's not like they can be "correct," because they're inherently fake. The more complex solution is to do CoE with true color math (subtraction). Just make sure to Clamp your Blinn subtraction if you go that route. If the Blinn goes over 1 (bright or close enough lights will do this), and you don't clamp the subtraction, you get negative colors and wild looking results.
To everyone- For my own crazy, perfectionist reasons, I've managed to test myself into an entirely new skin shader. Which means more testing to go (finalizing some parameter changes, changing skin textures and light colors, etc.). But this is what I've learned so far.
I wasn't quite right about Scatter. If you don't check "Use Material Color," it just seems to scatter white with a hint of the texture map. I'm not at all clear on how the ratio of white to texture map is determined, but that's what seems to be happening. It doesn't matter what Material preset the Scatter node has if Use Material Color is unchecked. It always scatters the same.
If you do check Use Material Color, then it scatters according to the Material preset (Apple, Chicken1, Chicken2, etc.). At least, this is what the manual says and what seems to happen at the end. Looking at it mid-rendering, the scattering looks the same. So confusing.
EZSkin2 uses scatter with Use Material Color unchecked. If you check it, your results are more saturated and darker. There doesn't seem to be a way to do this in the EZSkin2 interface, but you can just do this by hand and use a material manager (like the currently free ShaderSpider) to propagate it throughout the different zones.
While Skin1 and Skin2 are based on light skin, they're both more saturated and darker than with Use Material Color off. Even Marble is darker and more saturated than default.
While a multi-scatter solution has the potential to be more correct and address variations in scattering, checking "Use Material Color" might be a quick and easy fix for most people using EZSkin2 based shaders.
It would be nice to have a Scatter that had a slot for scatter color beyond the presets. Scatter and Custom_Scatter simply don't work the same. That said, you can do just fine with Custom_Scatter and other tricks. I think I'm just about satisfied with my new skin shader, which uses a bit of both.