Модификаторы шейдеров SceneKit с массивами GLSL
Я пытаюсь передать массив точек в модификатор шейдера в SceneKit, но я не могу определить правильный синтаксис. В моем коде расширения шейдера у меня есть:
uniform vec2 points[100];
Если я позвоню ...
material.setValue(NSValue(point: CGPoint(x: 100.5, y: 50.5)), forKey: "points")
... тогда он устанавливает значениеpoints[0]
, что заставляет меня думать, что, возможно, это не возможно. Я перепробовал множество других комбинаций как для ключа, так и для значения, но, похоже, ничего не работает.
Есть лучший способ сделать это? Моя конечная цель - изменить диффузный цвет поверхности для набора точек в массиве, и в противном случае использовать рендеринг по умолчанию. Есть ли лучший способ сделать это в шейдере, чем зацикливание на массивеvec2
s?
Спасибо за вашу помощь.