Мне интересно, как бы вы реализовали эффект, подобный , этот реализован во флэш-памяти . Это будет просто черный экран, который, когда пользователь прикасается к нему и перетаскивает его, производит эффект, аналогичный тому, который можно увидеть во флэш-фильме.
Как называется этот эффект? У вас есть лучший пример?
Одна из моих самых больших проблем - точно сформулировать, о чем я говорю. Мне нужно как название для этого типа эффекта, так и видео, которое может показать, о чем я говорю. Это поможет другим лучше понять проблему.
Ближайший термин, который я могу придумать, который описывает нечто подобное, - это указатель . Единственное отличие состоит в том, что вместо того, чтобы показывать курсор, он будет показывать твердый след, который плавно исчезает. Веб-сайт , который сделал пример флеш , называет его Particle Ghosting . Другой пример этого - это видео YouTube для HP , которое показывает эффект от 0:30 до 0:36. Он начинает больше походить на краску, но в конечном итоге превращается в эффект исчезающего следа.
Если у вас есть лучшее название для этого эффекта или лучший пример, пожалуйста, укажите это, и я обновлю пост.
Какая технология iPhone потребуется?
OpenGL или Кварц 2D? Я предполагаю, что основная графика исключена из-за скорости. Любая другая технология, которую я пропускаю? Это должно быть достаточно быстро, без каких-либо задержек. Если предположить, что в любой заданной точке длится около секунды, в то же время может быть значительное количество анимированных пикселей, когда пользователь быстро перемещает палец. Возможно, даже заполнение большей части экрана пикселями, которые нужно потушить. Эффект должен выглядеть очень элегантно, ничего похожего на изменчивость следа указателя в XP.
Как это будет реализовано?
В идеале, я не хочу, чтобы эффект затухания был таким же жестким, как в примере со вспышкой (где это идеальный круг), и больше похож на видео HP, где затухание более органично (где на затухании разные каждая точка тропы).
Буду ли я манипулировать отдельными пикселями напрямую? То есть нужно ли отслеживать каждый пиксель, на который переместился палец, и неоднократно вызывать функцию, такую как PaintPixel (x, y, яркость), которая изменяет значение RGB пикселя? Это похоже на чрезмерное количество пиксельных модификаций и звучит так, как будто это замедлит работу всей системы. Тем не менее, я никогда не делал такого рода вещи раньше, поэтому я не знаю, так ли это обычно. Например, давайте предположим, что одно касание занимает 32x32 пикселей. У нас есть 32 х 32 = 1024 пикселей для каждого прикосновения. По мере движения пальца необходимо будет анимировать дополнительные 1024 пикселя, большинство из которых уже перекрываются с предыдущим касанием. Предполагая, что палец прошел по высоте iPhone за секунду, мы говорим о 480 x 32 пикселях = 15 360 пикселях, которые обновляются много раз в секунду.
Буду ли я использовать небольшой видеоклип, который исчезает с белого на черный, и просто генерировать множество экземпляров видеоклипа при движении пальца? У меня нет версии Flash, которая может открыть пример Flash, поэтому я не могу изучить его исходный код, но я предполагаю, что он просто создает новые экземпляры видеоклипов, когда точка перемещается. Это немного сложно для органического затухания, которое, вероятно, потребует создания нескольких затухающих видеоклипов и случайного выбора одного для каждой точки.
Буду ли я использовать набор изображений (например, 100 или около того кругов, каждый из которых представляет прикосновение, переходящее от сплошного белого к черному), а затем создавать и заменять их экземпляры по мере того, как время идет? Например, при перемещении пальца в этой точке я отобразил бы touch100.jpg, который представляет чистый белый цвет, и на следующей итерации та же точка отобразит touch99.jpg, затем touch98.jpg, продолжая, пока не достигнет touch0.jpg, который представляет чистый черный.
Есть другие идеи, которые мне не хватает?
Извините, если эти идеи звучат странно. Как вы, вероятно, можете сказать, я никогда не делал ничего подобного раньше, поэтому я не знаю, каков обычный способ реализации такого рода эффекта, и я просто выбрасываю любую идею, о которой могу подумать.
Какие ресурсы вы бы порекомендовали, чтобы узнать, как это реализовать?
Есть ли учебный материал, который вы бы порекомендовали кому-то, кто пытается научиться реализовывать подобные вещи?
Я не хочу тратить кучу времени на изучение одной технологии (например, Quartz), когда мне нужно будет знать совершенно другую технологию для ее реализации (например, OpenGL).
Есть ли какая-либо другая информация, которую я забыл предоставить?
Есть ли какие-либо дополнительные вопросы, которые вы бы порекомендовали мне задать?