I m currently playing around with glsl. For that purpose i need to pass an array from the opengl code to the gsls, which then in return calculates a new color out of the array. But somehow this doesn t work for me. Instead of getting the whole array I m always stuck with only the first entry. Could you help me by saying what I m doing wrong?
import numpy as np
\...
array = np.array([1.2,2.5,3.8,4.3,5.6, #....])
location = glGetUniformLocation(program,"arrayInShader")
glUniform1fv(location,1,array)
以及 in:
uniform float arrayInShader[5];
varying vec3 color;
void main()
{
color.r=arrayInShader[0]+arrayInShader[1];
color.g=arrayInShader[2];
color.b=arrayInShader[3]+arrayInShader[4];
}
感谢许多gu!