HLSL中的斜角效果

时间:2012-05-16 18:45:26

标签: 3d xna directx pixel-shader

我正试图在HLSL中制作类似Photoshop的斜角效果 困难的部分是找到一个点距离最近边缘的距离(其中alpha = 0)
任何人有任何想法如何做到这一点?

最佳,
SW

2 个答案:

答案 0 :(得分:2)

花了一段时间,但我找到了解决方案。正确的方法是使用多通滤波器。第一次使用着色器水平模糊图像,第二次通过垂直方向,第三次使用通过使用前两次通过生成的Alpha通道中的渐变来渲染斜角。

答案 1 :(得分:0)

您可以尝试基于抽样的方法。在像素着色器中(对于每个像素),您需要对半径等于斜角半径的圆中的像素进行采样。如果当前像素点亮(alpha = 1),则可以将最小距离与未点亮样本(alpha = 0)进行对比,并计算衰落因子:factor = min_dist / bevel_radius。然后,您可以根据此因子计算一些渐变颜色。