Я создаю анимацию, которая раскрывает основное изображение. Существует виртуальная форма (например, звезда), движущаяся хаотично и обнаруживающая разные части изображения.Masking performance
Так что было два растровых изображений до сих пор:
- маску (след формы движущегося here'n'there)
- изображение (образ), лежащий в основе
До сих пор в каждом drawRect()
Я был:
- создание растрового изображения newMask путем копирования текущей маски
- рисунок штампа на newMask
- создания результирующего растрового изображения (применить newMask на изображение)
- рисунок в результате растрового изображения на экране Context
я борюсь с исполнением в этом подходе. Есть идеи, как улучшить его?
В частности:
- Можно пропустить шаг 1. & 2. и рисовать на маске напрямую (а не клонировать его).
- Должен ли я начать экспериментировать с CALayer подходом (если такого рода маскировка вообще возможно есть)
- Должен ли я использовать OpenGL
- Есть ли другой подход к решению этого?
Спасибо, проблема у меня в том, что формы, например звезда клонируется - представьте себе 100 звезд, помещенных на линию с расстоянием 1px, каждая звезда перекрывается соседом. Так что это невозможно сделать с описанным вами подходом. Если я пойму. Форма на самом деле не является началом, но более похожа на это: https://lh3.googleusercontent.com/-G1PLzaN4rOs/TYrq7Pxg9UI/AAAAAAAACpE/_wuvaUoxF-E/s1600/brush.png с альфа-каналом – Kasztan