firstpass.cg

来自「基于GPU进行快速科学计算」· CG 代码 · 共 31 行

CG
31
字号
void mins( varying float2 elem2d : WPOS,
                   uniform samplerRECT reals : texunit2,
		   uniform samplerRECT imags : texunit3,
		   float2 coords0 : TEXCOORD0, float2 coords1 : TEXCOORD1, float2 coords2: TEXCOORD2,
		   out float4 realoutput : COLOR0, out float4 imagoutput : COLOR1)
{
  float4 alpha_0 = float4(1,-1, 1, -1);


  float cmp = frac(coords0.x) >0.5 ? -1 : 1; //-1 is ba and 1 is rg
  float cmp1 = frac(coords0.y) > 0.5 ? -1:1;
  coords0 = cmp1 < 0  ? coords0+coords2: coords0;
  coords1 = cmp1 < 0 ? coords1+coords2: coords1;  
  
  float4 real0 = f4texRECT(reals, coords0);
  float4 real1 = f4texRECT(reals, coords1);

  float4 imag0 = f4texRECT(imags, coords0);
  float4 imag1 = f4texRECT(imags, coords1);

  float2 real01 = cmp > 0 ? real0.rg : real0.ba; 
  float2 real11 = cmp > 0 ? real1.rg : real1.ba;

  float2 imag01 = cmp > 0 ? imag0.rg : imag0.ba; 
  float2 imag11 = cmp > 0 ? imag1.rg : imag1.ba;

  realoutput = real01.xxyy + real11.xxyy * alpha_0;
  imagoutput = imag01.xxyy + imag11.xxyy * alpha_0;
  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?