Я новичок в Silverlight, и у меня возникла небольшая проблема с эффектами в сочетании с полигонами.Я хочу добиться того, чтобы рендеринг шейдера был только внутри краев, а не за их пределами.Как вы видите, кисть делает это, но не выводит шейдер.Кто-нибудь знает решение, чтобы это исправить?Есть ли способ получить вывод пиксельного шейдера и вставить его в свойство заливки полигона?
Результат: http://img64.imageshack.us/img64/2831/achieve.jpg
Это мой код xaml:
<Polygon Name="TestPolygonWithEffect" Stroke="Black" StrokeThickness="1">
<Polygon.Points>
<Point X="100" Y="0"></Point>
<Point X="0" Y="200"></Point>
<Point X="200" Y="200"></Point>
</Polygon.Points>
<Polygon.Fill>
<ImageBrush ImageSource="Roof.jpg"></ImageBrush>
</Polygon.Fill>
<Polygon.Effect>
<f:TestShaderEffect>
<f:TestShaderEffect.Overlay>
<ImageBrush ImageSource="OverlayTest.png"></ImageBrush>
</f:TestShaderEffect.Overlay>
</f:TestShaderEffect>
</Polygon.Effect>
</Polygon>
Это мой шейдер в HLSL
sampler2D input : register(s0);
sampler2D overlay : register(s1);
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 returnColor = tex2D(overlay, uv);
if(returnColor.a == 0.0f)
return tex2D(input, uv);
else
return returnColor;
}