Добавил поддержку динамический камеры

Потратил эти выходные чтобы подружить метод скрин-спейс кэширования свечения с динамической камерой. Здесь на демо размер проб для подсчета свечения – 8x8, семплы смешиваются из 8 последних кадров. 2 отражения при реймарче и 32 луча на одну пробу в кадре. В среднем нужно делать 0.5 реймарчей на пиксель. Результат потом еще размывается билатеральным фильтром.

Демо

Пришлось много всего переписать чтобы кэш заработал с динамической камерой. Теперь возьмусь интегрировать обратно в саму игру. Здесь осталось доработать генерацию SDF чтобы учитывать offscreen окклюдеры и помедитировать над производительностью.

3636 показов
269269 открытий
8 комментариев

Крутяк, в каком инструментарии ведётся разработка если не секрет? Заинтересовало что прям в лайве можно менять поведение.

Ответить
Автор

Это Bevy, WGPU и WGSL. Bevy умеет на ходу перекомпилировать шейдеры если заметит что файл обновился.https://github.com/bevyengine/bevy/blob/v0.8.1/examples/asset/hot_asset_reloading.rs

Ответить

Как лайфхайк, вместо того, чтобы let-ить PI, его лучше определить в константу через radians(180).

Ответить
Автор

Спс! поправлю

Ответить

Красиво. А как планируете распространять игру? Steam?

PS что-за тема в vscode? :)

Ответить