I had watched a tutorial about micro displacement and it talks about the limits of using jpg images as a displacement map and saving them as 16-bit tiff images. I know that it has an advantage in this particular case but the main disadvantage is the increased file size, which can be significant. I want to know would there be improvement by using 16-bit tiff images for other maps as well.
1 Answer
8 bit images normally store 2^8=256 different shades of grey. In theory, you could encode more information in it, but most displacement textures you use wont. This means, that if your displaced model is 8 Blender units high, the smallest height difference you will get is 8/256=1/8th Blender unit. This doesn't seem like much, but can create visible steps between two heights.
Using a 16 bit image can store 2^16=65536 different height levels. No matter how you use your bump texture, you won't notice any artifacts here.
-
2$\begingroup$ Would add that is an absolutely awful idea to store height maps using formats that are almost exclusively designed to store colour. Use half EXR or full EXR for data and colour. $\endgroup$– troy_sCommented Dec 28, 2016 at 20:38
-
$\begingroup$ It's not just the number of bits. JPEG is a lossy compression format, with compression artifacts, so in that sense even a 8-bit PNG is better than a 8-bit JPEG. $\endgroup$ Commented Dec 28, 2016 at 20:41
-
$\begingroup$ @troy_s What is wrong with "colour" formats (other than the bit depth and possible compression artifacts) assuming that the data inside is linear and not sRGB-encoded? $\endgroup$ Commented Dec 28, 2016 at 20:43
-
$\begingroup$ I think that depends on how you use the format. If you use png to store a 2D-Array of 32bit numbers usually representing a 4D 8bit vector, put the data in you want. Color, Normals, Masks, everything. But since the format is only standartized on colors, it may give a mess. Blender for example does color space conversion when loading images - that's why you have to set it to Non-color-data. Other programs don't give this option. Always make sure reading and writing is linear and you're fine. $\endgroup$– piegamesCommented Dec 28, 2016 at 20:50
-
1$\begingroup$ @lbalazscs There are so many things wrong that I couldn't list them here. The simplest answer is that to avoid your values getting mangled, use a format suitable for linearized data such as half EXR. You can't always control how colour transforms are applied to an encoded image, so it is better to completely know what you are putting in your file. $\endgroup$– troy_sCommented Dec 28, 2016 at 21:29