WebGL - 在着色器中循环遍历数组
WebGL - Looping through an array in a shader
我想知道我应该如何从着色器循环遍历数组。
看了很多东西还是很迷茫
这里是创建数组的JavaScript:
var particles = []; // I'm creating an array of x and y coordinates
for (var i = 0; i < 100; i++) {
particles.push([
Math.floor(Math.random()*1000) + .5,
Math.floor(Math.random()*1000) + .5
]);
}
gl.uniform2fv(gl.getUniformLocation(glProgram, 'particles'), particles);
这是我的片段着色器的一部分:
uniform vec2 particles;
void main( void ) {
bool found = false;
for (int i = 0; i < 100; i ++) {
if (particles[i].x == 1.0) {
found = true;
}
}
}
我得到的错误是“字段选择需要左侧的结构或向量”。
我错过了什么?
着色器中 particles
的声明不正确,它定义了单个 vec2
而不是 vec2
.
的数组
正确的声明是:
uniform vec2 particles[100];
我想知道我应该如何从着色器循环遍历数组。 看了很多东西还是很迷茫
这里是创建数组的JavaScript:
var particles = []; // I'm creating an array of x and y coordinates
for (var i = 0; i < 100; i++) {
particles.push([
Math.floor(Math.random()*1000) + .5,
Math.floor(Math.random()*1000) + .5
]);
}
gl.uniform2fv(gl.getUniformLocation(glProgram, 'particles'), particles);
这是我的片段着色器的一部分:
uniform vec2 particles;
void main( void ) {
bool found = false;
for (int i = 0; i < 100; i ++) {
if (particles[i].x == 1.0) {
found = true;
}
}
}
我得到的错误是“字段选择需要左侧的结构或向量”。 我错过了什么?
着色器中 particles
的声明不正确,它定义了单个 vec2
而不是 vec2
.
正确的声明是:
uniform vec2 particles[100];