2011-04-26 93 views
1

我有一个指南针风格的针,可以自由旋转。iOS/GLES2:如何实现发光效果

我需要它接近某个方向发光,比如55度。 (NeedleView *)needleView就好像它是一个UIView,只是有一些额外的方法 - (void)feedAngle:(float)theta;我想要有NeedleView的子类UIView,所以我可以操作(NeedleView * - (void)feedGlow:(float)glow_01;

做了一点研究,我发现常用的技术是将针的图像的灰度副本,模糊它,将其保存为GL纹理,然后将其包裹到位于实际背后的四边形针的四边形。

然后我有点绵....

我想我设置在拐角点RGBA为(R,G,B)我期望的发光颜色的,α= glowFactorForThisFrame

然后我设置glBlendmode适当的东西

,然后我绘制纹理四的模糊

我要的是什么,其中Alpha是1无处不在原来的针,但它逐渐出血来完成的透明度,因为我们再远离

...

一开始,我想找到一些代码,采用模糊一个灰度位图的照顾,我宁愿做这样的代码比照相馆。 (我意识到这在实际设备上会花费很多时间,所以也许我可以在第一次运行应用程序时将其计算,保存到文件中,然后从文件中加载)

其次,我是对我必须做的确切细节非常粗略。

有人可以帮我在这些要点吗?

+0

你喜欢特定的编程语言吗? – 2011-04-26 05:30:14

+0

iOS,所以ObjC,C,C++都很好 – 2011-04-26 05:48:10

+0

相关:http:// stackoverflow。com/questions/6683822/ios-applied-a-rgb-filter-to-a-greyscale-png – 2011-07-14 18:54:00

回答

0

我在这里尝试了很多方法。

基本上我需要两张图片;一个发光,一个不发光。

然后我可以借鉴他们为彼此的顶部CALayers,并劫持CADisplayLink,设置

glowLayer.opacity = glowFac; 
dullLayer.opacity = (1 - glowFac); 

我也发挥与GL着色器摆弄周围,通过辉光因素作为一个统一的,但是这是一吨代码基本上做同样的事情。

NB我需要找一个图形艺术家来'发光'图像

0

你可以创建一个围绕在Photoshop中针的形象辉光。开启辉光时,只需在运行时替换应用中的图像即可。

+0

我需要在不发光和完全发光之间平滑过渡。我还希望尽可能多地将代码移植到代码中,因为这为以后更改UI提供了很大的灵活性 – 2011-04-26 06:40:05

+0

了解。然而,就我而言,有时候会有一个平衡点,在内部快速而肮脏的地方让你获得快速和完美的结果。如果发生这种情况,通过在普通针的顶部添加α为零的辉光针图形实现平滑过渡,然后在定时动画上简单地将α改为100%。非常短暂和甜美。效果将只与代码一样好。 – 2011-04-26 16:54:44