# What color space should I use for 16bit sculpting brush alphas?

Since starting to learn sculpting, I've been saving most of my brush alphas as 16bit PSDs.

I've noticed though that using the non-color color space instead of sRGB seems to increase fidelity for my brushes.

## Here's an example:

sRGB Color space:

Non-Color Color space:

The first image has a lot less detail than the second, leaving me completely confused. Why is the sRGB color space "limiting" the detail of my brushes so much? Why does this not occur when using either RAW or Non-Color color spaces?

Can someone here possibly guide me on what the best pipeline is for creating and store sculpting brush alphas?

Thanks much.

Edit: Someone knowledgeable in the comments section suggested I go with EXR for all my brushes. This sounds like a great idea, but I'd like to know what the difference is compared to PSD. Every third party brush set I've ever downloaded is usually PSD. What do I gain by converting from PSD to EXR?

• It’s not clamping, it’s compression. Never use PNGs for anything. Always use EXR. Sep 8, 2020 at 14:56
• The two examples are PSDs, not PNGs.
– Jay
Sep 8, 2020 at 20:21
• I’d encourage you to avoid PNG. It’s complete garbage, but feel free to crawl the answers on this site regarding why. The reason it is not clipping is because it is compression. sRGB’s transfer function is a photometric compression, while your work is data, not colour. Hence there is a discrepancy. Save as linear data EXR and your problems will go away. Sep 10, 2020 at 4:01
• I usually do avoid PNG files in favor of either TIF or PSD. But I will definitely try exporting everything to EXR. And apologies, I thought you were referring to image compression, not the sRGB transfer function. What color space should I use when loading EXR's? Non-Color, or sRGB? Thank you for sharing your knowledge.
– Jay
Sep 12, 2020 at 22:16
• @Cultmethod It depends on the encoding! Is the encoding sRGB? Is it a non-colour buffer? In the case of a normal, the values do not represent colours, but rather data, hence Non-Colour Data is the proper encoding to describe the buffer. Sep 13, 2020 at 15:09

the comments section suggested I go with EXR for all my brushes. This sounds like a great idea, but I'd like to know what the difference is compared to PSD. Every third party brush set I've ever downloaded is usually PSD. What do I gain by converting from PSD to EXR?

• PSD is an undocumented and proprietary format. The only reason it works beyond Adobe is the work of many countless people who have painfully peeled apart some of the internal workings.
• OpenEXR, in contrast, is an openly developed library used and trusted by people and companies with massive investment in imaging. Some of the top minds in open imaging have contributed to the format, and it is an exemplary format for performance, compression, metadata, and many other facets.
• EXR is a float based format, which provides the granularity required for communicating things other than colour data. For example, normals, depth, and other data are perfectly well suited for EXR, while challenging to impossible in the vast array of other formats.
• The Proof is In The Pudding. Try your brushes in well designed software and you should see the impact immediately.

In the end, you make the choice. If you analyze the effect of the file encoding on the quality of the work, the choice should become rather self evident.

• Thanks so much for the detailed explanation. I wish I could split a bounty between two people because both of you were extremely helpful. I've awarded it to you because you were the first to answer in the comments section. Thanks again.
– Jay
Sep 16, 2020 at 21:15

The fidelity of your brushes has to do with how you are creating them and how you are interpreting the data, in other words: you must be sure how the data is encoded and interpret it accordingly in blender. Applying the wrong interpretation will result in distortion.

For displacement maps, like sculpt brushes, you would expect the map to be data, in a linear scale, not an image that has a baked in transfer function (sometimes called a "gamma curve", like the one in sRGB).

When you import any image into blender you have to determine how that image should be interpreted. For maps like displacement, normals, etc. you want the information to remain un-distorted by any color transform, so you use Non-Color.

If you interpret an image as sRGB, you are presuming that the image has been created with a baked in sRGB transfer function. If you select sRGB as color space, blender will apply an inverse transfer function to "linearize" the data (convert it to a linear scale). As you can imagine, if the image was not encoded in such color space originally, the information will be distorted, which is the reason you see less "detail" in the first image on the original question.

To summarize: create and export your maps using linear scale (I don't use Adobe products so I don't know if Photoshop is capable of doing that), and when you bring the maps in blender make sure that they are interpreted as data. And as pointed already by others, EXR is a the perfect format to transport information without distortions.

• Feel free to merge the EXR cruft below to answer the “Edit” portion of the question. No sense in having two answers that tackle different aspects of the question. Sep 14, 2020 at 0:45
• I really appreciate your detailed answer. Funnily enough I ran across hg2dc.com just after I posted my question and now I am learning as much as I can about color spaces and transfer functions, etc. I wish I could split the bounty between two people. Thank you again.
– Jay
Sep 16, 2020 at 21:17
• Hopefully @susu gets some love as they have been doing absolute yeoman’s work with picking up the torch and passing it along. About all I muster up in my limited time cycles is shitposting from the sidelines. Support and applaud the folks who have since carried on the grind. They deserve it! Sep 17, 2020 at 3:17