This thread focuses on the balance and evaluation of values distributed in a texture, which can be equally important when building versatile noise libraries.
[3/19]
I want to note again that all of this is information is generalized, and your needs may differ.
[4/19]
One of the most common examples of an unbalanced texture is when values are distributed in a way that clamps or constrains them towards the lowest and/or highest values (0.0 and 1.0)
[5/19]
Here are two examples that depict this issue. Both use the full range of 8-bit values, but are arbitrarily clamped toward either end.
[6/19]
This limits the potential uses of a texture because the clamped regions are essentially hardcoded to a single state and do not hold any additional information to interact with inside of a material.
[7/19]
With a balanced texture you have much more freedom in defining how all regions of the texture get utilized.
[8/19]
More often than not, these clamped value regions end up being small, and without additional visualizers they are nearly impossible to spot.
[9/19]
First, lets have a look at the histogram view. This can be great for understanding the broad balance of values that exist throughout a texture.
[10/19]
Although, while creating noise textures in 16 bit mode, you are looking at a distribution of 62415 values, which can be difficult to parse in understanding clamped regions given the density of information.
[11/19]
Another useful technique is to scrub through the values, highlighting distribution percentages. Here is an example of this using Histogram Scan in Substance Designer.
[12/19]
Both of these options have their place in evaluating the state of a texture, but neither give a full view of how all the values exist next to each other at the same time.
[13/19]
To gain additional visibility, you can utilize color gradient curves that describe a lot more about the texture as a whole.
[14/19]
Here we see a standard heat map gradient, showing value distribution that is otherwise difficult to see in grayscale.
[15/19]
Next we have a quadrant gradient. This helps see how grouped percentages of value take up space in the texture.
[16/19]
Third, we have a endpoint gradient. This highlights regions as they near or reach either a value of 0.0 or 1.0.
[17/19]
Each of these are similar in concept, but together, quickly aid in evaluating the balance of values in any noise texture.
[18/19]
In my next thread, I'll be covering some tools and processes to create custom noise textures within Substance Designer, along with a more substantial pack of free content.
[19/19]
Correction for [11/19] :
16 bit has 65536 values! Not sure where 62415 came from..
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I hope this thread helps shed some light on the subject of building grayscale texture libraries that aid in game development workflows. It's important to note that I make a lot of generalizations about how these types of textures are utilized, and your needs may differ.
[2/10]
For games, we commonly rely on 8-bit texture formats. 16-bit formats are recommended when building source files, but require additional consideration when being utilized at runtime. For now we'll be focusing on 8-bit.