我正在使用cocos2d-x 2.0.4。我通过这两个图像来说明我想要做的事情。
我想要的是以编程方式创建一个模糊的边框或带有渐变的边框。我有两个想法,但我不确定这是否是正确的方法。第一种解决方案是对仅包含模糊颜色的多边形进行三角测量(在这种情况下为带凹孔的凹面多边形),并在其上使用渐变渲染颜色,多边形外侧的顶点将为全α和内部零点上的顶点-α。然后插值将完成渐变的工作。
第二种解决方案是在着色器内部进行。我只需要计算像素的距离和多边形的最近边缘。然后在一定的阈值下,我会根据距离(距离最短,最大的alpha值)影响像素白色,并具有一定的α值。
无论如何,我对openGL的东西很新,我担心第二个解决方案最终会有大的处理时间,因为我必须计算多边形的每个像素的距离。你觉得这个家伙怎么样?这些想法往往会证实我的猜测,或者我对此完全错了吗?
编辑:
我最终选择的解决方案是在多边形中使用每个角度的平分线(易于用3个连续顶点计算),并在该平分线上取一个点,该平分线将成为内部多边形的顶点。然后我采用外部多边形顶点或内部多边形顶点来构建可以适合GL_TRIANGLE_STRIP参数的顶点数组。我把下面的图片更好地理解了。