Welcome, guest. You can be a Login или register
Author
Topic title
Берсеркер
Offline
Суровый челябинский программист
2239 posts
Karma 198
Свершилось то, о чём я так долго мечтал: сделал каскадные тени от солнца.

Это пока первый шот, в принципе работает, теперь осталось, как всегда, причесать и портировать в соседние проекты: rtcw и mme.
Для танкистов, не знающих про эту технологию, скажу вкратце: она позволяет получать четкие тени на уровнях любого размера. На шоте специально выбрана огромная карта. Видно, что тень от игрока четкая. А была очень размыта, пятно еле заметное ))))
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Barnes
Offline
Здравствуй, мой маленький черный друг. Я хочу сыграть с тобой в одну игру....
1797 posts
Karma 145
Отлично)
Какой богатый внутренний мир! Дай-ка посмотрю.....
Берсеркер
Offline
Суровый челябинский программист
2239 posts
Karma 198
Озадачился сильным падением FPS. Пошаманил, поколдовал... Вуаля! Прирост скорости более чем в 2 раза! Сравните первый скриншот со скриншотом в предыдущем моём посте.
Инфа для разработчиков: дело оказалось вот в чём. Первый вариант каскадных теней использовал упаковку четырёх теневых карт в одну текстуру RGBA32F. Поменял эту текстуру на четыре стандартных формата R32F, и всё залетало! Видяха GTX750, видимо не нравятся джифорсу такие толстые текстуры. Может дело в возросшем количестве кэш-промахов при доступе к текстуре, ведь дёргал пиксели из разных цветовых каналов.






Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
uN-DeaD!HOX
Offline
9 posts
Karma 0
смотрится идеально четко, может даже излишне? :) Обычно делают команды настройки теней, чем больше они мылятся, тем больше fps, для слабых компьютеров пригодилось бы
Берсеркер
Offline
Суровый челябинский программист
2239 posts
Karma 198
Параметры r_sunShadowMapSize* спасут юного падавана ))

r_sunShadowMapSize default "0" CVAR_ARCHIVE | CVAR_LATCH
При 0 - автоматический выбор размера теневой карты. Допускаются числа от 512 до 2048, выбрано будет ближайшее значение к степени 2.
r_sunShadowMapSizeLod default "0" CVAR_ARCHIVE | CVAR_LATCH
Если работает автовыбор размера теневой карты, то параметр корректирует выбор, от 0 до 2.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Берсеркер
Offline
Суровый челябинский программист
2239 posts
Karma 198
Сборка с каскадными тенями от солнца:
https://cloud.mail.ru/public/5CoC/2gvANuo4U

r_sunLightCascadeFactor "256" CVAR_ARCHIVE | CVAR_LATCH
Расстояние от игрока до границы первого каскада солнечного света.
Расстояние до границы второго каскада рассчитывается как sunLightCascadeFactor * 2.
Расстояние до границы третьего каскада рассчитывается как sunLightCascadeFactor * 4.
Увеличивая данный параметр, можно сделать тени расплывчатее.
Нельзя уменьшить параметр до значения, меньше 256.
Нельзя увеличить параметр до бесконечности, каскады упрутся в габариты карты.

r_lightShadowMap32Bits "1" CVAR_ARCHIVE | CVAR_LATCH
При 1 используется 32-битная текстура теневой карты света.
Иначе используется 16-битная текстура.

r_sunShadowMap32Bits "1" CVAR_ARCHIVE | CVAR_LATCH
При 1 используется 32-битная текстура теневой карты солнца.
Иначе используется 16-битная текстура.

Прошу сравнить скорость рендеринга с 16 и 32 битными теневыми картами.
На моей GTX750 почему то вышло, что 32-битные карты оказались быстрее 16-битных.

Скоро выложу сборки RTCW и MME.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Берсеркер
Offline
Суровый челябинский программист
2239 posts
Karma 198
выложу пару DLL, если вдруг не запустится.
Класть их в папку с игрой, т.е. где лежит Q3Bers.exe
https://cloud.mail.ru/public/Dh4j/DRUbNaSgW
https://cloud.mail.ru/public/FuEw/gDi2L6eax
Поставил новую студию 2015, и чёт как то не так скомпилировалось, эти либы должны были быть внутри EXE. Разберусь, но завтра.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
V_2540
Offline
Hell Awaits You
433 posts
Karma 75
Серёга,у меня ничего в плане просадок\роста фпс не замечено(где-то на уровне погрешности +-1-2 фпс).Всё гладенько лЁтает.
Каждый заслужил погостить у Старика,и каждый по своим заслугам
Берсеркер
Offline
Суровый челябинский программист
2239 posts
Karma 198
Radeon HD5830 больше любит 16-битные текстуры. FPS чутка больше.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Берсеркер
Offline
Суровый челябинский программист
2239 posts
Karma 198
Сборки Q3Bers и Q3Bers_mme с каскадными тенями солнечного света:
https://cloud.mail.ru/public/6VHh/3meQV6LxD

Что нового:
1. Game-код теперь сообщает всем клиентам в сети о попытках или факте использования чит-кодов.
2. Добавлен детект brand-имени CPU и доп.систем команд.
3. r_sunLightCascadeFactor def=256 arch+latch Расстояние до второго каскада (не может быть меньше 256). Если карта мала, то автоматически подстроит размеры каскадов, что не даст выйти каскадам за пределы карты.
4. r_sunShadowMap32Bits def=1 arch+latch При 1 используются 32-битные теневые карты для солнца. При 0 - 16-битные карты.
5. r_lightShadowMap32Bits def=1 arch+latch При 1 используются 32-битные теневые карты для обычных источников света. При 0 - 16-битные карты.
6. r_showcascades def=0 cheat При 1 подсвечивает каскады солнечного света: ближайший - красный, далее - зеленый, потом - синий, последний - белый. Для отладочных целей.
7. r_lockCascades def=0 cheat При 1 блокирует перемещение каскадов за камерой. Для отладочных целей.
8. Реализовано отсечение объектов, не нужных для рисования тех или иных каскадов. r_speeds 4 покажет сколько отброшено и сколько всего объектов для солнечной тени.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.