I can't figure out how to assign a different material to each instance in the new Blender 3.0 fields workflow. Is it broken? I don't mean using a color ramp, I mean having actual different materials for each instance.
I'm still far from having my head around geometry nodes, but I have a hacky solution. Instead of instancing a no-material cube then setting a material on the instanced geometry, make the instance already come with a material (and have a separate input instance per material).
The Instance on Points node seems to be able to select from a collection of input geometry (IIUC, feed an instance list into the Instance socket, enable the Pick Instances checkbox, and feed a random value into Instance Index). I can't figure out if there is a way to combine mesh-primitives into a collection suitable for this method, or if it only works if we have a standard collection from the Scene.
So a hacky workaround, have three separate Instance on Points, one for each material-cube, and instance on mutually exclusive Selection masks.