Там нет шейдера размытия, я имел ввиду, что такой шейдер можно сделать. И я имел ввиду сделать универсальный шейдер на всю игру. То есть, сейчас в играх размытие делается шейдером, который на вход принимает картинку и информацию о векторах движения. Моя мысль заключается в том, чтобы эти векторы движения заменить на трёхточечные кривые, каждому пикселю соответствует своя. И размывать вдоль таких кривых.
Это сделать довольно несложно, просто это практически никогда не будет заметно, а вычислительных ресурсов будет потреблять значительно больше.
Вы не учли, что у глаза подстройка яркости осуществляется не только изменением зрачка, но и подстройкой чувствительности палочек и колбочек. Только, в отличие от камер, у глаза чувствительность регулируется отдельно для каждого "пикселя". И, даже если 7 бит достаточно (интересно было бы почитать подробнее), то при разной экспозиции эти 7 бит будут распределяться по разным физическим диапазонам.
Условно говоря, вот у нас рядом два "пикселя" сетчатки. У одного чувствительность настроилась на диапазон 0 - 100 кд/м², а у соседнего - на 0 - 10000 кд/м². С каждого из них, грубо говоря, в мозг идет информация не только об этих 7 битах, но и об уровне чувствительности, который выставлен у конкретного "пикселя". И мозг 7 бит будет умножать на коэффициент чувствительности, восстанавливая исходную картинку в сознании с большим диапазоном яркости.
Телевизор не знает, какой пиксель на его матрице с какой палочкой или колбочкой глаза совпадёт при просмотре. Поэтому, ему приходится рулить всем диапазоном сразу - от 0 до 10000 кд/м² (правда, сейчас обычно до 2000). А для хранения диапазона от 0 до 10000 кд/м² без резких скачков как раз нужно больше 8 бит, даже с учётом нелинейности глаза (поэтому в HDR гамма не обычная, а гибридная).
Я подозреваю, что исследования про 7 бит как раз учитывают именно разрешение по интенсивности без учёта возможностей автоподстройки чувствительности отдельных палочек и колбочек.
Проблемы с перегрузкой у глаза начинаются с яркости в 100 000 кд/м², что пока очень далеко от возможностей современных экранов.
Попробуйте взглянуть на настоящий HDR на хороших современных экранах. Вы увидите разницу невооружённым взглядом.
Ну, технически, можно доработать шейдер размытия в движении, чтобы там были не просто вектора, как сейчас, а, например, трёхточечные кривые. Тогда оно сможет делать криволинейное размытие движения и колесо будет выглядеть сносно.
Нюанс в том, что если попытаться глазами проследить за таким размытым колесом, то оно останется размытым. А на высокой герцовке оно станет чётким, как это и происходит в жизни.
Вы сможете различить и 12 бит на канал, правда, дисплеев таких пока нет. Обратите внимание, что речь идёт о диапазоне интенсивности света и цвета, которую способен воспринять человек, и диапазон этот весьма и весьма высок.
По аналогии с изображением, это будет не увеличение разрешения одной и той же картинки, а увеличение разрешения и угла обзора (панорамности). Если мы увеличиваем угол обзора, то увеличивается количество объектов, попадающих в кадр, и для сохранения уровня деталлизации нам нужно повысить разрешение.
Так и тут. Первые 8 бит расходуются на обычный диапазон яркости от 0 до 100%, а дополнительные два - от 100% до 1000%. И глаз это видит.
Имелось ввиду не размытие в движении, а полупрозрачное совмещение двух кадров. Вероятно, правильнее было бы употребить термин "смазанное".
К слову, Half-Life 2 я заметил очень интересный эффект - игра старая, поэтому 120 Гц видеокарта выдаёт без проблем. В игре нет эффекта размытия в движении, но я его увидел: если например, раскрутить карусельку в начале игры, то она будет выглядеть смазанной, если же при этом начать следить за ней взглядом, то размытие пропадает, как в жизни. То есть, при высокой частоте кадров размытие в движении появляется само собой, причем это уже не имитация - если следить глазами, оно пропадает.
Существуют профессиональные панели, но они будут отставать от обычных по технологиям, и их будет гораздо сложнее достать
Можно поступить проще: взять потребительские телевизоры и перевыключать всё, что не нужно. Я так и сделал - у меня даже до сих пор не вбит пароль на WiFi.
Всё это можно было точно так же сказать про FullHD в 2007 году.
По накопителям - если (вряд ли, конечно) появится лазерный диск за 400 рублей ёмкостью 100-200 Тб, то запросто могут вернуться. Но наиболее вероятно повсеместное распространение быстрого интернета. Онлайн сервисы, на мой взгляд, постепенно качество будут поднимать:
Даже пережатое видео в 10 бит лучше выглядит, чем 8 бит при том же битрейте
Кодеки появляются новые, и жмут лучше. Уже H266 делают.
Интернет становится быстрее
Нейросети всё лучше и лучше подавляют артефакты сжатия
Я говорил не про обычный апскейл, а про нейросетевой - он как раз добавляет информацию - сам её выдумывает. Другое дело, что на текущем этапе эта технология работает весьма посредственно, но не-реалтайм сети для апскейла уже сейчас демонстрируют впечатляющие результаты. В играх, кстати, уже повсеместно используют DSR - это оказывается быстрее, чем рендерить в полном разрешении.
На мой взгляд, важен ещё один нюанс - то, что сейчас называют "метавселенными", будет требовать очень быстрого интернет соединения и высокой эффективности сжатия контента, и, тем самым, упрощать жизнь для тяжелого видео.
Стоит упомянуть, что RGBW матрицы бывают разные. У меня, например, RGBW, включено сглаживание, а шрифты нормальные. Почему? Потому что пиксели полноценные. Красный, зелёный, синий, белый в каждом пикселе.
А есть другой, более распространённый вид RGBW матриц - в них число субпикселей разное. И вот на них всё плохо. Точно также, где матрицы RGB, но тоже - красных и синих меньше.
Таким образом, для шрифтов самое главное - полноценные пиксели, состоящие, как минимум из 1 зелёного, 1 красного и 1 синего субпикселя.
У многих дешёвых телевизоров аналог PenTile - зелёных субпикселей столько, сколько нужно, а красных и синих меньше.
Я пробовал, для эксперимента, сидеть за таким. Сглаживание ClearType по умолчанию выглядит вырвиглазно, но можно настроить до уровня "терпимо". Для тех, кто чувствителен к шрифтам, такое строго не рекомендуется.
Ещё есть цветовая субдискретизация, которая любит включаться сама по себе и портит малину, и в стандартных настройках её нет - она обычно закопана в настройках драйвера видеокарты. Просто картинка становится какая-то не такая, и пользователь не понимает, что, как и почему.
Вы правы, технически эти параметры не связаны. Но, как правило, в то, что имеет максимальную частоту обновления 60 Гц, ставится довольно медленная матрица
Ну, во-первых, я тут ставлю акцент именно на использование ТВ как монитора - там контентом выступает, собственно, рабочий стол.
Во-вторых, что касается контента - это длинная отдельная тема, если в кратце, самое главное - при просмотре видео уже можно пользоваться уплавнялками, та задержка, которую они добавят, никак не повлияет. Автоматом всё, что 30 Гц, станет 120 Гц (хотя иногда это может нарушить художественный замысел). Плюс, есть разные кодеки и разный битрейт - например, H265 сжимает гораздо лучше. В онлайн сервисах битрейт обычно гораздо ниже, чем в блю-рей качестве, и достаточно иметь интернет-соединение в 150-200 Мбит/с.
В целом, история повторяется, как с FullHD - когда он появился, фильмы 20-40 Гб тоже казались чем-то немыслимым, у людей ещё было "2 рубля за мегабайт" и 5 Мбит/с. А потом постепенно пошло. Так и тут - повсеместное распространение (мобильного) интернета 500 МБит/с, новые кодеки, в которых фильм будет весить не 344 Гб а 100 Гб, нейросетевой апксейл (который в телевизоры, к слову, уже ставят), который умеет додумывать и дорисовывать детали, станет работать ещё лучше, накопители будут измеряться десятками терабайт, и т.п.
По сути мы как-бы размазываем края картинки с телевизора по рамке, используя оптоволокно. Но там много нюансов - нужны эксперименты и ещё изготовление деталей, причем, вероятно, ручное.
Есть ещё мысли напечатать светорассеиватели на 3D принтере из прозрачного пластика. 3D принтер печатает слоями, тут это как раз кстати.
Это что за ленты такие скоростные, если не секрет?)
У этих я выше 40 Гц не делал, потому что при большей частоте они начинают вываливаться в красный - там уже инертность связки диод+конденсатор начинается, не смотря на то, что чип вывозит. Так бы отлично было разделить их, запараллелить и сделать все 120 Гц.
Я правильно понимаю, что идея в том, что мы настраиваем контроллер тупо брать данные с USB и напрямую пихать их в DMA по таймеру с помощью аппаратных средств?
Хм. А разве TryAcquireNextFrame копирует в оперативку? Я думал оно остаётся в видеопамяти - именно поэтому я уменьшаю картинку при помощи Direct2D, а потом уже копирую в ОЗУ.
Если оно и так само копирует, то тогда уменьшение - это дополнительное копирование обратно в GPU + нагрузка в виде самого уменьшения. В этом случае, надо вообще не уменьшать и алгоритм CPU переработать.
LG OLED C1, на всех трёх пиксели нормальные (т.е. нет разницы от экземпляра к экземпляру)
Примеры
Там нет шейдера размытия, я имел ввиду, что такой шейдер можно сделать. И я имел ввиду сделать универсальный шейдер на всю игру. То есть, сейчас в играх размытие делается шейдером, который на вход принимает картинку и информацию о векторах движения. Моя мысль заключается в том, чтобы эти векторы движения заменить на трёхточечные кривые, каждому пикселю соответствует своя. И размывать вдоль таких кривых.
Это сделать довольно несложно, просто это практически никогда не будет заметно, а вычислительных ресурсов будет потреблять значительно больше.
Что подразумевается под разрешением глаза?
Вы не учли, что у глаза подстройка яркости осуществляется не только изменением зрачка, но и подстройкой чувствительности палочек и колбочек. Только, в отличие от камер, у глаза чувствительность регулируется отдельно для каждого "пикселя". И, даже если 7 бит достаточно (интересно было бы почитать подробнее), то при разной экспозиции эти 7 бит будут распределяться по разным физическим диапазонам.
Условно говоря, вот у нас рядом два "пикселя" сетчатки. У одного чувствительность настроилась на диапазон 0 - 100 кд/м², а у соседнего - на 0 - 10000 кд/м². С каждого из них, грубо говоря, в мозг идет информация не только об этих 7 битах, но и об уровне чувствительности, который выставлен у конкретного "пикселя". И мозг 7 бит будет умножать на коэффициент чувствительности, восстанавливая исходную картинку в сознании с большим диапазоном яркости.
Телевизор не знает, какой пиксель на его матрице с какой палочкой или колбочкой глаза совпадёт при просмотре. Поэтому, ему приходится рулить всем диапазоном сразу - от 0 до 10000 кд/м² (правда, сейчас обычно до 2000). А для хранения диапазона от 0 до 10000 кд/м² без резких скачков как раз нужно больше 8 бит, даже с учётом нелинейности глаза (поэтому в HDR гамма не обычная, а гибридная).
Я подозреваю, что исследования про 7 бит как раз учитывают именно разрешение по интенсивности без учёта возможностей автоподстройки чувствительности отдельных палочек и колбочек.
Проблемы с перегрузкой у глаза начинаются с яркости в 100 000 кд/м², что пока очень далеко от возможностей современных экранов.
Попробуйте взглянуть на настоящий HDR на хороших современных экранах. Вы увидите разницу невооружённым взглядом.
Примеры 55'' мониторов LED: https://www.ozon.ru/category/monitory-55-dyuymov/
Примеры профессиональных панелей
OLED: https://avsmart.ru/tv-and-videopanels/professionalnye-paneli/oled-paneli/
LED: http://www.fobis.ru/lcdpanel/type-professionalnie
Ну, технически, можно доработать шейдер размытия в движении, чтобы там были не просто вектора, как сейчас, а, например, трёхточечные кривые. Тогда оно сможет делать криволинейное размытие движения и колесо будет выглядеть сносно.
Нюанс в том, что если попытаться глазами проследить за таким размытым колесом, то оно останется размытым. А на высокой герцовке оно станет чётким, как это и происходит в жизни.
Большое спасибо за уточнение, поправил
Вы сможете различить и 12 бит на канал, правда, дисплеев таких пока нет. Обратите внимание, что речь идёт о диапазоне интенсивности света и цвета, которую способен воспринять человек, и диапазон этот весьма и весьма высок.
По аналогии с изображением, это будет не увеличение разрешения одной и той же картинки, а увеличение разрешения и угла обзора (панорамности). Если мы увеличиваем угол обзора, то увеличивается количество объектов, попадающих в кадр, и для сохранения уровня деталлизации нам нужно повысить разрешение.
Так и тут. Первые 8 бит расходуются на обычный диапазон яркости от 0 до 100%, а дополнительные два - от 100% до 1000%. И глаз это видит.
Имелось ввиду не размытие в движении, а полупрозрачное совмещение двух кадров. Вероятно, правильнее было бы употребить термин "смазанное".
К слову, Half-Life 2 я заметил очень интересный эффект - игра старая, поэтому 120 Гц видеокарта выдаёт без проблем. В игре нет эффекта размытия в движении, но я его увидел: если например, раскрутить карусельку в начале игры, то она будет выглядеть смазанной, если же при этом начать следить за ней взглядом, то размытие пропадает, как в жизни. То есть, при высокой частоте кадров размытие в движении появляется само собой, причем это уже не имитация - если следить глазами, оно пропадает.
Существуют профессиональные панели, но они будут отставать от обычных по технологиям, и их будет гораздо сложнее достать
Можно поступить проще: взять потребительские телевизоры и перевыключать всё, что не нужно. Я так и сделал - у меня даже до сих пор не вбит пароль на WiFi.
Всё это можно было точно так же сказать про FullHD в 2007 году.
По накопителям - если (вряд ли, конечно) появится лазерный диск за 400 рублей ёмкостью 100-200 Тб, то запросто могут вернуться. Но наиболее вероятно повсеместное распространение быстрого интернета. Онлайн сервисы, на мой взгляд, постепенно качество будут поднимать:
Даже пережатое видео в 10 бит лучше выглядит, чем 8 бит при том же битрейте
Кодеки появляются новые, и жмут лучше. Уже H266 делают.
Интернет становится быстрее
Нейросети всё лучше и лучше подавляют артефакты сжатия
Я говорил не про обычный апскейл, а про нейросетевой - он как раз добавляет информацию - сам её выдумывает. Другое дело, что на текущем этапе эта технология работает весьма посредственно, но не-реалтайм сети для апскейла уже сейчас демонстрируют впечатляющие результаты. В играх, кстати, уже повсеместно используют DSR - это оказывается быстрее, чем рендерить в полном разрешении.
На мой взгляд, важен ещё один нюанс - то, что сейчас называют "метавселенными", будет требовать очень быстрого интернет соединения и высокой эффективности сжатия контента, и, тем самым, упрощать жизнь для тяжелого видео.
Стоит упомянуть, что RGBW матрицы бывают разные. У меня, например, RGBW, включено сглаживание, а шрифты нормальные. Почему? Потому что пиксели полноценные. Красный, зелёный, синий, белый в каждом пикселе.
А есть другой, более распространённый вид RGBW матриц - в них число субпикселей разное. И вот на них всё плохо. Точно также, где матрицы RGB, но тоже - красных и синих меньше.
Таким образом, для шрифтов самое главное - полноценные пиксели, состоящие, как минимум из 1 зелёного, 1 красного и 1 синего субпикселя.
У многих дешёвых телевизоров аналог PenTile - зелёных субпикселей столько, сколько нужно, а красных и синих меньше.
Я пробовал, для эксперимента, сидеть за таким. Сглаживание ClearType по умолчанию выглядит вырвиглазно, но можно настроить до уровня "терпимо". Для тех, кто чувствителен к шрифтам, такое строго не рекомендуется.
Ещё есть цветовая субдискретизация, которая любит включаться сама по себе и портит малину, и в стандартных настройках её нет - она обычно закопана в настройках драйвера видеокарты. Просто картинка становится какая-то не такая, и пользователь не понимает, что, как и почему.
Вы правы, технически эти параметры не связаны. Но, как правило, в то, что имеет максимальную частоту обновления 60 Гц, ставится довольно медленная матрица
Ну, во-первых, я тут ставлю акцент именно на использование ТВ как монитора - там контентом выступает, собственно, рабочий стол.
Во-вторых, что касается контента - это длинная отдельная тема, если в кратце, самое главное - при просмотре видео уже можно пользоваться уплавнялками, та задержка, которую они добавят, никак не повлияет. Автоматом всё, что 30 Гц, станет 120 Гц (хотя иногда это может нарушить художественный замысел). Плюс, есть разные кодеки и разный битрейт - например, H265 сжимает гораздо лучше. В онлайн сервисах битрейт обычно гораздо ниже, чем в блю-рей качестве, и достаточно иметь интернет-соединение в 150-200 Мбит/с.
В целом, история повторяется, как с FullHD - когда он появился, фильмы 20-40 Гб тоже казались чем-то немыслимым, у людей ещё было "2 рубля за мегабайт" и 5 Мбит/с. А потом постепенно пошло. Так и тут - повсеместное распространение (мобильного) интернета 500 МБит/с, новые кодеки, в которых фильм будет весить не 344 Гб а 100 Гб, нейросетевой апксейл (который в телевизоры, к слову, уже ставят), который умеет додумывать и дорисовывать детали, станет работать ещё лучше, накопители будут измеряться десятками терабайт, и т.п.
Это был камень в огород противников высокой герцовки, которые любят апеллировать к классическому кино с его 24 кадрами в секунду :)
Мне лично нужно как минимум 120 Гц, какие там 40.
Можно и совсем бесшовно. Нюанс в том, что чем "бесшовнее", тем сложнее, причем, сложность возрастает по экспоненте.
Я уже начинаю думать, что случайно сделал что-то опасное :)
По сути мы как-бы размазываем края картинки с телевизора по рамке, используя оптоволокно. Но там много нюансов - нужны эксперименты и ещё изготовление деталей, причем, вероятно, ручное.
Есть ещё мысли напечатать светорассеиватели на 3D принтере из прозрачного пластика. 3D принтер печатает слоями, тут это как раз кстати.
Это что за ленты такие скоростные, если не секрет?)
У этих я выше 40 Гц не делал, потому что при большей частоте они начинают вываливаться в красный - там уже инертность связки диод+конденсатор начинается, не смотря на то, что чип вывозит. Так бы отлично было разделить их, запараллелить и сделать все 120 Гц.
Я правильно понимаю, что идея в том, что мы настраиваем контроллер тупо брать данные с USB и напрямую пихать их в DMA по таймеру с помощью аппаратных средств?
Хм. А разве TryAcquireNextFrame копирует в оперативку? Я думал оно остаётся в видеопамяти - именно поэтому я уменьшаю картинку при помощи Direct2D, а потом уже копирую в ОЗУ.
Если оно и так само копирует, то тогда уменьшение - это дополнительное копирование обратно в GPU + нагрузка в виде самого уменьшения. В этом случае, надо вообще не уменьшать и алгоритм CPU переработать.