Описание принципов PBR: какие правила оптики учитывает физически-корректный рендеринг Материал редакции

Немного теории о поведении света.

В закладки
Аудио

Мы изучили видео с YouTube-канала Brackeys о принципах, на которых строится физически-корректный рендеринг (Physically Based Rendering). В игровой графике любой объект перед попаданием в финальное изображение должен пройти через процедуру рендеринга. Для такой визуализации могут использоваться разные подходы.

PBR — это набор правил для рендеринга, который учитывает поведение света в реальности для создания правдоподобного изображения. Автор видео на YouTube-канале Brackeys описал основные правила, которыми пользуется PBR, и объяснил, почему графика получается настолько реалистичной. Рассказываем самое главное.

В реальном мире мы видим объекты благодаря тому, что свет падает на них, а глаз улавливает отражённые лучи. Так как все материалы по-разному отражают свет, мы можем отличить, например, дерево от металла.

Кроме того, есть несколько особенностей поведения света, влияющих на изображение, которые мы улавливаем глазами. PBR учитывает правила распространения света в реальности и имитирует их в графике для создания правдоподобных объектов. Есть несколько основных принципов, которые учитывает эта концепция. Вот несколько из них.

​При отражении света угол падающего луча равен углу отражённого луча. Но это работает только с идеальной зеркальной поверхностью
​В реальности одни материалы поглощают лучи...
​... а другие рассеивают
​При рассеивании свет расходится во все стороны, из-за чего глаз человека видит сам материал

Это приводит нас к мысли, что у объектов, которые отлично отражают свет, нельзя увидеть материал, из которого они состоят. Это работает и в обратную сторону — мы отлично видим сам материал, если объект плохо отражает свет.

У зеркальных объектов нельзя рассмотреть материал, из которого они сделаны​

Один из главных принципов PBR — объект не может отразить больше света, чем он получил. Также важное значение имеет гладкость материала.

Разные материалы по-разному отражают свет. При этом особенно выделяются металлические объекты, которые отражают 60-90% падающего на них света, а остальные материалы — 0-20%. Другая особенность металлов — они могут «подкрашивать» отражённый свет, например, это делает медь или золото.

Также есть свойство Френеля, которое заключается в том, что сила отражений зависит от угла зрения — чем ближе зеркальная поверхность к наблюдателю, тем слабее получится само отражение.

​Пример свойства отражения Френеля
Из-за эффекта Френеля отражения сильнее всего на границах объектов
Отражение в реальности. Вблизи видно плитку под слоем воды, а вдали её уже не разобрать​

Эффект Френеля больше заметен на гладких поверхностях, но при этом он есть на всех объектах. И PBR учитывает эту особенность.

На всех объектах есть несовершенства и изъяны, которые можно описать, как микроповерхность. Она играет большую роль в том, как свет отражается от материала.

Чем больше матовость объекта, тем более смазанным выглядит отражение

Концепция PBR используется во многих современных игровых движках и редакторах графики: Unreal Engine 4, Unity, Frostbite, Substance Designer и так далее. При этом PBR везде работает по похожему принципу.

Например, в Unity есть стандартный шейдер, который автоматически настраивает все эти аспекты, чтобы материал выглядел реалистично. По-умолчанию шейдер позволяет создать металлический эффект, но это не значит, что он применим только для создания металлических объектов.

В стандартном шейдере можно настраивать цвет, «metalness» и гладкость. Но не всегда нужно, чтобы этот эффект покрывал весь объект, поэтому используются текстурные карты, на которых указаны конкретные области применения.

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

Для изменения типа поверхности применяется рельефное текстурирование (normal maps), которое помогает усиливать детализацию без использования дополнительной геометрии. Это отлично подходит для изображения ударов, царапин и трещин.

Карты высот (heightmaps) применяются, чтобы показать разные по высоте уровни ландшафта. Heightmaps работают по тому же принципу, что и normal maps, но их рендеринг происходит на основе более сложной техники.

Occlusion maps используются, чтобы добавить объектам объём за счёт отображения освещённых и затенённых участков. Для этого применяются чёрно-белые текстуры.

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

