2015-08-31 44 views
0

我目前有一個像素着色器:HLSL:切紋理徑向

float4 PixelShaderFunction(float2 coords: TEXCOORD0) : COLOR0 
{ 

float4 color = tex2D(Sampler0,coords); 
float dx = coords.x - 0.5f; 
float dy = coords.y - 0.5f; 

float tpos = dx * dx + dy * dy; 
if(tpos <= 0.25f && tpos > 0.25f-width) 
    return color; 
else 
    return float4(0.0f, 0.0f, 0.0f, 0.0f); 
} 

這樣我可以畫一個圓。但是我該如何切割這個圓形,例如畫30度圈?還是60度呢? 謝謝。

回答

1

我建議使用固有的atan2doc)(wiki)來計算你的片段相對於圓心的角度,然後像你的距離剪裁一樣進行剪裁。

+0

謝謝!解決它: '浮動度= -180 + dg; (弧度(度)> atan2(dy,dx)) 返回顏色;其他 ...'' – Gallardo994