0

これは非常に奇妙な問題です!! 簡単に解決できるはずです。

私がしていることは、配列を調べて、配列データを一緒に追加することです (このようなものです)。

float kernel[] = float[5] (1.0, 1.0, 1.0, 1.0,1.0);
for(int i=-2;i<=2;i++) {            
    for(int j=-2; j<=2; j++){           
        color += kernel[0] * texture2D(image,  outUV);
    }
} 

上記のコードは機能しませんが、kernel[0] を 1.0 に変更すると機能します。

float kernel[] = float[5] (1.0, 1.0, 1.0, 1.0,1.0);
for(int i=-2;i<=2;i++) {            
    for(int j=-2; j<=2; j++){           
        color +=  1.0 * texture2D(image,  outUV);
    }
} 

だから、配列にアクセスするときに何か問題があると思います!!! なぜ?

4

2 に答える 2

1

問題が見つかりました。宣言時に配列値を割り当てることができないようです。次のようなコードを書く必要があります。

float kernel[5] ;

void main(){
    kernel[0]=1.0;
    kernel[1]=2.0;
    ...
    for(int i=-2;i<=2;i++) {            
      for(int j=-2; j<=2; j++){           
         color +=  kernel[i+2]*kernel[j+2] * texture2D(image,  outUV);
      } 
    } 
 }
于 2013-09-24T02:45:14.117 に答える