3

WebGLシェーダーでTHREE.jsを使用しています。フラグメントシェーダーでfloat番号の配列を宣言したいと思います。GLSL定数float配列は、次のように定義されます。

#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の配列をどのように定義する必要がありますか?

4

2 に答える 2

1

配列を定数として初期化することはできません。

于 2013-03-07T05:09:13.420 に答える