Комментарии 9
И да, это сделано в целях экономии в вычислениях, так как каждый тексель становиться новым виртуальным источник освещения. Если для каждого восстанавливать позицию из глубины, то FPS сильно упадет.
Согласен, не факт) При небольшом количестве сэмплов может не упадет и останется на том же уровне.
Однако вопрос не в умножении vs обращение в память. При расчете непрямого освещения в любом случае придется обращаться к 3 текстурам: позиция, нормаль, flux или глубина, нормаль, flux. При том сэмплинг идёт по случайным координатам, так что с кэшем все грустно и так и так.
Как-то не очень понятно все же, как работает карта глубины с точки зрения источника освещения? С его точки зрения сцена же совершенно другая будет! Как она поможет основному рендеру? Например, камера смотрит в вертикальную стену, а источник освещения за стеной и чуть выше нее, так что в кадр попадает и что-то освещает. Получается, он освещает заднюю часть стены и с его точки зрения передней части вообще не видно, но именно эту часть показывает камера. И чем тут поможет глубина?
В карту глубины попадут значения, которые видны из источника освещения. Это будет задняя часть стены.
Во время расчета прямого освещения это означает, что передняя часть не видна, и передняя часть стены будет черной. (Если не светит глобально ambient)
А вот во время расчет непрямого освещения получиться:
Когда оно будет рассчитываться для пикселя из передней части стены, то сэмплируя соседние тексели (виртуальные источники освещения rsm), получиться, что они все на задней части стены. А это означает, что они не освещают наш пиксель (рассчитываться с помощью скалярного произведения) и соответственно дадут нулевой вкляд в непрямое освещение, так как задняя часть стены не видит переднюю.
Однако наш первоначальный источник освещения может находиться чуть выше этой стены и свет попадёт на пол перед передней частью стены. И вот виртуальные источники освещения от пола вполне могут осветить стену.
Конечно для всех этих вычислений используется карта позиций, нормалей и flux из RSM.э, а карта глубины нет. Но от нее не избавиться, ибо без нее не выйдет сформировать другие карты RSM.
Надеюсь, я смог ответить)
Reflective Shadow Maps (RSM) (отражающие карты теней)А не «карты отражённых/отражающих/отражающихся теней»?
«Отражающие карты» — это как-то… абсурдистски звучит.
Переводчику надо немного уметь в attributive adjectives.
Reflective Shadow Maps: Часть 1