SceneKit-Shader-Modifikatoren mit GLSL-Arrays

Ich versuche, eine Reihe von Punkten in einen Shader-Modifikator in SceneKit zu übergeben, kann aber die korrekte Syntax nicht herausfinden. In meinem Shader-Erweiterungscode habe ich:

uniform vec2 points[100];

Wenn ich anrufe ...

material.setValue(NSValue(point: CGPoint(x: 100.5, y: 50.5)), forKey: "points")

… Dann setzt es den Wert vonpoints[0], was mich denken lässt, dass es vielleicht nicht möglich ist. Ich habe viele andere Kombinationen sowohl für den Schlüssel als auch für den Wert ausprobiert, aber nichts scheint zu funktionieren.

Gibt es einen besseren Weg, dies zu tun? Mein Endziel ist es, die diffuse Oberflächenfarbe für eine Reihe von Punkten im Array zu ändern und ansonsten das Standard-Rendering zu verwenden. Gibt es eine bessere Möglichkeit, dies im Shader zu tun, als eine Schleife über ein Array von @ zu erstellevec2s?

Danke für Ihre Hilfe

Antworten auf die Frage(2)

Ihre Antwort auf die Frage