{ "author_name": "Владимир Семыкин", "author_type": "editor", "tags": ["\u043e\u0441\u043d\u043e\u0432\u044b","\u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435"], "comments": 119, "likes": 119, "favorites": 432, "is_advertisement": false, "subsite_label": "gamedev", "id": 81762, "is_wide": true, "is_ugc": false, "date": "Sun, 17 Nov 2019 14:54:03 +0300", "is_special": false }
0
{ "id": 81762, "author_id": 94357, "diff_limit": 1000, "urls": {"diff":"\/comments\/81762\/get","add":"\/comments\/81762\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/81762"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
119 комментариев
Популярные
По порядку
Написать комментарий...
43

Очень поверхностно. Местами не верно, местами полный бред. Про фринеля абсолютно не верно. Не так это работает. Расстояние от поверхности до наблюдателя не играет никакой роли.

Ответить
–1

Ну, там уточнили, что от угла зависит

Ответить
20

А на самом деле всё зависит от угла к поверхности и индекса рефракции поверхности(IOR).
Больше ничего.

Ответить
3

Там пояснения этой фразы есть на картинке. Но это, походу, перевод такой. Там пропала фраза про изменение угла.
Как же я такое ненавижу.

Ответить
0

Да человек при переводе просто не понял, что имеется в виду, почему ближе там weak, а вдалеке strong, а не поняв, решил, что это функция от расстояния.

Ответить
0

Это перевод такой. Если посмотреть оригинальное видео, там все правильно рассказывается.

Ответить
4

Уж я то собаку съел на написании pbr рендера.

Ответить
0

А в чем принципиальное отличие PBR от Ray Tracing рендеров? Принцип работы RT кроется в его названии. Есть разные RT дивижки, но основополагающий принцип — из камеры испускаются лучи, много лучей, которые начинают собирать информацию с окружающих объектов. Есть первичные лучи - это те, которые вышли из камеры и вторичные лучи, которые выходят из первичных лучей. Всё это происходит с учетом глобального освещения. В итоге эти лучи определяют в какой цвет должен быть покрашен тот или иной пиксель.
Много статей по pbr прочитал, но они все под копирку одно и тоже пишут "физический точный рендер"...

Ответить
3

RT тоже может быть с pbr и без. PBR это парадигма и способ решения уравнения рендеринга. Почитай, что такое рейтрейсинг и его производные. И что такое растеризация.

Ответить
–9

о я знаю что такое рейтрейсинг рейтрейсинг это говно придуманное нвидией чтобы школьники купили их видеокарты так на дтф все писали я запомнил

Ответить
6

Рейтрейсинг это очень старая техника(есть статьи 60-х годов про использование её в синтезе изображений на плоттерах). Нвидиа тут не при чём.

Ответить
–5

ничего не знаю, я просто повторил то, что писали на выходи ртх карт

Ответить
–7

я знаю что такое рейтрейсинг 

говно придуманное нвидией

Уж я то собаку съел на написании pbr рендера

Сдается мне, ты собаку съел только на написании херни в интернетах. 

Ответить
0

Лучи разве из камера трейсят? Вроде они от источников света трассятся. Если ИС в сцене не будет, то картинка просто будет черной.

Ответить
2

Из камеры, потому что нет смысла пускать из источников т.к. не все что вылетает из источника добирается до камеры, это экономия ресурсов.

Ответить
0

На сколько я понимаю это особенность движка, обусловленная оптимизацией процесса просчета. Но в реальной физической модели освещения свет кастится от источников света, а не из камеры. Для понимания новичкам принципов работы PBR.

Ответить
0

Если взять VRay, то там идут от камеры.

Ответить
0

Ну ты сравнил. Тёплое с мягким. ;)

Ответить
0

Что тебе собака то сделала!?

Ответить
–11

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

Ответить
4

Писать на непрофильном ресурсе технически лонгриды просто так. Хорошая идея :)

Ответить
2

Все уже давно написано. Искать просто надо уметь.

Ответить
2

Я зря заминусовали.
Графический конвейер, pbr и что такое rtx здесь почти не знают. Начну писать потихоньку. Да и в одну статью не влезет.

Ответить
1

Я бы даже почитал, совсем не мой профиль, а как работает - интересно

Ответить
0

План статьи в процессе уже.

Ответить
2

Это классика)) особенно не круто когда человек будет искать материал а везде подобные...

Ответить
14

НЕ НАДО ПЕРЕВОДИТЬ ТЕРМИНЫ!

Ответить
6

Потому что запекание к пирожкам не имеет отношения! Тогда уж шейдеры давайте называть - затенителями!

Ответить
4

Перевод ведь не искажает смысл и не делает термин непонятным. Ты ведь как-то понял, что такое запекание в этом контексте? Тогда к чему пригары на тему того что не надо переводить термины? Он ведь не все переводит, а только те которые можно будет узнать после перевода.

Ответить
1

Искажает еще как,  сиди гадай что там автор перевел, это всегда сбивает, любая програмистская дейтельность включает термины на оригинальном языке

Ответить
5

Приведи в этой статье пример кроме запекания (перевод термина, который кстати и так известен абсолютно всем).

Ответить
0

Это не только про эту статью, а впринцыпе когда вот так начинают переводить(

Ответить
1

Просто когда человек говорит "затенители", ты сразу думаешь что речь именно о тенях. Определение "шейдеры" даёт более широкое понимание о чём речь. Хороший перевод слова "шейдеры", который не потеряет смысл будет и так хорошим и понятным любому читателю. Если он конечно понимает хоть что-то в том, чем занимается.
Сложности с понимаем переведённых терминов случаются только у новичков в своей деятельности. Те случаи что ты описываешь, когда совсем непонятно о чём автор, случаются совсем редко.

Ответить
0

Окей адепт переводов. Расскажи русским языком ,почему у меня золотой бублик 100% металик ,  в белой комнате, дает белый краешек ? 

Ответить
1

Потому что цвет каемки настраивается в шейдере, как правило. Поищи, я правд и английский термин не помню :D

И чет у тебя на металл вообще не похоже. Словно источник света отовсюду равномерный. 

Ответить
0

Бекос лайт воркает таким образом)

Ответить
0

Лайт? воркает таким образом что в центе у металика желтенький, а на экстримальных углах рефлективность становится белой? это лайт так воркает... оууукей 

Ответить
1

Эээ, каемка у металла отражается другим цветом. У каждого своим. У диэлектриков, как правило, белым. Сила и цвет эффекта настраивается в шейдере под нужный визуал и материал. 

Или что ты хочешь узнать, я не пойму? Чисто о терминах разговор или о физике процесса? У этого есть обычный научный термин, в том числе на русском, помнил бы я его еще :D

Ответить
4

Если говорить про текущую pbr модель для металлов, то цвет отражения меняется от base_color*light_color на прямых углах падения света до чисто light_color на нулевых углах. Поэтому отражения на малых углах будут белыми. В реальной физике все несколько сложнее, но текущая используемая аппроксимация уравнений френеля работает так

Ответить
1

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

Ответить
0

хитрый какой)  ну лана))

Ответить
0

почему у золотого бублика каемка белая?)

Ответить
0

Потому что так стоит в шейдере в реализации этого физического явления? По крайней мере в блендоре ее цвет и размер легко настраивается. Отражения Френеля, точно.

Ответить
0

нет, каемка белая, каемочка появилась с ggx ) Snowball правильно сказал.

Ответить
0

Т.е тебя суть работы шейдера интересовала, ок. 

Ответить
0

Нот май праблем дюд втф обратитесь к уполномоченному отделу по лайтнингу и его ворканью

Ответить
0

Проблема в том, что ты не понимаешь физики процесса как и реализации его в PBR. Но вдруг решил, что перевод терминов является правильным и корректным.  Я уж не знаю почему. Видимо что то в голове замкнуло. 

Ответить
6

Потому что он правильный и корректный. С "запеканием нормалей" и других карт давно ни у кого проблем нет. "Smoothness/Roughness" — "гладкость/шероховатость". Ещё иногда "metalness" как "металличность" переводят.

Ответить
–1

I cant understand what do you wanna tell me, because all your text is translated to russian

Ответить
–3

"програмистская дейтельность"
Русским языком овладейте, а потом беритесь за английский.

Ответить
–2

когда ноунейм хочет что-то брянуть

Ответить
0

Напереводят терминов, а потом думай, что там имелось ввиду.

Ответить
4

Впервые встречаешь перевод bake как запечка? Мне одного раза хватило чтоб потом понимать что это в любом переводе

Ответить
0

Да вообще ненужно ничего переводить, давайте уж на английском говорить и писать, походу комментатор к этому клонит.

Ответить
1

Статьи переводить не очень то и нужно

Ответить
0

Учёные всего мира, сворачиваемся. Теперь пилим научные статьи только на родном языке и не смеем переводить на другие чтоб поделиться.

Ответить
0

ты считаешь эту статю научной? лол)  Я даже смысл статьи не стал комментить, скинул нормальную статью от производителя сабстанса. 

Ответить
0

Я не считаю эту статью. Чел выше обобщил. Ну и я тоже следом

Ответить
0

да хоть размытие по гауссу, вас только за такой из нормальных студий ссаными тряпками гнать будут.  А так делайте что хотите)

Ответить
0

Лол. Студий чего? Разработки? За то что сказал запечка или запекание? Я правильно понял?

Ответить
2

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

Ответить
0

Ты говоришь - оо какая у этого материала гладкость!

Ответить
2

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

Ответить
0

если аналога нет, тогда используем заимствованный англицизм

Ответить
2

Запечка устоявшийся термин в ру сегменте. 

Ответить
–4

Можно ли сказать - запечонка?  Запеканочка моя запеканочка =)  Зато про диэлектрыки и метальчики в статье нет про PBR.  А так запечонка ммм..

Ответить
0

Нормали запек, запечку сделал, бэйкинг готов? Равноценно. С запеканкой уже придумываешь. 

А статью я не читал, ничего нового все равно не узнаю :)

Ответить
0

диэлектрыки и метальчики

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

Ответить
0

Не электротехника, а электродинамика. Свет — электромагнитная волна, оттуда все законы взаимодействия со средами.
Геометрическая оптика следует из уравнений Максвелла.

Ответить
0

это почему же?

Ответить
8

Гораздо больше интересно, что именно PBR не учитывает из реальных физических законов, как-то раньше об этом не задумывался. О том, что он из себя представляет, уже много писали, а вот о том, что он передаёт недостоверно я как-то информации не видел, в том числе в этой статье. Может, кто-нибудь знает материал на эту тему?

Ответить
6

https://google.github.io/filament/Filament.md.html
Вот, например. Описание PB-рендера в отдельно взятом движке, с математикой, с объяснением всех фейков, как, откуда и зачем они берутся.

Ответить
0

Очень круто! заберу себе в чулан) спасибо.

Ответить
0

Да, спасибо большое, очень подробно и круто, обязательно прочитаю)

Ответить
3

На самом деле довольно много чего. Из самого очевидного - спектральные эффекты, например, как от бензиновых пленок. Фейки для этого дела есть конечно, но не видел чтобы в играх использовались реальные модели. Также текущие основные модели основаны на микрофасетной модели поверхности, которая не все поверхности хорошо представляет (мох, ткань как простые примеры). Анизотропные отражения насколько я знаю тоже в основном фейкаются. Более того, все текущие используемые brdf для физически корректного рендеринга на самом деле не совсем физически корректны, потому что настоящие интегралы освещенности никто в реалтайме считать не будет, используются аппроксимации разумной точности, которые не идеально попадают в измерения для реальных материалов. Даже закон сохранения в общем случае может не соблюдаться.

Ответить
1

рефракт совсем простой, каустику не учитывает. 

Ответить
0

Так это не особенность PBR, а ее реализации (модели хранения информации о свете в конкретном движке),  Luxrender и каустику и рефракции воспроизводит.

Ответить
6

Physically-based render - это рендер, ОСНОВАННЫЙ на физике.
PBR - это не система, которая всю реальную физику света учитывает и отражений. Это конкретно основанный на конкретных правилах. Он не может быть физически корректным, так как не способен учитывать реальные данные всего и вся вокруг.

А вообще, я летом писал статьи, которые максимально покрывают объяснение того, как работает PBR. Глянуть можно по ссылке ниже.

Ответить
4

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

Ответить
0

TAA  вообще "бюджетное" сглаживание, ведать с ним ещё и сложно работать, в большинстве проектов оно просто замыливает картинку, но видел и пару проектов с хорошей реализацией.

Ответить
0

в новом коде фильмик очень хорошое сглаживание, но мылит конечно картинку. зато реально как фильм :)

Ответить
2

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

Ответить
0

оно искажает, но если выставить максимальный уровень то этого не так видно как-раз из-за мыла 

Ответить
0

Об этом не знал, спасибо за ликбез, но пока производительности не хватает будет вот такие костыли.

Ответить
0

хотел привести как раз COD как среднего качества реализации.Но я удивился как его качественно реализовали на новом двигле WoT, с перва там были артефакты на границах объекта, но это быстро поправили и там TAA эталоно реализовано, картинка найс, мыльности почти нет.

Ответить
0

понял, но в танки я не играю ) 

Ответить
0

Да я тоже давно не играю, просто интересна была техническая реализация.

Ответить
0

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

Ответить
0

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

Ответить
1

Есть причины, чисто дизайнерские. Много бликов делают картинку грязной. Инфы не хватает в пикселях для всех перепадов цвета. В их колве, точнее. Мало, пока 4к нейтива нет.

Ответить
0

в итоге все равно  причина именно в алязинге,  а не том, что разрабы Не могут делать материалы.
4к, кстати,  тоже  не решает проблему спекуляр алязинга,  да  и 8к dsr   тоже  не панацея( так что хз даже,  как  будут  решать  проблему,    не прибегая  к одифуживанию бликов   временной сглажкой.

Ответить
0

А в cgi рейтрейсе шумодавы убивают блики, если перестараться))

Корочь, внезапно, ртх. Шумодав на нейронках, лучики, что не дают алиайзинга и будет красиво. В 4к, штоб без совсем каши. А пока пускай хоть металл от диэлектрика отличается и уже хорошо. 

Ответить
0

ну да, нужен умный подход.  Ведь  в кино  даже  в 720п каком-нибудь   нет и лесенок  и проблемы материалов.

Ответить
0

Всё никак не доходят руки до реализации SMAA-сглаживания, тоже интересно посмотреть, что оно из себя представляет, но вроде должно быть хорошим. А пока, чтобы сильно не заморачиваться, прикрутил FXAA, так это вообще не сглаживание – местами его словно нет вообще )))

Ответить
2

Префильтрованные отражения штука отличная, рендеру теперь нарадоваться не могу, но вот когда потребуются динамические отражения... до сих пор пока нет никаких идей, как обманывать зрителя :)

Ответить
1

По старинке, вешать камеру и транслировать на нужный обыект.

Ответить
1

Рокстар уже много лет вешает вторую камеру и просто транслирует с нее картинку. То же самое видно было в геймплее нового Киберпанка. Конечно такую картинку передают в более низком разрешении и без теней, но она честно отражает окружение

Ответить
0

Это всё ерунда, я имею в виду глубину резкости – префильтрованные отражения так называются, потому что считаются в несколько MIP-уровней от самого чёткого до самого размытого и при PBR-рендеринге выводится MIP, соответствующий степени шероховатости выводимого фрагмента. А при выводе динамических отражений возможно считать только чёткое отражение, как в зеркале, что не соответствует тому качеству, с которым рендерится статичная картинка с использованием префильтрованных отражений.

Ответить
0

И в чем проблема генерировать на лету MIP'ы и размывать отражение?

Ответить
0

В том, что это техника не для реального времени!

Ответить
0

Если не нужно особой честности, то для реального времени, я думаю, можно попробовать использовать технику Gaussian pyramid.

Ответить
0

Делать всё матовым!

(даже воду)

Ответить
1

Вспомнил, как в начале-середине нулевых увлекался разработкой игр, тогда системы материалов были очень простыми - specular/diffuse/ambient и вершинное освещение. Причем для динамики обычно использовали диффузную модель, а освещение уровня - равномерная ambient компонента и лайтмапы. Потом шейдеры появились, можно стало использовать попиксельное освещение, карты теней, нормалей и блеска, постэффекты. Где-то в это время я и бросил это увлечение. Со временем индустрия ушла так далеко, что я сейчас с трудом понимаю, как работают современные технологии в играх.

Ответить
1

Мне кажется на эту тему можно было бы написать прекрасный лонгрид, а тут все как-то ужато и коротко

Ответить
0

https://academy.substance3d.com/courses/pbrguides  вот вот ! какой тебе еще лонгрид?) 

Ответить
0

Ну и где тогда миррор-рефлекшены в геймах 2к19?

Ответить
0

лост технлоджиз елдерсов

Ответить
1

А нету почти их. С современным графоном дорого. 

Ответить
0

Запусти рдр2) но честные отражения, кажется, только в бф5 с ртх

Ответить
0

С ртх и начался трейси скорее всего в один лучик.  

Ответить
1

Так должно ж было это когда то произойти)

Ответить
0

в pbr нет такого понятия как миррор рефлекшен)  Ты скорее о том что в играх нет трейсинга рефлекшена, а ложь, обман и провокация! 

Ответить
0

Я и не знал что Substance Designer игровой движок)

Ответить
0

а где это написано?

Ответить
0

упустил "редактор графики", моя вина)) Хотя я бы назвал его редактор материалов 

Ответить
0

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

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "chvjx", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbl", "p2": "gnwc" } } } ]