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

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

Демо

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

0
8 комментариев
Написать комментарий...
Дядя Юра

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

Ответить
Развернуть ветку
xyzw
Автор

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

Ответить
Развернуть ветку
Дядя Юра

Спасибо, поизучаю на досуге

Ответить
Развернуть ветку
Loser Antbear

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

Ответить
Развернуть ветку
xyzw
Автор

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

Ответить
Развернуть ветку
Cool Studio

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

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

Ответить
Развернуть ветку
xyzw
Автор

Тема отсюда, + свои твики чтобы кейворды были жирным. https://marketplace.visualstudio.com/items?itemName=tinkertrain.theme-panda

Ответить
Развернуть ветку
Cool Studio

Благодарю

Ответить
Развернуть ветку
Читать все 8 комментариев
null