w23 / xash3d-fwgs

Vulkan Ray Tracing fork of Xash3D FWGS engine. Intended to be merged into master at some point in the future.
162 stars 16 forks source link

rtx: make SURF_SKY emissive and sample skybox #227

Open w23 opened 2 years ago

w23 commented 2 years ago

This might be more problematic than beneficial. It's only somewhat beneficial in case of small SURF_SKY windows in dark rooms. But for large open spaces it will completely overflow emissive surfaces budget.

0x4E69676874466F78 commented 2 years ago

Вроде разобрались?

w23 commented 2 years ago

Не до конца. Если я правильно помню, сейчас мы собираем просто все "солнца" для области, пуляем в них лучи и определяем, попали ли мы в SURF_SKY. Это решённая половина проблемы. Вторая половина проблемы это эмбиентное освещение от самого неба, как от скайбокса/кубмапы. Вот тут неясно, что делать:

Наверное правильнее всего было бы:

0x4E69676874466F78 commented 2 years ago

А, вспомнил. Самая жопа на картах uplink у нас нет правильного смешивания солнц. Очень жёсткие границы которые не исправить никак патчами.

0x4E69676874466F78 commented 1 year ago

На тему SURF_SKY, для 100% совместимости с QRAD нужно отбрасывать тени от внутренних SURF_SKY. Я бы вывел это отдельным кваром. Вот видно как от них есть тень: image У нас тени нет, реализм, но сломан дизайн: image

Возможно это связано с #228:

can have a special skybox hit shader

w23 commented 1 year ago

Что значит "внутренний SURF_SKY"? Как я его отличу от остальных? Тень от неба считается очень просто: упёрлись лучом в SURF_SKY -- значит нет тени. Если упёрлись во что-то другое -- значит есть. Какой именно цветовой дифференциацией штанов SURF_SKY заниматься, непонятно. Может, там какой флажок есть? Надо в курад глянуть, что они там делают.

0x4E69676874466F78 commented 1 year ago

Как видно здесь у здания есть продолжение в виде SURF_SKY, а за зданием ещё другой SURF_SKY. image image

В целом это низкий приоритет, есть задачи поважнее. cs_delta_assault уже сдизайнена нормально. Но de_dust похожая тема (хаха — нереализованный скабокс в растеризации помогает отлаживать): image image

Вывод: вертикальное продолжение обычной геометрии в виде SURF_SKY считается за обычную геометрию по части обработки теней.