Silverlight畫素著色器文字描邊效果 改

2022-01-31 19:27:05 字數 1162 閱讀 7383

上次的描邊著色器有兩個問題,導致效果不太理想。現在我們來設法改進這兩點。

問題一:

使用 ddxuvddyuvregisterindex

屬性指定包含紋理座標對螢幕空間的偏導數的著色器暫存器。

例如,如果將

ddxuvddyuvregisterindex

設定為 4,則使用著色器暫存器 c4。

暫存器 c4 包含四個浮點字段。

下面的高階著色語言 (hlsl) **演示如何使用此暫存器。

nextpixeluv

值表示右邊的下乙個畫素。

float4 ddxuvddyuv : register(c4);

samplerstate  sampler : register(s0);

...float2 nextpixeluv;

nextpixeluv.u 

=ddxuvddyuv.x +u;

nextpixeluv.v 

=ddxuvddyuv.y +v;

tex2d(sampler, nextpixeluv);

因此,我們壓根就不需要傳入什麼寬度高度!

問題二:

最後特別推薦:漢字使用宋體字,在12,13號等大小下,出現透明畫素最少。英文和數字的宋體效果非常一般,建議換其他字型如arial等。可以自己在下面輸入任意文字,檢視描邊效果。

著色器**:

1sampler2d input : register(s0);  24

567float4 fontcolor:register(c0); 89

float4 bordercolor:register(c1); 

1011

float4 ddxuvddyuv : register(c2);

1213

14float4 main(float2 uv : texcoord) : color 

1540

else

4148

else

4956

else

5764}65

}66}67

}68else

6978}79

8081

82return color; } 

Pixel Shader 畫素著色

introduction pixel shader是一段執行在gpu上的程式,只限於光柵化階段。與vertex shader不同的是,d3d不會使用軟體模擬pixel shader,pixel shader基本上取代了fixed pipeline中的multitexturing階段,它使我們能夠直接...

著色器(Shader)之畫素著色器

畫素著色器實際上就是對每乙個畫素進行光柵化的處理期間,在gpu上運算的一段程式。不同與頂點著色器,畫素著色器不會以軟體的形式來模擬畫素著色器。畫素著色器實質上是取代了固定功能流水線中多重紋理的環節,而且賦予了我們訪問單個畫素以及訪問每乙個畫素紋理座標的能力 多重紋理就是我們同時啟用多層紋理,然後規定...

顯示卡不支援畫素著色器?

按計畫該發出畫素著色器ps 的內容,無奈家裡的電腦配置太低,顯示卡竟然不支援ps。家裡的顯示卡型號nvidia getforce4 mx 440 又看到網上某牛人如是說 nvidia 曾經推出市場上銷量最好的gf4 mx440 agp 8x 它和高階的gf4 ti 的本質區別就是它僅僅支援verte...