Hey guys, i was wondering if anybody knows of any plugins or tools for photoshop that allow you to choose your colours in linear space instead of sRGB?
The only custom colour picker i've found so far is this:
http://anastasiy.com/colorwheel and while it is definitely an amazing tool (way better than photoshops built in colour tool), it doesn't appear to do linear colour picks.
Anybody got any ideas?
Replies
To Linear
To sRGB
That helps somewhat, but i guess the reason i was asking is because i see so many references to PBR workflows saying you should always work in linear space, which means everything is 0-1 and not gamma corrected, right? So i was hoping there was a tool out there that would let me pick colours based on a 0-1 range rather than 0-255.
I think the only change in a linear lighting workflow is how rendering engines calculate lighting. In the past (and mostly in the present) game engines would calculate lighting based on gamma corrected images. Now they are lighting before the gamma correction on the texture and then gamma correcting the render. Renders like MentalRay and VRay have always worked this way. Now realtime engines are catching up.
[edit]That's not to say your diffuse/spec/whatever maps will look the same for a PBR lighting engine.[/edit]
So the numeric values you see are in linear space in Photoshop or whatever graphics app you're using... the way the screen displays them to you isn't quite the same but that's not too important because it's still correct as far as the final result is concerned.
The tricky part of gamma/linear space is mostly related to the graphics pipeline, depending on how it samples the diffuse albedo textures and lighting colours (shunt them from gamma to linear space) to give to the shader and the processing done at the end of the shader (shunt everything back into gamma space for display).
This is a great post by John Hable about what it means - and another clarification post.
What I mean by that is, making it so that picking a grey in the middle of the brightness axis (= 50% brightness) would produce #bbbbbb instead of #808080. And overall, pushing the darker values of the spectrum into a more realistic, tighter corner of the picker.
Now of course this has nothing to do with the math involved in a linear rendering pipeline, and more with the idea of being able to easily pick and differentiate subtle color shifts in the brighter parts of the value spectrum. But I think this would be very beneficial from a purely artistic and subjective point of view.
(I hope this makes sense !)
If you're painting as an artist, ignore the hex/RGB value of the color and just pick what looks right to your artist's eye. The whole point of gamma space correction is to fix the way display technology works, so it's more WYSIWYG.
I suspect as things like PBR become the norm, artists will learn to think more like tech artists. In that case, the color you're painting for metalness or gloss will become more about the numeric value, rather than what "looks right." We had to accomplish the same thing when normal mapping became standard practice, and learn to interpret what those colors meant, even though we typically don't paint normal maps with your brain in "artist mode." Unless you're Pior
My understanding is that this is indeed the case for our color maps. They are saved in SRGB, and converted to linear space during the GFX pipeline, and that is ok because it's a fairly slight shift and it shouldn't matter much.
But it does matter more when that shift is not with color/perceptual data, but with values that correspond to something specific. When you are talking about normal maps for instance, you need to make sure those values aren't shifting at all - you need to make sure they are linear and stay linear. The same is true when you are trying to achieve very specific measured reflectance levels, for example. You don't want things getting shifted and converted between spaces - you want them to be authored in linear space and to stay in linear space, ideally.
Saving a normal map out of photoshop with an SRGB color profile could potentially mess up your linear values in a linear renderer, IF your engine respects that color profile. And some do, because sometimes you want color profiles to matter (for your color maps).
So now you get into situations where you either need to be marking your content with flags and having the engine do bunches of special stuff, or you need to author your content in linear space (or with NO color profile), or something along those lines.
(maybe I'm wrong, hope I'm wrong, but I don't think I'm wrong. plz prove me wrong.)
What I mean by paying attention to the numeric values for things like gloss/roughness is that I think as artists we'll just get used to thinking in terms of, "Hey, rubber has a gloss value of XXX" and that value will probably be memorized in gamma space. So it's less about eyeballing the color swatch and more about typing in the value.
I'm still pretty noob with PBR as well, and I could be under some false assumptions, however I think that artists should ultimately not have to worry about working in linear space (as far as color pickers or switching color profiles) as long as they understand the difference between linear and gamma, and know what numeric values to use at the end of the day. Let the tools handle all of the rest.