Как применить полноэкранный SKEffectNode для постобработки в SpriteKit

пробую SpriteKit со следующей настройкой:

SKScene с двумя дочерними узлами, используемыми просто для группировки других узлов: переднего плана и фона.на данный момент фон действительно пустой, но в конечном итоге он будет содержать некоторый тип фонового спрайта / слоев.foreground - это SKEffectNode, и всякий раз, когда пользователь нажимает на экран, к нему добавляется новый экземпляр подкласса SKnode, который представляет игровой элемент.Этот подкласс SKNode в основном создает 3 SKShapeNode и две метки: внешнюю окружность, внутреннюю окружность, 2 метки и внутреннюю четверть окружности. У внутренней четверти окружности есть SKAction, который заставляет это вращаться навсегда вокруг своего начала / центра.

Сейчас здесьЭто проблема, пока передний план неу меня нет CIFilter или должен иметьEnableEffects = NO, все в порядке. То есть я могу нажимать на экран, и мои игровые элементы создаются и добавляются в основную сцену. Но в ту минуту, когда я пытаюсь добавить CIGaussianBlur или CIBloom на передний план, я замечаю две вещи:

Частота смены кадров падает примерно до 2 кадров в секунду. Имейте в виду, что это происходит даже при наличии всего 6 узлов в сцене.

Эффект, кажется, постоянно обрезает его содержимое или корректирует его ».кадр. То есть, если у меня есть один узел, "полноэкранный" Эффект, кажется, пытается постоянно обрезать или корректировать свои границы до минимальной площади, необходимой для удержания всех узлов. Это для одного узла:

И это для 2 узлов:

В OpenGL ES 2 можно было бы выполнить размытие / расцветку пост-структуры, в основном визуализируя весь кадровый буфер (все объекты) в текстуру, затем выполнив по крайней мере еще один проход для размытия и т. Д. Для этой текстуры, а затем либо представив это в кадровом буфере, присоединенном отображение или компоновка с исходным рендерингом обратно в кадровый буфер. Я'Я ожидаю, что SKEffectNode будет работать аналогичным образом. Однако обрезка и низкая производительность заставляют меня думать, что я могу использовать узел эффекта неправильно. Какие-нибудь мысли?

Ответы на вопрос(1)

Ваш ответ на вопрос