I'm trying to pass in an array of points into a shader modifier in SceneKit, but I can't work out the correct syntax. In my shader extension code I have:
uniform vec2 points[100];
If I call…
material.setValue(NSValue(point: CGPoint(x: 100.5, y: 50.5)), forKey: "points")
…then it sets the value of points[0]
, which makes me think that maybe it's not possible. I've tried lots of other combinations for both the key and the value, but nothing seems to work.
Is there a better way to do this? My end goal is to modify the surface diffuse colour for a set of points in the array, and use the default rendering otherwise. Is there a better way to do this in the shader than looping over an array of vec2
s?
Thanks for your help.