2012-05-16 45 views
2

我正試圖在HLSL中製作類似於Photoshop的斜角效果。
困難的部分是找到距離最近邊緣點(其中alpha = 0)的距離
任何人有任何想法如何做到這一點?HLSL中的斜角效果

最佳,
SW

+0

你想對三角形網格或某個2D圖片的片段做這個效果嗎? – miloszmaki

+0

我有與阿爾法的2D紋理,我正在渲染他們完全在一個四。 –

+0

然後在HLSL中這樣做的唯一方法是將每個像素周圍的alpha值採樣到固定距離(可能是斜角半徑)。儘管這可能效率太低(除非半徑很小)。 – miloszmaki

回答

0

你可以嘗試基於採樣的方法。在像素着色器(對於每個像素)中,您需要對半徑等於斜角半徑的圓中的像素進行採樣。如果當前像素點亮(alpha = 1),那麼您可以取最小距離作爲未點亮樣本(alpha = 0)並計算衰落因子:factor = min_dist/bevel_radius。然後你可以根據這個因子計算出一些漸變色。

2

它花了一段時間,但我找出了一個解決方案。正確的方法是使用多通濾波器。第一次通過着色器水平模糊圖像,第二次通過垂直,第三次通過使用前兩次產生的alpha通道中的漸變渲染斜角。

+0

如果你認爲這確實是正確的答案,即使認爲它是你的答案,你也可以接受它。 :) –