XNA で X by X の任意のテクスチャを 2 by X に削減しようとしています。このコードを実行してみます:
int x;
int y;
float2 minim={1,1};
float2 current;
if(coords.x==0)
{
for(x=0;x<=range/2;x=x+1)
{
coords.x=x;
current=tex2D(input,coords);
minim=min(minim,current);
}
}
if(coords.x==1)
{
for(x=range/2;x<=range;x++)
{
coords.x=x;
current=tex2D(input,coords);
minim=min(minim,current);
}
}
return float4(minim,0,1);
コンパイルしようとすると、「ループをアンロールできません」や「ブレークのあるループでグラデーションを使用できません」など、さまざまな問題が発生します。
最初の質問: 単一のシェーダー パスでそれを計算しようとすることで正しい道を進んでいますか、それとも RenderTargets 間の日付をピンポンして、より小さなステップでそれを減らす必要がありますか?
2 番目の質問: アイデアが正しければ、私のコードの何が問題なのですか?