想知道是否可能将一个大的数组传递到WebGL着色器中,就像这样:
// array here
uniform vec4[huge] mydynamicarray;
void main() {
// iterate through the array here to perform processing on it,
// then write value to gl_Position
gl_Position = ...;
}
然后它会被填充成这样:
gl.uniform4fv(myarrayloc, myarray)
我看过许多关于如何传递这样的值的示例,比如:
gl.uniform4fv(offsetLoc, [1, 0, 0, 0])
但是我没有看到是否可以传递一个非常大的、动态大小的数组。
这样做的原因是你可以处理两个数组:
- 一个是在WebGL中并行运行的向量数组。
- 一个是统一数组,你可以为每个向量迭代它。