我试图在 XNA 中将 X 的任意纹理减少 X 到 X 的 2。我尝试运行此代码:
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 之间的日期以更小的步骤减少它?
第二个问题:如果这个想法是正确的,那么我的代码有什么问题?