Фильтрация карты куба для теней VSM

#opengl #3d #metal

#opengl #3D #Металлические

Вопрос:

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

Итак, вместо рендеринга каждой грани с использованием поля обзора 90 градусов я использую более широкое поле зрения, которое зависит от размера ядра размытия и рендеринга в текстуру. Затем я размываю текстуру и сохраняю только ту часть, которая соответствует углу обзора 90 градусов грани карты куба, и копирую ее на грань карты куба. К сожалению, хотя артефактов стало меньше, они все еще существуют. Кто-нибудь может подробнее рассказать об этом? Я что-то упускаю? Возможно, я неправильно настраиваю более широкое поле зрения. Любые идеи приветствуются!

Комментарии:

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

2. @EgorShkorov Я использую высокопроизводительную реализацию размытия по Гауссу для 2D. Размывание карты куба происходит намного медленнее, если вы хотите получить качественные результаты, потому что вам нужно много образцов. К сожалению, это не вариант для меня.