我一直在尝试创建具有可增长厚度的内部轮廓着色器。内部轮廓着色器算法
我尝试了几件事。
检查周围像素,如果它们是透明的,则将当前像素着色为黑色(或所选轮廓颜色)。如果我想控制轮廓的厚度,我需要检查当前像素(北,南,东,西,西北,东北等等)的每个方向上的n个像素,其中n是所需的厚度。尽管如此,我仍然遇到性能问题。
复制图像,并缩小图像以控制轮廓厚度。这个较小的副本之外的任何东西都是黑色的(轮廓颜色),并且里面的内容被设置为原始图像。这只适用于基本的形状,但想象一个中心为空心的甜甜圈形状的图像,缩小图像将勾勒出外圈,而不是内圈。
与(2)相同,但不是缩小副本,只需模糊副本(控制厚度),然后修剪任何alpha!= 1的像素。这种方法效果最好,但对于复杂形状。当我希望它一致时,某些区域会比其他区域更厚。
可能我尝试其他什么算法?一般的做法是什么,Photoshop如何实现它?我的第一个算法是三者中最精确的算法,但由于它需要循环,所以我无法使它适用于像素着色器2。
可否给我一个解释的downvote,这样我至少可以提高我的问题? – Infodayne 2014-10-12 06:09:01
也许你不清楚你要求什么。听起来你对你尝试过的方法的结果感到不满意,并且想要一个替代方案(我不是downvoter)。 – GuyRT 2014-10-12 09:07:19