ПрограммированиеФорумГрафика

Как в шэйдере понять, в каком MSAA сэмпле фрагмент находится?

Страницы: 1 2 3 Следующая »
#0
18:08, 21 сен 2024

Субдж.
Решила рендерить тени от дирекшнл лайта в отдельный буффер. Естественно с MSAA (: и выключеным авто-ресолвом. Потом в основном форвард-пасе применять её. Но чтоб MSAA правильно заработало нужно сэмплит точно сэмпл-в-сэмпл. И чёт не могу найти как так делать

#1
18:52, 21 сен 2024

Я правильно понял, что при отрисовке геометрии в MSAA-текстуру нужно сделать чтение из MSAA-текстуры в той же позиции, в которой выполняется пиксельный шейдер?
Если да, то нужно в пиксельном шейдере, который рисует геометрию в Forward-проходе, объявить переменную с семантикой SV_SampleIndex, и значение этой переменной передавать в функцию Texture2DMS::Load вторым аргументом.

#2
19:55, 21 сен 2024

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

#3
22:19, 21 сен 2024

/A\
Жпп

#4
7:04, 22 сен 2024

Battle Angel Alita
> Но чтоб MSAA правильно заработало нужно сэмплит точно сэмпл-в-сэмпл.
Биндишь текстуру в шейдер как Texture2DMS и семплишь оттуда

#5
7:31, 22 сен 2024

/A\
Точно индексы сэмплов совпадать будут?

#6
7:43, 23 сен 2024

Battle Angel Alita
А как раньше было не в отдельном буфере ? :)

#7
(Правка: 12:38) 11:14, 23 сен 2024

Battle Angel Alita
> выключеным авто-ресолвом
мобилки?

Battle Angel Alita
> Но чтоб MSAA правильно заработало нужно сэмплит точно сэмпл-в-сэмпл

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

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

> выключеным авто-ресолвом
не думаю, что это хорошая идея на мобилках работать с msaa текстурами как на ПК, вся условно бесплатность мсаа на мобилках, либо ты работаешь с данными на тайле, не выгружая их в системную память, либо выгружаешь/загружаешь уже отрезолвленный (не мсаа) цвет или другие данные(да и то по максимому пытаются пассы склеить/объединить).

Вы на реальном устройстве смотрели итоговую картинку? ИМХО артефакты от не мсаа теней на мсаа кадре - это наименьшая из проблем в рендерах, ради которой не шибко хочется растрачивать перфу. Есть куча мест, куда можно наборщить ( да хоть больше и жирнее партиклов рисовать ), чем делать мсаа перфект тени.

#8
11:36, 23 сен 2024

0xFFFFFFFF
Позвольте полюбопытствовать , зачем мсаа при тенях?

#9
11:57, 23 сен 2024

innuendo
я неправильно понял автора темы?

#10
12:04, 23 сен 2024

0xFFFFFFFF
Я просто не могу понять автора темы

#11
12:10, 23 сен 2024

innuendo
я тоже, обычно берут ближайшую или самую дальнюю глубину, смотрят с какими артефактами проще жить и идут дальше.

#12
12:23, 23 сен 2024

У автора в голове каша но нет рецепта

#13
13:42, 23 сен 2024

innuendo
Мне не интересно слушать про твои альтернативные идеи как и что можно было сделать. Мне интересно узнать именно то что в шапке темы написано

#14
14:32, 23 сен 2024

Battle Angel Alita
можешь больше вводных данных дать?
какая платформа, апи, и почему именно так надо.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика