3
$\begingroup$

I've just discovered that Blender automatically changes the Color Space for newly loaded or replaced textures. For example, I wanted to replace a Normal Map with another one and realized way too late that Blender had set the color space for this texture from "Non-Color" to "sRGB". This is, of course, nonsense, and I can't understand why this design decision was made. Why should the color space be changed? This just leads to even more errors if you forget to change it back!

So, my questions are: 1) How can I prevent Blender from autonomously changing the color space? And 2) is there a reason blender is behaving like this that I just don't understand?

Thank you!

Edit: What I meant is when I replace an image, for example, replacing one PNG with another PNG. In this case, Blender shouldn't make any assumptions or estimations; it should simply not alter the color space. I could understand if I chose a different file format, but not when the file format remains identical.

$\endgroup$
4
  • $\begingroup$ For 2) I do not know what kind of image format you are using in this normal map. Blender usually decides on each new file when it is opened which color space could be correct and decides this from its format. JPG, PNG and TIF files (no matter which bit depth) are usually interpreted as images using the sRGB color space. A file like EXR or HDR will be opened as linear. Basically every normal map is just a simple color image. How should Blender know you want to set it to non-color? Even if plugged into a specific socket it could be you want to use sRGB. $\endgroup$ Sep 6, 2023 at 13:28
  • $\begingroup$ "for newly loaded or replaced textures" where exactly do you do that, in an image texture node in the shader editor? $\endgroup$
    – taiyo
    Sep 6, 2023 at 20:52
  • $\begingroup$ Perhaps I didn't express myself clearly. What I meant is when I replace an image, for example, replacing one PNG with another PNG. In this case, Blender shouldn't make any assumptions or estimations; it should simply not alter the color space. I could understand if I chose a different file format, but not when the file format remains identical. $\endgroup$
    – Kunemann
    Sep 7, 2023 at 14:11
  • $\begingroup$ @taiyo yes, swaping a texture image in the node editor. e.g. PNG texture with another PNG texture $\endgroup$
    – Kunemann
    Sep 7, 2023 at 14:13

1 Answer 1

1
$\begingroup$

You're misinterpreting what you see. An Image Texture node is not an image, but uses an Image. These are two distinct classes in Blender. When reading Image somewhere in Blender, think of an instance of the class Image, not an image file (like .png) on disk. I'll refer to Image as "image object".

When you click either the New Image or the Open Image button in an Image Texture node, Blender will always create a new image object and connect that as a data block for use in the node. Note that the name left to the buttons is just a name taken from the filename when you chose Open Image or your selfchosen name (default "Untitled") with New Image. In that regard, Open Image is slightly confusing because it really means New Image from File.

Have a look at the following image (haha), I paired a Shader Editor and an Image Editor and opened the side bars (the little < icon in the top right corner):

enter image description here

I also paired identical menus with the colored boxes. As said, the red boxes are for creating new image objects (or switching to another existing one with the icon left to the name) but they are not for changing settings of existing image objects. This is what the yellow boxed menus are for. They show the settings of an existing image object and this is completely independent from an Image Texture node. Changing these settings is bound to the image object and the Image Texture node just reflects that (for example the Color Space). Try it: if you change the Color Space in any of the green boxes, it will change too in the others.

If you want to change the actual image (that is the file on disk), you can do that in the blue boxes with the folder button. Note that this folder button looks identical to the button from Open Image, but is actually a different thing, Browse Image. I think that's a bit unfortunate but now you have Reload Image next to it, which makes sense again.

By now, you should see that changing the source file does not change the image object's name or any other setting. You just changed the source file of an existing image object. That is the "replacing" you want.

If you don't like to change an existing image object for that, a quick way to keep all settings is to duplicate the Image Texture node and make a single-user copy of the image object by clicking the 2 in the duplicated node. In the screenshot you can see that I created that way a new image object normal1.png.001 (just a name, right) with a different image .../normal2.png (a real image) and the Image Texture node settings are unchanged as well as the other image object settings.

enter image description here

$\endgroup$
2
  • $\begingroup$ Thank you for the comprehensive response! I've been using Blender for more than 5 years and didn't realize that the Image Node doesn't directly load an image but instead creates an image object. This has been truly enlightening! Thanks again! $\endgroup$
    – Kunemann
    Sep 9, 2023 at 12:24
  • $\begingroup$ Welcome, i had my time with this fact too, that's why i've put up this extensive answer. Scripting helped me a lot to see behind those curtains. $\endgroup$
    – taiyo
    Sep 9, 2023 at 13:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .