Компания Google объявила (https://developers.googleblog.com/2018/05/open-sourcing-seur... об открытии исходных текстов проекта Seuratо (https://github.com/googlevr/seurat), в рамках которого подготовлена реализация технологии упрощения 3D-сцен для снижения потребления ресурсов и ускорения процесса рендеринга. Код проекта написан на C++ и поставляется (https://github.com/googlevr/seurat) под лицензией Apache 2.0.
С практической стороны Seuratо может использоваться для упрощения очень сложных 3D-сцен для их эффективной обработки на мобильных системах виртуальной реальности, предоставляющий шесть степеней свободы (6DoF (https://ru.wikipedia.org/wiki/%D0%A8%D0%.... Работа Seurat сводится к преобразованию больших 3D-сцен, включающих миллионы треугольников, сложное освещение и шейдерные эффекты, в представление, состоящее из сотен тысяч треугольников, которые по силам отобразить на мобильных устройствах, ценой незначительной потери качества рендеринга (менее гладкие поверхности и небольшое искажение освещения).
Оригинальная сцена:
Сцена, обработанная в Seuratо (исходные 46.6 млн треугольников сокращены до 307 тысяч треугольников, что позволило поднять производительность отрисовки более чем в 100 раз без видимой потери качества):
Процесс обработки в Seurat отталкивается от того факта, что сцены в шлемах виртуальной реальности обычно просматриваются в ограниченной области видимости и это можно использовать для оптимизации геометрии и текстур в 3D-сцене. Seurat получает на входе RGBD-изображения (цвет и данные о глубине) и генерирует текстурированную полигональную сетку (mesh (https://ru.wikipedia.org/wiki/%D0%9F%D0%... отвечающую заданным требованиям по числу треугольников, размеру текстуры и интенсивности заполнения.
Seurat позволяет на лету обрабатывать статические 3D-окружения, формируя вывод для одного шлема виртуальной реальности на основании входных данных от любой системы рендеринга, в том числе от игровых движков и систем трассировки лучей. Динамический контент может быть совмещён поверх статического окружения, сгенерированного в Seurat. Плагины для интеграции с Seurat подготовлены для Unity (https://github.com/googlevr/seurat-unity-plugin), Unreal (https://github.com/googlevr/seurat-unreal-plugin) и Maya (https://github.com/googlevr/seurat/blob/master/seurat/genera.... На выходе выдаются мэши c текстурным атласом (https://ru.wikipedia.org/wiki/%D0%A2%D0%... в цветовом пространстве RGBA, которые могут быть отрисованы в любом движке real-time рендеринга.
URL: https://developers.googleblog.com/2018/05/open-sourcing-seur...
Новость: https://www.opennet.ru/opennews/art.shtml?num=48551
А все таки в обработанной сцене есть отличия от оригинала ....
я увидел лишь разницу в неоновых вывесках и фонариках
Значит ты ничего не увидел.
Э-э-э... Ну так в этом же и суть.
Не только есть, она огромная. А врут, что "без видимой потери качества".
Придумай лучше!
Субьективно, по мне то как mp3 слушать, может быть и хуже но явного раздражения не вызывает.
В полигонах практически нет.
Отличия в лучшую сторону или в худшую?
После обработки потеря качества бросается в глаза.
> После обработки потеря качества бросается в глаза.Ты можешь привести примеры? Я не специалист по графике, мне не бросается, но было бы интересно глянуть.
Бокалы замылены. Вопрос - как это отражается в видео, а не в статической картинке. Часто бывает так, что терпимые искажения статики делают видео совершенно невыносимым. Например, dithering.
>Например, dithering.Обычно он помощник, а не вредитель. Можно скриншоты, где он гогнит картинку.
> Обычно он помощник, а не вредитель. Можно скриншоты, где он гогнит картинку.Речь не о скриншотах, а анимации. См. статью https://habr.com/post/343172/
Ни на одной анимированной картинке там (в катах), нет анимации, при которой этот dithering не мешает смотреть.
Ну ты и хватанул пример (хоть статья и понравилась). Там и разрешение картинки мелкое, и, что более важно, глубина цвета ультрамаленькая. Я прошу заметить, что дизеринг там отлично справился с задачей - градиентные переходы от освещения вполне себе чувствовались плавными, тело получило недостающую ему "глубину", становясь выпуклым.
Тут ведь история не о том, или не только о том, как снизить глубину цвета, а о том, как поудачней поудалять полигоны, этакая вариация на тему тесселяции https://www.youtube.com/watch?v=y2kU2VoWGBw
Конкретно по гугловскому Всрато - зашакаливание чувствуется. Вылез альясинг (китайские фонари, например), шершавость стен явно стала меньше.
> Я прошу заметить, что дизеринг там отлично справился с задачейФига себе! Там анимация ломает глаза жутким образом - при повороте камеры появляется мерцание.
Ещё раз, "мерцание" это малая глубина цвета в первую очередь (2 цвета). Все манёвры в статье о том, как избежать, извиняюсь за тавтологию, "бегающего" по объекту шума, который придавал этому самому объекту ощущение объёмности.
Уже на 256 цветах проблема с правильным дизерингом не стоит http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
Что говорить, про 8бит на канал.
> Все манёвры в статье о том, как избежать, извиняюсь за тавтологию,
> "бегающего" по объекту шума, который придавал этому самому объекту ощущение объёмности.Ну и не вышло.
> Часто бывает так, что терпимые искажения статики делают видео
> совершенно невыносимым. Например, dithering.Часто бывает и наоборот. Глаз плохо различает мелкие детали в движении, поэтому то что ужас-ужас на статичной картинке, не вызывает особых претензий в движущейся сцене - это просто не успевают заметить.
Ну так это не lossless...
А где они заявляли, что это lossless?
Всем mp3!
Серьезная потеря качества картинки.
Но не в 100 же раз, а производительность поднялась в 100. Так что вполне применимо в некоторых случаях.
Главное чтобы была возможность "подкрутить", а найти разумный компромисс - будет делом техники!
Для порта на мобилки самое оно.
> Серьезная потеря качества картинки.В случае VR это может быть не очень заметно. Зато при малейшем лаге в случае VR пользователя, извините, мутить начинает. При рассинхронизации картинки с физическими ощущениями вестибулярный аппарат дико плющит и человеку плохеет. Так что разгон сцены в 100 раз - решает.
Похоже что вы путаете лаги с частотой кадров.
С лагов в VR тоже шкелдырит и выворачивает
> Похоже что вы путаете лаги с частотой кадров.Просадка FPS это частный случай источника лагов.
Первая картинка - вырвиглазное гуано, вторая - тоже. Поскольку хуже быть не может, то Seurato таки крутая технология - намного меньше полигонов, а г осталось г.
а нужно было просто "мыльца" добавить ;)
> ценой незначительной потери качества рендерингаАга, особенно если на основание левой белой лампы посмотреть
Основная разница в тенях, отблесках и в детализации.Поднос на стойке стал выглядеть как лужа.
Разница в производительности на два порядка конечно впечатляет. Пусть и ценой небольшого ухудшения графики. А не то, что в современных играх сейчас - опустил с высоких на низкие, получил графику квейк 3 и всего +15 фпс.
Небольшого? Я даже боюсь представить в очках какой толщины ты ходишь.
То, что показано - это статика. Вопрос - что будет в анимированной сцене, которую тот же dithering делает совершенно невменяемой.
> без видимой потери качестваМаркетологам привет.
Сравнив два этих рендера такое ощущение что мою PS4 Pro отключили от OLED 4K телевизора и переключили на PS3 уровня 2006 года.
Незаметная... кому? Слепому наркоману?
Та у них лишь бы пиар...
Кстати, в VR все эти оптимизации очень бросаются в глаза. Сам видел: на сцене, которая на мониторе очень даже плавная и реалистичная, в Oculus Rift так четко видно полигоны, что вспоминаются игры начала 2000-х. А сабж, смотрю, еще и разрешение текстур снизил.
В общем, оптимизировать в 100 раз если и стоит, то только специально для слабого железа. Для нормальных же шлемов и раз в 10 хватит.
п.с. А если сабж еще и блики запекает в текстуру, то для нормального железа лучше им вообще не оптимизировать.
> п.с. А если сабж еще и блики запекает в текстуру, то для
> нормального железа лучше им вообще не оптимизировать.Ох. Собственно, мы видим блик когда на один глаз идёт яркое пятно, а на другой - нет. А запекание в текстуру сделает блик просто ярким пятном на текстуре.
Точно вам говорю, основной контингент опеннета -- дезигнеры, а не программисты и не сисадмины. В картинках они понимают всё, и видят косяки там, где нормальный человек видит картинку -- то шрифты им хрусталик деформируют, то дизеринг им сетчатку царапает, от чёрно-белых иконок у них четырёххолмие начинает уплощаться... Но как дело доходит до технических вопросов, начинают нести такую пургу, что уши в трубочку заворачиваются. Стопроцентов дезигнеры.