Opengl es iOS/GLES2:如何实现光晕效果

Opengl es iOS/GLES2:如何实现光晕效果,opengl-es,blur,Opengl Es,Blur,我有一个指南针式的针,可以自由旋转 我需要它在接近某个方向时发光,比如说55度 我希望有一个NeedleView子类UIView,这样我就可以像处理UIView一样操作(NeedleView*)NeedleView,只需要几个额外的方法 -(空)进给角:(浮动)θ; -(无效)馈电辉光:(浮动)辉光_01 通过一些研究,我发现常用的技术是对针的图像进行灰度复制,模糊它,将其保存为GL纹理,然后将其缠绕到实际针的四元体后面的四元体上 那我就有点毛茸茸的 我想我把角点上的RGBA设置为(r,g,b)

我有一个指南针式的针,可以自由旋转

我需要它在接近某个方向时发光,比如说55度

我希望有一个NeedleView子类UIView,这样我就可以像处理UIView一样操作(NeedleView*)NeedleView,只需要几个额外的方法 -(空)进给角:(浮动)θ; -(无效)馈电辉光:(浮动)辉光_01

通过一些研究,我发现常用的技术是对针的图像进行灰度复制,模糊它,将其保存为GL纹理,然后将其缠绕到实际针的四元体后面的四元体上

那我就有点毛茸茸的

我想我把角点上的RGBA设置为(r,g,b)我想要的辉光颜色,a=辉光系数或该帧

然后我将glBlendmode设置为适当的值

然后我为模糊绘制了纹理四边形

我想要的是,在原始的针头上,Alpha是1,但随着我们移动的距离越来越远,它会逐渐流血以达到完全透明

首先,我想找到一些处理灰度位图模糊问题的代码,我宁愿从代码中执行,也不愿在照片商店中执行。(我意识到这在实际设备上会花费很多时间,所以也许我可以在应用程序第一次运行时计算它,将其保存到文件,然后从文件加载)

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


有人能帮我解决这两个问题吗?

如果您使用drawRect来拔针,您可以这样做:


如果使用drawRect来绘制针,则可以执行以下操作:


您可以在Photoshop中创建针图像周围的光晕。只需在运行时打开光晕时替换应用程序中的图像。

您可以在Photoshop中围绕针的图像创建光晕。只要在运行时打开glow时替换应用程序中的图像即可。

我在这里尝试了很多方法

基本上我需要两个图像;一个发光,一个不发光

然后我可以把它们画成一个接一个的Calayer,然后劫持CADisplayLink,设置

glowLayer.opacity = glowFac;
dullLayer.opacity = (1 - glowFac);
我还玩了在GL着色器中摆弄的游戏,将辉光因子作为一个统一的参数传递,但是基本上要做同样的事情需要大量的代码


注意:我需要找一位图形艺术家来“发光”图像

我在这里尝试了很多方法

基本上我需要两个图像;一个发光,一个不发光

然后我可以把它们画成一个接一个的Calayer,然后劫持CADisplayLink,设置

glowLayer.opacity = glowFac;
dullLayer.opacity = (1 - glowFac);
我还玩了在GL着色器中摆弄的游戏,将辉光因子作为一个统一的参数传递,但是基本上要做同样的事情需要大量的代码


NB我需要找一个图形艺术家来“图像”的发光。你喜欢一个特定的编程语言吗?ObjC,C,C++都是这样的:你喜欢一种特定的编程语言吗?iOS,所以ObjC,C,C++都是经过修饰的:我需要在不发光和完全发光之间顺利过渡。此外,我更愿意将尽可能多的工作转移到代码中,因为这为更改UI提供了很大的灵活性。然而,对我来说,有时候需要找到一个平衡点,里面的快速和肮脏会让你得到快速和完美的结果。如果发生这种情况,则通过在正常指针顶部添加alpha为零的辉光指针图形,然后在定时动画中将alpha更改为100%,即可实现平滑过渡。又短又甜。效果将和代码一样好。我需要在不发光和完全发光之间平稳过渡。此外,我更愿意将尽可能多的工作转移到代码中,因为这为更改UI提供了很大的灵活性。然而,对我来说,有时候需要找到一个平衡点,里面的快速和肮脏会让你得到快速和完美的结果。如果发生这种情况,则通过在正常指针顶部添加alpha为零的辉光指针图形,然后在定时动画中将alpha更改为100%,即可实现平滑过渡。又短又甜。效果将和代码一样好。