Я смотрю, как я собираюсь реализовать сглаживание в отложенном рендерере освещения. Таким образом, три прохода, проход геометрии, пропуск накопления освещения, а затем второй проход геометрии для затенения.Multisampling, как читать «уникальные» тексели
С обычной мультисэмплингом, MSAA, целью является только мультисэмпл пикселей на краях многоугольника. И для каждого треугольника записывайте результат шейдера фрагмента в подпикселы, которые он покрывает. Но, конечно, это известная проблема, что это немного проблематично с отложенным освещением.
Цель состоит в том, чтобы избежать оценки всех подпикселей во 2-м и 3-м проходах, поскольку в основном это будет суперсэмплинг. Если кто-то знает другой (лучший/возможный) способ достижения этого, я бы очень хотел его услышать. Но вот моя идея:
Если вы можете сделать фрагментарный шейдер в первом проходе, напишите только первый подпиксель, который покрывает треугольник. Это позволяет вам игнорировать неписаные тексели в проходе освещения. И затем, наконец, во втором прохождении геометрии, как-то читайте назад только первый подпиксель, который соответствует треугольник, который мы написали первоначально, а затем запустили освещение (и теперь записываем все покрытые тексели как обычно, так что результат может быть разрешено). Таким образом, только «уникальные» тексели будут оцениваться на 2-м и 3-м проходах.
Может ли кто-нибудь сказать, как это можно сделать в glsl (или подтвердить, что это невозможно)? Я действительно не вижу причин, по которым это теоретически не было бы возможно, но также не вижу никакого способа сделать это в glsl.
Хорошо, я вижу проблему с перекрытием. Но если вы пишете все покрытые образцы в первый проход, то в проходе освещения обнаружите повторяющиеся значения и только напишите в первую из каждой группы. Затем во втором примере прохождения геометрии первый охватываемый субпиксель (работает, потому что мы повторно используем буфер глубины). Где только накладные расходы - обнаружение дубликатов в шейдере освещения. Единственная проблема заключается в том, что дубликаты могут быть похожими на совпадения. Но даже если вы делаете суперсэмплинг в проходе освещения, все еще будет время, полученное в проходах геометрии по сравнению с суперсэмплингом? – Aedoro