Home Technical Talk

The 0.04 linear value in photoshop.

polycounter lvl 9
Offline / Send Message
tynew polycounter lvl 9
Hey guys,

Just wondering how do you do a value of 0.04 in photoshop? Does it get affected by color settings in anyway?

I assume its just 4% with an rgb of 10,10,10?

vWolTlt.png

Here are my photoshop settings:
z3nDUD6.png

Any answers would be appreciated thanks :)

Replies

  • maze
    Options
    Offline / Send Message
    0.039, so yes

    but I do recommend you to work in nuke if you are dealing with linear files, photoshop is pretty bad at this. Also remember that if you are outputing to an 8 bit file, your 0.04 will have srgb gamma baked in. So if you want to use linear values make sure you output to linear .exr or to compensate the gamma (linearize using 0.454) in your shader input (if meant to be a scalar map, aka bump, gloss...etc).

    cheers
  • tynew
    Options
    Offline / Send Message
    tynew polycounter lvl 9
    What is nuke?

    I just want to create textures in Unity using photoshop. So basically if I just do a solid color fill texture on a cube with a value of 0.04 as the specular value in 8bit, it will be wrong with my current settings?
  • Joopson
    Options
    Offline / Send Message
    Joopson quad damage
    I think that'll be a linear value of .04, but if anything confuses me about digital images, it's colour spaces. I'd love to hear someone who's knowledgeable explain all this stuff, because it's just sort of a mystery to me, and no amount of playing around with it will help me figure it out.
  • EarthQuake
    Options
    Offline / Send Message
    maze wrote: »
    0.039, so yes

    but I do recommend you to work in nuke if you are dealing with linear files, photoshop is pretty bad at this. Also remember that if you are outputing to an 8 bit file, your 0.04 will have srgb gamma baked in. So if you want to use linear values make sure you output to linear .exr or to compensate the gamma (linearize using 0.454) in your shader input (if meant to be a scalar map, aka bump, gloss...etc).

    cheers

    This is not correct. a value of 10,10,10 will be 10,10,10 regardless of if your target is sRGB (gamma space) or linear space. There is absolutely no need to use over 8 bit per channel or EXR format. Normal maps require linear space and have used 8 bit file formats for ages. If this were true, it would be impossible to work with normal maps without working in linear color space in PS, which is obviously not the case.

    The only thing you need to do, assuming you author your textures in linear space, is ensure the texture is loaded in linear space as well in your target engine/renderer.

    What changes is how that 10,10,10 value is interpreted when loaded, but nothing is "baked" into the file.

    linear.jpg

    Here's an example, on the left, I've got a material using a parametric value of 0.04. On the right, I've saved an 8-bit file out of photoshop with a value of 10,10,10. The value is exactly the same. I'm not working in linear space in photoshop nor do I need to save my texture in a special file format or do anything out of the ordinary. I simply need to make sure the file is read as linear space and not sRGB in my renderer.

    Now, if your target is sRGB rather than linear space, you will need to account for the gamma curve that will be applied when your file is loaded, so the value you will need to use is, if I recall correctly, something like 56,56,56. But this doesn't directly relate to the OP's question.
    tynew wrote: »
    What is nuke?

    Nuke is a composition/video editing suite that is completely unnecessary for this purpose.
    I just want to create textures in Unity using photoshop. So basically if I just do a solid color fill texture on a cube with a value of 0.04 as the specular value in 8bit, it will be wrong with my current settings?

    Nope, that is all you need to do. It will work perfectly fine, assuming you flag your file as linear space in Unity.

    To further simply this, if working in linear space (even if your color space is set to sRGB in PS, that actually doesn't make any difference) you can simply use the B(brightness) value in the HSB section of the color picture to set your reflectivity %, so 4%, end a B value of 4 (this gives 10,10,10 as you would expect). A B value of 3 (skin is 2.8%) is 8,8,8.
  • maze
  • maze
    Options
    Offline / Send Message
    This is not correct. a value of 10,10,10 will be 10,10,10 regardless of if your target is sRGB (gamma space) or linear space.

    yes that is correct I ve just noticed I did a mistake saying that the gamme would be baked into the file, do apologize for that.
  • tynew
    Options
    Offline / Send Message
    tynew polycounter lvl 9
    Fantastic! Thank you for the clarification Earthquake :D
  • EarthQuake
    Options
    Offline / Send Message
    Yeah, the only real concern when working in sRGB space in PS but authoring linear space maps is that certain tools, like the gradient tool, are designed to work in SRGB. So you'll get a gradient with a gamma curved baked into it rather than a proper linear space gradient. Depending on exactly what you're doing this may be an issue, but for setting reflectance/gloss values and things of that nature it shouldn't really come up.
  • marks
    Options
    Offline / Send Message
    marks greentooth
    All I'm saying is that trying to decipher how photoshop actually handles colorspaces is like, an excercise in frustration and wanting to claw your own eyes out.
    (and Nuke is really good joe!)
  • CheeseOnToast
    Options
    Offline / Send Message
    CheeseOnToast greentooth
    What is nuke?

    I just want to create textures in Unity using photoshop. So basically if I just do a solid color fill texture on a cube with a value of 0.04 as the specular value in 8bit, it will be wrong with my current settings?

    Just a quick warning about a Unity bug I encountered. The short version is that they fucked up the roughness channel, and you need to compensate for it. If you don't, everything will appear too glossy vs. how it looks in Marmoset/ Substance Painter etc.

    http://forum.unity3d.com/threads/roughness-is-wrong-in-linear-heres-a-fix.334739/

    You'll need to stick a levels adjustment at the top of your roughness channel, and change the mid point to 0.454 (inverse gamma). You can toggle this off for previewing in other engines.
  • tynew
    Options
    Offline / Send Message
    tynew polycounter lvl 9
    Are you sure about that Cheese? Do you have any examples? Here is a comparison I did just now with Andrew's gun in all 3. I didn't alter any levels this is all straight out of the box exports. Also I'm not sure if they fixed GGX for Unity standard shader either. Someone made a way to be able to use GGX a while back here but I haven't tried it yet: http://gfxdevunity.blogspot.com.au/2015/05/replacing-blinn-phong-by-ggx.html

    KKH00zq.jpg


    Marmoset:


    0EpAW7w.jpg


    Unity 2k cubemap res, obviously not ideal but this is the closest I've seen it get to Substance painter:


    MOX93M9.jpg


    Unity 64 cubemap res, some noticeable differences in roughness:


    EVcM4ht.jpg


    Now changing the levels like your suggestion provided these results:


    eA17ZZB.jpg


    This is all pretty confusing on trying to get matching values with Unity. Wes over at Allegorithmic made a similar post to yours but instead having the levels set at 0.75 https://forum.allegorithmic.com/index.php?topic=4335.0

    Another thread over at unity discussing the issue :poly122:
  • kodde
    Options
    Offline / Send Message
    kodde polycounter lvl 18
    Since the Color Settings dialogue window was shown further up I think this might be worth mentioning. Definately something I would change on any computer intended to be used to create graphics for computer games. This is regarding sGray and working with the alpha channel in Photoshop.

    http://retrofist.com/sgray/
  • marks
    Options
    Offline / Send Message
    marks greentooth
    Personally I think that (for so many reasons) its time to put photoshop to bed and actually have a digital image editing tool which isn't 20 years old and designed for print media.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    marks wrote: »
    Personally I think that (for so many reasons) its time to put photoshop to bed and actually have a digital image editing tool which isn't 20 years old and designed for print media.

    unfortunately, as long as Quixel relies on it i think it'll be around for a while yet.
  • nastobi123
    Options
    Offline / Send Message
    nastobi123 polycounter lvl 8
    marks wrote: »
    Personally I think that (for so many reasons) its time to put photoshop to bed and actually have a digital image editing tool which isn't 20 years old and designed for print media.

    I think so too, for texturing anyways. It's great for Photo editing (I find it better than Elements) but Quixel exist on it though. I'm starting to migrate into Substance but I still do most of my work on Photoshop cause Quixel and I love it. :)
  • CheeseOnToast
    Options
    Offline / Send Message
    CheeseOnToast greentooth
    Are you sure about that Cheese? Do you have any examples? Here is a comparison I did just now with Andrew's gun in all 3. I didn't alter any levels this is all straight out of the box exports. Also I'm not sure if they fixed GGX for Unity standard shader either. Someone made a way to be able to use GGX a while back here but I haven't tried it yet: http://gfxdevunity.blogspot.com.au/2...ng-by-ggx.html

    It made a big difference on a character I recently textured. Looked fine in Substance painter and Marmoset, but much glossier in Unity. When I did the inverse gamma on roughness, it matched up much better. Maybe I'm missing a setting somewhere?
Sign In or Register to comment.