RobynsVeil opened this issue on Jan 24, 2009 · 490 posts
RobynsVeil posted Tue, 26 May 2009 at 6:21 AM
Quote - Look at my gradient demos comparing a gradient in linear color space with the same gradient in sRGB color space. (or more specifically, the approximation to sRGB called GC(2.2) color space). Read what I wrote there until you can explain it without me.
Right. I decided to do exactly that. Pretty much got my head around everything else that was going on, but this!!!
Quote - x = (U - .5) * 1.5 + .5
I really, really want and need to learn how to do this sort of pattern thing. Obviously, it is what creates the gradient, U being the U_Texture_Coordinate, which starts off on one one side as black and creates a gradient to white horizontally (side to side) and then I got lost. So, telling someone else about this, I'd be quite nebulous about this point.
From what I see, though, is that colours with values in their tuple other than 0 and 1 are going to compute brighter using the linear gradient method:
linearGradient = Blend(a ** 2.2, b ** 2.2, x).labelled("linearGradient") ** (1/2.2)
where you anti-gamma colours in each channel in the Blend node and x does the gradient thing in the the Blending channel, and then you gamma the result right there before the blender output.
But that x in the Blending channel which uses that U-formula thingie I'm totally stuck on. I couldn't begin to explain how that works. It's the horizontal gradient bit. I think I saw something about those U and V nodes in The Node Cult, plus we were starting to consider them in the hair shader in the Anisotropic thread on here.
Going to take this to work tomorrow to digest.
On to the next bit.
Quote - Furthermore, you didn't do the GC right - remember you must add together everything all into one color, then and only then can you perform the final gamma correction.
In your GC version, you left that whole business in its own channel. A GC shader does not leave anything plugged into anywhere else on the Poser Surface that generates color. All must go through your Pow node.
You must add everything together yourself, then send it through the Pow node.
Now, for an extremely dumb question.
If I have a different pattern - colours and glossy and clay and whatever - for the specular side of things that have nothing to do with diffuse, is it error to set up a:
nodes -> anti-gamma -> specular -> gamma -> whatever non-diffuse channel
thing for that for that purpose with its own pow(linearColour ** (1/2.2) node? I mean, it would be difficult to do conservation of energy... I realize that. But, is the whole idea wrong, based on what you've said?
IOW, do I plug in output from my final product gammaed-colour (through one and only one pow node) to alt_specular and Reflection_color?
Trying to ask a single question by itself, here:
Should there, in a "valid" shader, only ever be one gammaed output, i.e., one pow(linearColour ** (1/2.2) process?
Next question:
if this is true, does this single output only ever gets plugged into the alt_diffuse channel?
Next question:
and if this is true, does nothing gets plugged into other channels?
I'm clearly highly confused on this. And this post is replete with multiple compound complex question for which I apologise in advance. I've tried to simplify my questions as much as possible. Thanks for your patience.
Monterey/Mint21.x/Win10 - Blender3.x - PP11.3(cm) - Musescore3.6.2
Wir sind gewohnt, daß die Menschen verhöhnen was sie nicht verstehen
[it is clear that humans have contempt for that which they do not understand]