📄 ps_select.fx
字号:
float4 PS_SelCtr(float2 pos: TEXCOORD0) : COLOR
{
float2 Tex = pos + float2(0.0019607843 , 0.0019607843);
float SumFit = 0;
float Fit[9];
Fit[0] = tex2D(ColorMapSamplerFit,Tex + float2(-pw,ph)).r;
Fit[1] = tex2D(ColorMapSamplerFit,Tex + float2(0,ph)).r;
Fit[2] = tex2D(ColorMapSamplerFit,Tex + float2(pw,ph)).r;
Fit[3] = tex2D(ColorMapSamplerFit,Tex + float2(-pw,0)).r;
Fit[4] = tex2D(ColorMapSamplerFit,Tex).r;
Fit[5] = tex2D(ColorMapSamplerFit,Tex + float2(pw,0)).r;
Fit[6] = tex2D(ColorMapSamplerFit,Tex + float2(-pw,-ph)).r;
Fit[7] = tex2D(ColorMapSamplerFit,Tex + float2(0,-ph)).r;
Fit[8] = tex2D(ColorMapSamplerFit,Tex + float2(pw,-ph)).r;
for(int i = 0 ; i < 9 ; i++ )
{
SumFit += Fit[i];
}
float2 Rpos = tex2D(ColorMapSamplerRand,Tex + offset1).gb;
float pick = tex2D(ColorMapSamplerRand,Rpos * offset2).r;
float sum = 0;
for(i = 0 ; (sum <= pick) &&(i < 9 ) ; i++)
{
sum += Fit[i] / SumFit;
}
i = i - 1;
if(i == 0)
return float4((Tex + float2(-pw,ph)), 0 , 0);
else if( i == 1)
return float4((Tex + float2(0,ph)), 0 , 0);
else if( i == 2)
return float4((Tex + float2(pw,ph)), 0 , 0);
else if( i == 3)
return float4((Tex + float2(-pw,0)), 0 , 0);
else if( i == 4)
return float4(Tex, 0 , 0);
else if( i == 5)
return float4((Tex + float2(pw,0)), 0 , 0);
else if( i == 6)
return float4((Tex + float2(-pw,-ph)),0 , 0);
else if( i == 7)
return float4((Tex + float2(0,-ph)), 0 , 0);
else
return float4((Tex + float2(pw,-ph)), 0 , 0);
}
technique TShader_SelCtr
{
pass P0
{
Sampler[0] = (ColorMapSamplerRand);
Sampler[1] = (ColorMapSamplerFit);
PixelShader = compile ps_3_0 PS_SelCtr();
}
}
float4 PS_Sel(float2 pos: TEXCOORD0) : COLOR
{
float2 Tex = pos + float2(0.0019607843 , 0.0019607843);
float2 SelPos = tex2D(ColorMapSamplerSelCtr,Tex).rg;
return tex2D(ColorMapSamplerGene,SelPos);
}
technique TShader_Sel
{
pass P0
{
Sampler[0] = (ColorMapSamplerGene);
Sampler[1] = (ColorMapSamplerSelCtr);
PixelShader = compile ps_3_0 PS_Sel();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -