О сглаживании и рейтрейсинге

В комментариях под постом с очередной рекламой nvidia всплыл интересный момент:

О сглаживании и рейтрейсинге

Заминусованно. Но, в целом, истинно. Частично. Не совсем. Попробую пояснить, т.к самому стало интересно, почему же во время рендера у меня все всегда выходит зашибись, а в игре без сглаживания содомия из пикселей. Сразу предупрежу, глубокий ресерч мне делать лень, поэтому 90% напишу по памяти. TL;DR в конце.

Острый, как бритва

Что такое сам по себе алиасинг все и так прекрасно знают. Лесенки, о которые можно порезаться глазом, бензопилы, рвущие душу любого геймера. Возникают они по банальной причине — недостаток или неточность информации, относящейся к цвету пикселя. У нас, знаете ли, паршивые мониторы... нет, не так, паршивое разрешение в мониторах, миллионов пикселей которых все еще недостаточно для четкого построения сложных сцен.

И тут на помощь приходят алгоритмы сглаживания. Их много, красивых и разных, от блюра по гауссу до суперсемплинга. Последний самый простой и в лоб, он же древний и супер тяжелый SSAA или чуть более свежий DSR (там отличные, наглядные картинки), что просто берет и НАВАЛИВАЕТ информации для обработки, а потом чуток мылит. Из 4к картинки собрать "не кашу" намного проще, чем из 720р, промежуточные оттенки между пикселями разного цвета сделают свое дело. Тут весь вопрос стоит, как обычно, в цене. DSR - дорого, fxaa - криво, taa при малых выборках - мыльно. Но для полного раскрытия потенциала вашего 1080р монитора гонять на нем нужно все же 4к картинку с небольшими доработками, sad but true.

Еще реклама nvidia​
Еще реклама nvidia​

Кстати, ввиду того, что 4к мониторам тоже далеко до качества картинки и кол-ва информации из реального мира - там частенько все еще нужно сглаживание. Легкий TAA или, чтобы раскрыть полный потенциал 4к монитора - еще один 4х-кратный суперсемплинг. Да, 16к, посоны, без шуток, но с нюансами, о которых лень писать.

Лучи, лучики

И вот, рейтрейсинг. Ray tracing. Трассировка лучей. Чистая, неоскверненная математика. Почитать и ничего не понять можно на википедии. Алгоритмы там тоже разные, но суть одна - математическая симуляция, спам и бомбардировка лучами света объектов, дабы случилась магия. И там все сложно. И сглаживание не нужно. Ну или нужно. Можно и fxaa даже применить к итоговому результату - сработает. Только незачем и вот почему.

У рейтрейсинга есть такая мааааленькая особенность. Лучей нужно много. Прямо таки *****. ***** капслоком. Иначе будет шум, как у советского телевизора. Можно бомбить один пиксель одним лучом одним сэмплом и получить результат хуже, чем в любой игре. Будет алиасинг, много алиасинга, будет шум и неправильные цвета. Будет, в общем, караул. Про сглаживание откуда-то из палеозоя. Кстати, если я правильно понял из этого треда - то шум как раз помогает в борьбе с лесенками. Но это не точно, да и не важно.

​Ленивая картинка из гугла с майнкрафтом, хорошо иллюстрирует выше написанное
​Ленивая картинка из гугла с майнкрафтом, хорошо иллюстрирует выше написанное

Для борьбы с этим используются 100500 методов выборки, через разные алгоритмы, шумодавы на нейросетях, в общем, удобства сделанные людьми умными, для людей которым это знать не надо, и к которым отношусь я, например. Но лучей все еще нужно много, хоть при умных шутках и меньше, чем в лоб. И вот эти самые лучи дают нам нужное - ИНФОРМАЦИЮ. Пиксели счастливы, они супер точные, их цвета определены сэмулированной вселенной раз и навсегда. Ты рендеришь 720р и там все идеально. Проблемы могут возникнуть уже только банально от недостатка пикселей для вывода (не для обработки, это важно!) - или детали потеряются или провод какой мерзкий зарябит. Но от этого уже даже самая обычная бумажная фотография не застрахована.

А что RTX? Ну, там лучей мало. И бомбят они только часть эффектов, как правило, а не выстраивают нам всю картинку. Поэтому нужно сглаживание, поэтому DLSS и 4к, поэтому там нейронки для удаления шумов и еще ворох различных хаков.

TL;DR

Трассировка в сценарии, когда от итоговой картинки не нужно прятаться в ужасе под стол, уже сама себе сглаживание и там все хорошо.

Ps. Чувак, ну там всего две маленьких главы, ну камон.

1818 показов
4.6K4.6K открытий
97 комментариев

За первый коммент не совсем понятны минусы, но за второй адекватны. Если бы он так же, как и ты, ответил на поставленный вопрос "как они связаны", а не начал подъёбывать, то вышел бы в больший плюс.

Ответить

Просто люди шибко ранимые пошли.

Ответить

не совсем понятны минусыОн там срашивает "разве у нвидии не так". Так вот, не так. Полноценный рейтрейсинг только во втором Quake, и то шум мешал людям рассмотреть указанное преимущество.
Хотя это, конечно, был вопрос, а не утверждение. Но все мы знаем, как это работает, хорош тут. Нельзя от всех претензий спрятаться за знаком вопроса (я пыталса :/)

Ответить

Он не знал почему вероятней всего, а я вот только подозревал, пришлось чуток гугл помучить. 

Прост эта штука очевидна для тех, кто рендерит, как то, что дождь мокрый. Но почему он мокрый?)

Ответить

я конечно давно этим не занимался, но в вузе у нас были лабы по реализации алгоритма сглаживания и по рейтрейсингу, и я писал пару алгоритмов сглаживания и rt с нуля на битмапе

и как я помню, все идет оттого что пиксель квадратный. даже если их в экран воткнули 8 млн, это все равно квадраты. и всякие сглаживания за счет рисования дополнительных пикселий других оттенков сглаживают эти квадраты

рейтрейсинг же не имеет отношения к квадратам. это расчет освещения. стреляется луч, проходит через пиксель, у пикселя появляется цвет. но дальше без сглаживания пиксели будут как обычно - лесенками

ЧЯДНТ?

Ответить

Кстати, мне ещё лет 15 назад пришла в голову мысль, что мониторы с гексагональным растром намного меньше подвержены эффекту алиасинга и дают более изомерную картинку, чем с прямоугольным. И пиксели можно плотнее упаковать. Но перевести на это всю существующую технологическую базу столь же нереально, как и выпускать процессоры с троичной логикой.

И троичная адресация была бы охерительно удобна для координатной сетки таких мониторов. Эх, не туда мы свернули...

Ответить

В статье есть две ссылки про это. 

Ответить