Субдж.
Решила рендерить тени от дирекшнл лайта в отдельный буффер. Естественно с MSAA (: и выключеным авто-ресолвом. Потом в основном форвард-пасе применять её. Но чтоб MSAA правильно заработало нужно сэмплит точно сэмпл-в-сэмпл. И чёт не могу найти как так делать
Я правильно понял, что при отрисовке геометрии в MSAA-текстуру нужно сделать чтение из MSAA-текстуры в той же позиции, в которой выполняется пиксельный шейдер?
Если да, то нужно в пиксельном шейдере, который рисует геометрию в Forward-проходе, объявить переменную с семантикой SV_SampleIndex, и значение этой переменной передавать в функцию Texture2DMS::Load вторым аргументом.
При явном использовании SampleIndex фрагметный шейдер выполняется для каждого сэмпла, а без этого - один раз, только тест глубины запускается для каждого сэмпла.
/A\
Жпп
Battle Angel Alita
> Но чтоб MSAA правильно заработало нужно сэмплит точно сэмпл-в-сэмпл.
Биндишь текстуру в шейдер как Texture2DMS и семплишь оттуда
/A\
Точно индексы сэмплов совпадать будут?
Battle Angel Alita
А как раньше было не в отдельном буфере ? :)
Battle Angel Alita
> выключеным авто-ресолвом
мобилки?
Battle Angel Alita
> Но чтоб MSAA правильно заработало нужно сэмплит точно сэмпл-в-сэмпл
если у тебя мобилки ( а где еще есть тайловая архитектура с авто резолвом ), то зачем тебе даже не пиксель перфект, а мсаа семпл перфект точность? На мобилках обычно все делают наоборот(большое разрешение, дохлая гпу и все для маленького экрана), перфы не хватает и пытаются все рисовать в уменьшенном разрешении, а потом апскейлить(если это не 2д игра конечно).
Опять же, если мобилки, то там еще типы шейдеров, которые пер тайл работают( сам я до них не добрался в свое время ), если ты делаешь какой-то серьезный рендер на мобилках, то тебе придется с ними возиться, потому что грузить туда сюда в тайлы данные - это не дешево.
> выключеным авто-ресолвом
не думаю, что это хорошая идея на мобилках работать с msaa текстурами как на ПК, вся условно бесплатность мсаа на мобилках, либо ты работаешь с данными на тайле, не выгружая их в системную память, либо выгружаешь/загружаешь уже отрезолвленный (не мсаа) цвет или другие данные(да и то по максимому пытаются пассы склеить/объединить).
Вы на реальном устройстве смотрели итоговую картинку? ИМХО артефакты от не мсаа теней на мсаа кадре - это наименьшая из проблем в рендерах, ради которой не шибко хочется растрачивать перфу. Есть куча мест, куда можно наборщить ( да хоть больше и жирнее партиклов рисовать ), чем делать мсаа перфект тени.
0xFFFFFFFF
Позвольте полюбопытствовать , зачем мсаа при тенях?
innuendo
я неправильно понял автора темы?
0xFFFFFFFF
Я просто не могу понять автора темы
innuendo
я тоже, обычно берут ближайшую или самую дальнюю глубину, смотрят с какими артефактами проще жить и идут дальше.
У автора в голове каша но нет рецепта
innuendo
Мне не интересно слушать про твои альтернативные идеи как и что можно было сделать. Мне интересно узнать именно то что в шапке темы написано
Battle Angel Alita
можешь больше вводных данных дать?
какая платформа, апи, и почему именно так надо.