У меня есть стрелка компаса, свободно вращающаяся.
Мне нужно, чтобы она светилась, когда приближается к определенной ориентации, скажем, 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 везде на исходной игле, но постепенно начинает кровоточить для достижения полной прозрачности, когда мы отодвигаемся
...
для начала, я быЯ хотел бы найти некоторый код, который заботится о размывании растрового изображения в оттенках серого, я бы предпочел сделать это из кода, а не в фотомагазине.(Я понимаю, что это займет много времени на реальном устройстве, поэтому, возможно, я смогу рассчитать его при первом запуске приложения, сохранить его в файл, а затем просто загрузить из файла)
во-вторых, яЯ очень осторожен в точных деталях того, что я должен делать.
Может ли кто-нибудь помочь мне в любом из этих пунктов?