我将 THREE.js 与 WebGL 着色器一起使用。我想在片段着色器中声明一个浮点数数组。GLSL 常量浮点数组的定义如下:
#define KERNEL_LENGTH 9
const float kernel[KERNEL_LENGTH] = {
1.0/16.0, 2.0/16.0, 1.0/16.0,
2.0/16.0, 4.0/16.0, 2.0/16.0,
1.0/16.0, 2.0/16.0, 1.0/16.0
};
我也尝试过:
#define KERNEL_LENGTH 9
const float kernel[KERNEL_LENGTH] = float[KERNEL_LENGTH](
1.0/16.0, 2.0/16.0, 1.0/16.0,
2.0/16.0, 4.0/16.0, 2.0/16.0,
1.0/16.0, 2.0/16.0, 1.0/16.0
);
但是对于 WebGL,它们都不起作用。错误信息:
错误:0:44:“内核”:数组可能无法声明为常量,因为它们无法初始化错误:0:44:“=”:语法错误
那么我应该如何定义一个 const float 数组呢?