javascript - Setting uniforms in webgl -
can explain or point me in right direction of explaination of different functions used set uniform values. in cheat sheet here this:
void uniform[1234][fi](uint location, ...) void uniform[1234][fi]v(uint location, array value) void uniformmatrix[234]fv(uint location, bool transpose, array)
but i'd know each of these doing , f's , i's for.
1234
= dimensions
f
= float
i
= integer
v
final character, if present, v, indicating command takes array (a vector) of values rather series of individual arguments
for non array uniform difference between v
, non v
versions of uniform functions how provide data it:
uniform1fv(loc,[3.14159])
vs uniform1f(loc,3.14159)
.
uniform3fv(loc,[.5,1.,.5])
vs uniform3f(loc,.5,1.,.5)
but array uniform can set entire array using v
functions
in shader
uniform float somearray[10];
in js
// @ init time var location = gl.getuniformlocation(prg, "somearray"); // @ render time var arraywith10values = [5, 4, 1, 3, 4, 5, 12, 0.1, 2, -1]; gl.uniform1fv(location, arraywith10values);
to non v
functions you'd have every location
var location0 = gl.getuniformlocation(prg, "somearray[0]"); var location1 = gl.getuniformlocation(prg, "somearray[1]"); var location2 = gl.getuniformlocation(prg, "somearray[2]"); var location3 = gl.getuniformlocation(prg, "somearray[3]"); var location4 = gl.getuniformlocation(prg, "somearray[4]"); ...etc... gl.uniform1f(location0, value0); gl.uniform1f(location1, value1); gl.uniform1f(location2, value2); gl.uniform1f(location3, value3); gl.uniform1f(location4, value4); ...etc...
Comments
Post a Comment