Как добиться эффекта размытия движения в SceneKit?

Как достичь «эффекта движения» в SceneKit? Эффект движения – это размытие, которое создается, если вы снимаете (с камерой) быстро движущиеся объекты. Я запускаю действие на узле и хочу немного размыться в направлении перемещения, когда узел движется, чтобы подчеркнуть, что узел движется быстро. Можно ли это сделать в SceneKit?

Это изображение имеет эффект движения – размытие применяется ко всей сцене. вы можете сказать, что камера движется внутрь по направлению линий размытия. Я только хочу применить motion blur к одному объекту, а не во время сцены.

введите описание изображения здесь

Чтобы получить действительно хороший эффект размытия движения, вам придется писать свои собственные шейдеры и, возможно, даже заменить часть конвейера процессора SceneKit – не для слабонервных.

Для более легкого приближения, которое может по-прежнему дать вам некоторый удар для вашего доллара, взгляните на свойство node.filters и фильтры Core Image. Путем выборочного применения линейного или масштабирующего фильтра размытия на определенные узлы и тщательной настройки (или даже анимации) параметров фильтра вы можете получить убедительное поддельное размытие движения.

Вы захотите задуматься о создании шейдера фрагментации движения, либо в GLSL, либо в Metal Shading Language.

В iOS 10 была введена camera.motionBlurIntensity для SCNCamera. Значения между 0.0 и 1.0, по умолчанию равны 0.0.

https://developer.apple.com/documentation/scenekit/scncamera/1644099-motionblurintensity