我有一个罗盘式针,可以自由旋转。
当它接近某个方向时,我需要它发光,比如55度。
我想拥有NeedleView子类UIView,所以我可以操纵(NeedleView *)needleView,就好像它是一个UIView,只是有几个额外的方法 - (void)feedAngle :( float)theta; - (void)feedGlow:(float)glow_01;
做了一些研究,我发现常见的技术是采用针的图像的灰度副本,模糊它,将其保存为GL纹理,然后将其包裹在实际针的后面的四边形上四然后我有点毛茸茸......
我想我将角点上的RGBA设置为我想要的发光颜色的(r,g,b),a = glowFactorForThisFrame
然后我将glBlendmode设置为适当的
然后我为模糊绘制纹理四边形
我想要的是原始针头上Alpha到处都是1的东西,但随着我们向远处移动,它会逐渐渗透以完全透明
...
首先,我想找到一些能够模糊灰度位图的代码,我宁愿通过代码而不是照片商店来做这件事。 (我意识到这会在实际设备上花费大量时间,所以也许我可以在第一次运行应用程序时计算它,将其保存到文件中,然后从文件加载)
其次,我对我必须做的事情的确切细节非常粗略。
有人可以帮助我解决这些问题吗?
答案 0 :(得分:1)
如果您使用drawRect绘制针,可以执行以下操作:
答案 1 :(得分:0)
您可以在Photoshop中创建针图像周围的光晕。只需在启动发光时在运行时替换应用程序中的图像。
答案 2 :(得分:0)
我在这里尝试了很多方法。
基本上我需要两张图片;一个发光,一个不发光。
然后我可以将它们作为CALayers绘制在一起,并劫持CADisplayLink,设置
glowLayer.opacity = glowFac;
dullLayer.opacity = (1 - glowFac);
我也在GL着色器中玩耍,将辉光系数作为制服传递,但这是一大堆基本相同的代码。
注意我需要找到一个图形艺术家来“发光”图像