@Quiensabe
VR-разработчик

Как добиться воспроизведения 8K видео в Unity?

Добрый день!

Вопрос на самом деле даже более общий - как добиться максимально возможного качества, воспроизводимого видео в Unity?

Стандартные инструменты (video player), как и сторонние ассеты (easy video texture) - с трудом, кое-как, тянут 4K видео.
При том, что железо совсем неплохое (карта nVidia 1060 6Gb, процессор i7).

Попытка увеличить разрешение - приводит к сильнейшим фризам (до нескольких секунд).
С чем связаны такие жесткие ограничения - непонятно. У меня даже на мобилке (samsung s7) - хоть и чуть медленнее нормы, но тянуло 4k (easy video texture в unity). А тут полноценная десктопная система, и такие тормоза...

При этом 4k для VR - это очень и очень мало. Во-первых, нужно стерео, а это уже увеличивает картинку в 2 раза (с 3840*2160, до 3840*3840), и комп ее уже не тянет. Во-вторых, 4k, будучи развернутыми на сферу - дают весьма размытую картинку... В идеале нужно играть 6400*6400, но это далеко за пределами возможностей...

Пробовал разные кодеки (unity поддерживает h264 и V8) - разницы почти нет. Пробовал сжимать самой unity (т.е. пережатие видеоклипа во внутренний формат) - опять же разница минимальна. Загрузка всего клипа в память - тоже на результат не влияет.

В связи с этим вопросы:
1. есть идеи, что можно сделать?
2. есть ли какие-то технологии "ямочного" рендера видео? Чтобы обсчитывать только ту часть видео, которую пользователь видит (конечно в приложении к unity)?
3. Можно складывать сферу видео из N-фрагментов и обсчитывать только видимые, но добиться идеальной синхронизации будет очень сложно. Возможно есть наработки в этой сфере?
3. Посоветуйте настройки/кодеки/форматы для видео? Может быть какие-то ассеты?
4. Ролики у меня короткие, до 1 минуты. Как вариант хранить видео в разжатом виде в памяти, но нужен какой-то промежуточный формат, так как простой дамп данных конечно будет слишком большим...

Буду благодарен за любые идеи!
  • Вопрос задан
  • 1653 просмотра
Решения вопроса 1
@Quiensabe Автор вопроса
VR-разработчик
Для тех кому интересен ответ на вопрос, а не советы сменить архитектуру или упражнения в остроумии - пишу к чему сам пришел на данный момент.

Из опробованных мной ассетов и библиотек, лучший результат показал AVPro Video.
Он умеет играть видео больше 4K используя аппаратные средства. На моей системе, 2*4K видео (стерео) - играет без проблем. Загрузка процессора ~40%, видеокарта ~30%.

Таким образом, производительность этого решения на unity, в протестированном кейсе, - не уступает "нативным" решениям (из тестированных, плеер Virtual desktop, GoPro Player, Steam 360 Player).

Если кто-то сможет добавить информацию по вопросу (а не о том, почему этот вопрос тупой) - буду очень благодарен. С выходов новых шлемов (например, Pimax) - качественные плеер станет большой проблемой. Так что решение вроде ямочного рендера - в любом случае необходимо, и рано или поздно появиться.

Любую дополнительную информацию, хотя бы косвенно относящуюся к исходному вопросу - с удовольствием отмечу решением. Пока, решения на вопрос НЕТ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Вы пытаетесь охладить пиво кондиционером и жалуетесь на скорость процесса. (А ведь кондиционер не дешевый, пусть даже топовый). Не надо думать как ускорить процесс, надо просто холодильник для этой задачи использовать.

Список сомнительных затей:
Открывать пиво зубами
Блокировать телеграм по ip
Заниматься сексом с партнером того же пола
Зарабатывать на биткоинах
Программировать на html
Рендерить видео средствами игрового движка
Ответ написан
Комментировать
GavriKos
@GavriKos Куратор тега Разработка игр
наверное, из вопроса это непонятно, но конечно имеется ввиду панорамное видео на 360 градусов. 3/4 кадра остается вне поля зрения.

Понимаете, вы пытаетесь использовать движок для работы с 3д графикой, чтобы рендерить видео хрен пойми как. Это достаточно редкий кейс в играх, и никто не оптимизировал под ваши задачи, а уж темболее под куллинг и прочее.
Тем боле ераньше юнити вообще не умело то и видео играть, версии так в 4 без плагинов точно.
Совет - не используйте юнити. Напишите свой рендер на DirectX/OpenGL, где и реализуйте оптимальный для вашей СПЕЦИФИЧНОЙ задачи алгоритм. А использовать комбайн на узких и специфичных кейсах - плохой вариант.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы