В настоящее время я работаю над проектом, чтобы преобразовать физическое моделирование в видео на самом iPhone.
Для этого в настоящее время я использую два разных цикла. Первый цикл выполняется в блоке, где объект AVAssetWriterInput опроса EAGLView для большего количества изображений. EAGLView предоставляет изображения из массива, в котором они хранятся.
Другой цикл - это фактическое моделирование. Я отключил таймер моделирования и каждый раз вызываю галочку с заранее заданной разницей во времени. Каждый раз, когда вызывается тик, я создаю новое изображение в методе swap-буферов EAGLView после того, как буферы были заменены. Затем это изображение помещается в массив, который опроса AVAssetWriter.
Существует также некоторый код, чтобы убедиться, что массив не слишком большой
Все это прекрасно работает, но очень медленно.
Есть ли что-то, что я делаю, концептуально, заставляя весь процесс быть медленнее, чем это могло бы быть? Кроме того, знает ли кто-нибудь более быстрый способ получить изображение из Open GL, чем glReadPixels?