#python #three.js #pythreejs
Вопрос:
Мне нужно передать массив векторов в виде формы шейдеру. Насколько я понял, код должен быть следующим:
fragment_shader = """ uniform int myVectorSize; uniform vec4 myVector[50]; void main() { gl_FragColor = ... // using myVector } """
Но я не нашел способа передать этот вектор шейдеру:
material = ShaderMaterial( uniforms=dict( myVectorSize=(dict(value=10), myVector=???, **UniformsLib['common'] ), fragmentShader=fragment_shader, )
Есть ли способ сделать это?
Комментарии:
1. Мне никогда не приходилось передавать вектор больше 4, но вы пробовали передавать массив в качестве значения вектора?
uniforms: {myVector: {value: [1, 1, 1, 1, 1, 1, 1, 1, ..., 1] } }
?2. спасибо, это действительно работает