У меня есть шейдер, который я хочу применить к WPF TextBlock. Тем не менее, мой шейдер всегда, кажется, ограничен текстурой, которая равна ограничивающей рамке текста. И, как результат, я не могу получить доступ к пикселям за пределами ограничивающей рамки (например, для добавления большого пограничного или цветового эффекта). Все, что я пытался увеличить ограничительную рамку, либо в XAML, либо в C#, перед тем, как применить шейдер, не удалось.Размер текстового блока WPF, используемого в шейдере, не может быть изменен.
На этом снимке показан эффект применения простого синего оверлейного шейдера к тексту. Он показывает экстенты ограничивающего прямоугольника и пиксели, к которым имеет доступ шейдер. Итак, вопрос в том, как развернуть ограничивающий текст поле перед вызовом шейдера? Надеюсь, что кто-то прошел через эту проблему до ...
Я включил просто шейдерный код ниже:
sampler2D texSampler : register(S0);
float threshold : register (C0);
float4 txtColor : register (C1);
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 color = tex2D(texSampler, uv);
color.r = txtColor[0];
color.g = txtColor[1];
color.b = txtColor[2];
return color;
}