【发布时间】:2013-02-22 03:38:46
【问题描述】:
我将 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,它们都不起作用。错误信息:
ERROR: 0:44: 'kernel' : 数组不能被声明为常量,因为它们不能被初始化 错误:0:44:'=':语法错误
那么我应该如何定义一个 const float 的数组呢?
【问题讨论】:
标签: arrays constants three.js webgl shader