Can't each instance in Octane have an index assigned (randomized or though other more controllable means), that would offset it's UV texture space a bit? Or even control other shading parameters.
Say the scatter node has an "index group" parameter. When you set it to X int value, it would create
number of instance transforms / X groups of instances that have the X value as index (or 'ID') assigned. This index would then be somehow used when mapping textures to offset certain transform values like translation, or even used to randomize material parameters.
Say you have a gradient generator in your material setup for the said instances. Instead of plugging an image texture for factor, you would plug in this "index group" instance data, and then each instance would get a color depending where on the gradient it's assigned index falls. An image texture for gradient factor varies color across the object surface, but the "index group" would vary it across all the instances of that scatter node.
Ideally this "index group" node could be used in computations (multiply, mix, etc.) with other (texture) nodes, so you could use it to influence parameters on a per-instance basis, alongside with the per-surface basis.
This would most certainly require some serious work to implement, but Octane needs some way to 'randomize' instance looks. Currently this can only be done with creating multiple particle systems in your 3D app -> multiple scatter nodes -> multiple materials, and is really not flexible.
Just to illustrate wtf I'm talking about

:

- pinfo.png (16.58 KiB) Viewed 6773 times
In Blender you have some particle info input data, that can be used anywhere in your shader tree, to vary other parameters. I know that Octane doesn’t know about 'objects' so the list of inputs would be considerably shorter than that, but at least an 'index' and 'location' could be provided, I guess?