www.pudn.com > GPUVision_5-13-05-2.zip > DxDy2Pack.cg


// Main shader. 
void main(float2       iCoords   : TEX0, 
          uniform samplerRECT texture, 
		  out float4 oColor : COLOR) {  
	// Sobel 
	float2 gx =  -f2texRECT(texture,iCoords + float2(-1.0,-1.0)) +  
                -2*f2texRECT(texture,iCoords + float2(-1.0, 0.0)) +  
                  -f2texRECT(texture,iCoords + float2(-1.0, 1.0)) +  
                   f2texRECT(texture,iCoords + float2( 1.0,-1.0)) +  
                 2*f2texRECT(texture,iCoords + float2( 1.0, 0.0)) +  
                   f2texRECT(texture,iCoords + float2( 1.0, 1.0)); 
 
    float2 gy =  -f2texRECT(texture,iCoords + float2(-1.0,-1.0)) +  
                -2*f2texRECT(texture,iCoords + float2( 0.0,-1.0) ) +  
                -f2texRECT(texture,iCoords + float2( 1.0,-1.0)) +  
                   f2texRECT(texture,iCoords + float2(-1.0, 1.0)) +  
                 2*f2texRECT(texture,iCoords + float2( 0.0, 1.0) ) +  
                   f2texRECT(texture,iCoords + float2( 1.0, 1.0)); 
 
	oColor.x = max(gx.x,gx.y)/6; 
	oColor.y = max(gy.x,gy.y)/6; 
 
	oColor.z = length(oColor.xy); 
    oColor.w = atan(oColor.x/oColor.y); 
 
}