Допустим, у вас есть окно 1024x1024. Вам нужно получить цвет в каждом пикселе, что может быть дорого, если вы делаете трассировку лучей с несколькими отражениями. Вместо этого вы делите экран на тайлы 8x8. Итого 128x128 тайлов. Затем вы случайным (можно напр. использовать Halton Sequence) образом размещаете пробу внутри каждого тайла и запускаете алгоритм для сбора света для этой пробы. Поскольку у вас есть только 128x128 проб (по одной на каждый тайл), вы можете использовать область 128x128 пикселей для сбора всех данных, отобранных в одном кадре. Поскольку ваше исходное окно имеет размер 1024x1024, вы можете использовать ту же текстуру в качестве атласа для хранения 8 строк и 8 столбцов изображений хранящих 128x128 проб. Таким образом, вы можете позволить себе кэшировать до 8x8=64 кадров или, другими словами, для каждой пробы вы можете хранить 64 значения. Полное демо (не влезло в превью):
Вот таким должен быть DTF!
Согласен)
Привет.
Очень круто выглядит - немного завидую, потому что даже не совсем понимаю как это всё работает
Как допилю, то обязательно напишу про свое приключение с разработкой всего пайплайна с нуля. Три месяца назад я себе тоже очень отдаленно представлял как это должно быть сделано.
Красивое
Комментарий недоступен
Здесь screen space пробы, они всегда в 2D. В 3D много где будет точно сложнее и меньше возможностей срезать углы, но не при расчете проб.