Вот проблема. Слева находится то, что я вижу в моем scnView. Справа - то, что я получаю от SCNRenderer'а snapshot
этой сцены. Я нахожусь на Каталине.

У меня есть сцена и способ в пользовательском интерфейсе сделать снимок этой сцены. Вот как я это делаю
snapshotRenderer.scene = scnView.scene
snapshotRenderer.snapshot(atTime: mySceneTime, with: mySize, antialiasingMode: SCNAntialiasingMode.multisampling4X)
То, что я пробовал
Моя теория состоит в том, что метод snapshot
захватывает визуализированный контент до того, как закончится полный цикл рендеринга, и все сглаживающие образцы сделаны (если есть вообще). Теория основана на том факте, что я вижу одни и те же неровные края в моем scnView
в течение секунды, пока не будет применено сглаживание.
Итак, без удачи я попытался запустить цикл с
snapshotRenderer.scene!.isPaused = false
snapshotRenderer.isPlaying = false
и
self.snapshotRenderer.update(atTime: mySceneTime)
, а также с SCNTransaction.begin()
и .commit()
. Но ничего не работает.
Я также попытался подождать 3 секунды с DispatchQueue.main.asyncAfter
после вышеуказанных попыток, а затем вызвать моментальный снимок. Это тоже не сработало.