The Gradient Map node is probably one of the most used nodes for creating interesting materials. But one thing that I was not aware of until recently - despite having used octane for many years - is that the gradient node allows for texture inputs!
Example file here: Gradient Node + Textures - Example File
In this example scene we have a simple noise → gradient → base color setup:

We have the interpolation set to constant (thus the hard transitions) and a few grayscale colors. But here’s where the magic comes in: We can plug textures into the gradient map “key” inputs:

FYI I am using these random test textures I got from unsplash.com for this example:

An BAM we have a super easy way to work with multiple texture and combine them in a very “easy to use” way:
This could be useful for situations like texturing a terrain and blending multiple grass/dirt/rock maps to get rid of repetition and adding variation. Of course if blending multiple material sets using the material composite node would be better, but for single textures this is cool.
Another useful scenario might be wanting to vary textures on an object using an attribute, while keeping a single material. In this case we are assigning a random value to the “Crag” test geometry, and passing it into the shader:


We then load it in the shader using the “Grayscale Float Attribute” node, and use it to drive our gradient node, like the noise did in our last example:

Another very similar example is using it to vary instances. You could do this using an instance color node (see Instance Attributes) or in this case we will just use the random color node.