RobynsVeil opened this issue on Jan 24, 2009 · 490 posts
bagginsbill posted Sun, 01 March 2009 at 6:20 PM
OK, now that the first rush of success is behind you, we have a little work to do.
Did you know that part of the color math you wrote cancels itself out?
I'm assuming that you intend for baseTone to be a tinted version of the color map, and that by adjusting that color, you can adjust the overall tone of the skin.
But let's look at the math.
baseTone = SimpleColor(ltBlue * colorMap)
Simplifying (because the SimpleColor node doesn't change anything) we see this is:
baseTone = ltBlue * colorMap
Now let's look at your Spots node. Some pixels will be Base_Color and some will be Spot_Color. Let's look at these one at a time.
For the pixels that are Base_Color, (via the spots node) you're setting:
setSkin = Base_Color = baseTone = ltBlue * colorMap
With me? For those pixels, all four of those are the same.
Then you do:
linearColorMap = ((colorMap + setSkin) - baseTone) ** gamma
But given the above equality that's the same as:
linearColorMap = ((colorMap + baseTone) - baseTone) ** gamma
Which reduces to:
linearColorMap = (colorMap) ** gamma
Hmmm. The baseTone doesn't do anything on those pixels.
It does do something on the Spot_Color, but I'd not call it a predictable effect. We could run through the math, but it's not really worth it.
Aren't you trying to tint the colorMap altogether, using ltBlue into the baseTone? And then you want to run that through the spots, so that all the skin is colored by baseTone, and some of it is colored by the spots color? If so this is much clearer:
linearColor = Spots(baseTone, ltBeige * baseTone, ...) ** gamma
See that? I feed the original baseTone and the product of ltBeige times baseTone (that's tinting it) into the Spots. The result is either baseTone (ltBlue * colorMap) or a tinted baseTone (ltBeige * ltBlue * colorMap). In other words, the base color is tinted, and the spot color is double tinted.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)