4
$\begingroup$

So, I am trying to wrap my head around exactly what the invert node is doing in the shader editor.

I realize that this sounds like the most simplistic question in the universe, but please bear with me. Coming from a graphic design background, I can somewhat picture what an inverted image will look like in my mind's eye. The parts that are white flip to black, and the parts that are black flip to white.

But I'm not so sure what happens when 16bit and 32bit images are inverted.

In blender, it looks like it's not really completely inverting the image being fed to it. Here are a couple images as an example (I'm using Node Wrangler here to preview):

Original Image

Original

Inverted Image

Inverted

Ok. Now, I'm not a rocket scientist. But I'm pretty sure the inverse of that image is not a purely gray/white output. My suspicion is that since the image is 32bit I'm not seeing the full dynamic range of values that exist, and the inverse shown in Blender is correct despite looking incorrect.

Fair enough.

To dig a little deeper, I took the image into Photoshop and performed an invert there.

Original Image In Photoshop:

Original Photoshop

Inverted Image In Photoshop

Photoshop Inverted

The results here are interesting. First, I had to convert to 16bit as Photoshop wouldn't even allow me to invert a 32bit image. But after the invert, you can see a lot more detail than what Blender shows using its invert node.

Is this because of the bit depth discrepancy (32bit / 16bit), or is Photoshop actually doing something differently under the hood? I have no freakin' clue.

To cap it all off, I did an invert using the same image, bur first converted to 8bit.

Original 8bit

Original 8bit

Inverted 8bit

Inverted 8bit

This final process looks a lot more like what I would expect from an invert operation. I realize that the bit depth is much lower, but it's at least easier to visualize the data. I can make out the distinct smooth and sharp parts of the texture, high and low frequencies, and the overall "contrast".

What I'm getting at is that being able to visualize your texture is very important when you are making creative decisions in the shader editor. If I invert a 32bit texture, all the information might be there, but I have no idea what that information looks like - I am just presented with flat gray or white.

So, In conclusion, can someone set me straight? Is there a specific way of working with high bit depth data that is more intuitive?

Thanks so much for any help, and for reading through all this garbage :)

$\endgroup$
9
  • $\begingroup$ As far I know, (and same as what the docs say) invert simply creates a negative (opposite) image. $\endgroup$
    – Timaroberts
    Commented Dec 4, 2020 at 6:02
  • $\begingroup$ Of course, that's what you would expect. But does this look like the opposite of this? $\endgroup$
    – fmotion1
    Commented Dec 4, 2020 at 6:17
  • $\begingroup$ You can also use a color ramp after invert to get more detail for maps that don't have much, not every image is going to have the same details. Blender is not photoshop and does deal with imagery differently. $\endgroup$
    – Timaroberts
    Commented Dec 4, 2020 at 6:24
  • $\begingroup$ @Timaroberts I get that they are different applications. I'm not expecting Blender to be Photoshop. I'm always trying to learn how to use Blender more effectively. In that aim, understanding what is happening under the hood is always a good thing. And yes, I often use a color ramp after inverting to bring detail back. But it makes me wonder if crushing the values like that is actually the best choice. $\endgroup$
    – fmotion1
    Commented Dec 4, 2020 at 6:49
  • $\begingroup$ This is due to color management (see in the render properties) and more globally to the shader and ways lights are used in the rendering. $\endgroup$
    – lemon
    Commented Dec 4, 2020 at 7:25

0

You must log in to answer this question.

Browse other questions tagged .