#1641
22 июля 2018 в 10:29
#1642
22 июля 2018 в 20:22
Дополнение: гром и молнии, в отличии от дождя и снега, довольно самостоятельные эффекты и они должны совпадать на всех клиентах игры.
Правильным было бы сделать это через сервер. Но гроза и молнии - client-side эффекты, атмосферными эффектами рулит cgame-код.
Сервер мы не трогаем, сетевой протокол тоже, клиенты между собой не общаются от слова "совсем".
Но не смотря на всё это, я сделал полную синхронизацию: время вспышек и грома, задержки между вспышками и громом, одинаковость звуков и последовательности вспышек. Всё это рандомно и в то же время - синхронно между клиентами одной игры.
Как бесплатный пряник: гром и молнии в игре и в демо-записи этой игры совпадают.
Правильным было бы сделать это через сервер. Но гроза и молнии - client-side эффекты, атмосферными эффектами рулит cgame-код.
Сервер мы не трогаем, сетевой протокол тоже, клиенты между собой не общаются от слова "совсем".
Но не смотря на всё это, я сделал полную синхронизацию: время вспышек и грома, задержки между вспышками и громом, одинаковость звуков и последовательности вспышек. Всё это рандомно и в то же время - синхронно между клиентами одной игры.
Как бесплатный пряник: гром и молнии в игре и в демо-записи этой игры совпадают.
#1643
24 июля 2018 в 05:31
запилил видео gameplay со вспышками молнии и громом с дождём, карта q3dm17:
https://www.youtube.com/watch?v=HOhM6SjvMe8&feature=youtu.be
PS: помнится был какой то подобный мувик с этой картой, там тоже пара пассажиров под дождем кусались )))
И до кучи, эта же карта, дуэль, падает снег:
https://www.youtube.com/watch?v=zRjoNTdAJm0&feature=youtu.be
https://www.youtube.com/watch?v=HOhM6SjvMe8&feature=youtu.be
PS: помнится был какой то подобный мувик с этой картой, там тоже пара пассажиров под дождем кусались )))
И до кучи, эта же карта, дуэль, падает снег:
https://www.youtube.com/watch?v=zRjoNTdAJm0&feature=youtu.be
#1644
19 августа 2018 в 13:52
http://berserker.quakegate.ru/Berserker@idTech3_20180819.rar
Обновление для всех 3 проектов.
- в атмосферные эффекты к дождю можно добавить гром и вспышки молнии, см. прилагаемую документацию.
- мелкие баг-фиксы:
- если зайти в режим редактора и затем запустить дёмку, редактор продолжал действовать.
- монитор переходил в энергосбережение во время просмотра дёмок, когда долго не трогали мышь или клаву.
- команда редактора atmosphericEffect не работала как следует.
- на некоторых полигонах карт "шумел" артефакт самозатенения солнечного света.
- возможно что-то еще по мелочи, но уже забыл что...
- в RTCW камрадом Eugeny Panikarowsky исправлен баг: при открытии двери ключем, за одну дверь дернуть, то обе откроются, а если за другую дернуть, но никакая не открывается. Если во время игры поменялось значение key у одной двери, то у другой двери оно оставалось старым.
ЗЫ: вспомнил что еще: если на карте много звуков и hunk-памяти для звуков не хватает, звуковой движок ищет самый старый звук и удаляет его из памяти, загружает вместо него новый. отсюда могли быть тормоза без видимой причины. Теперь пишет в консоль про это и советует увеличить память для звуков.
Обновление для всех 3 проектов.
- в атмосферные эффекты к дождю можно добавить гром и вспышки молнии, см. прилагаемую документацию.
- мелкие баг-фиксы:
- если зайти в режим редактора и затем запустить дёмку, редактор продолжал действовать.
- монитор переходил в энергосбережение во время просмотра дёмок, когда долго не трогали мышь или клаву.
- команда редактора atmosphericEffect не работала как следует.
- на некоторых полигонах карт "шумел" артефакт самозатенения солнечного света.
- возможно что-то еще по мелочи, но уже забыл что...
- в RTCW камрадом Eugeny Panikarowsky исправлен баг: при открытии двери ключем, за одну дверь дернуть, то обе откроются, а если за другую дернуть, но никакая не открывается. Если во время игры поменялось значение key у одной двери, то у другой двери оно оставалось старым.
ЗЫ: вспомнил что еще: если на карте много звуков и hunk-памяти для звуков не хватает, звуковой движок ищет самый старый звук и удаляет его из памяти, загружает вместо него новый. отсюда могли быть тормоза без видимой причины. Теперь пишет в консоль про это и советует увеличить память для звуков.
#1645
19 августа 2018 в 14:00
http://berserker.quakegate.ru/zzz_ammoModels_old.pk3
Пак старых ammo-моделей для Berserker@Quake3, взятые из Quake-3 Alpha, с дополненными моделями в этом же стиле, и текстурами для моего рендера. Мне такие модели больше нравятся чем обычные )))
Пак старых ammo-моделей для Berserker@Quake3, взятые из Quake-3 Alpha, с дополненными моделями в этом же стиле, и текстурами для моего рендера. Мне такие модели больше нравятся чем обычные )))
#1646
06 ноября 2018 в 15:11
Озадачился сделать поддержку blur-maps, как в Doom 2016:
Получилось неплохо, на мой взгляд.
Запотевшее зеркало с отпечатком ладони:
заодно поигрался с материалами аптечек:
И в заключение, какая-то тля запакостила стёкла:
Blur-maps (карты размытий) размещаются в неиспользуемом синем канале distort-текстуры,
ничего дополнительно прописывать не надо.
Чем больше значение пиксела синего канала, тем чётче изображение, проходящее через этот пиксел.
Получилось неплохо, на мой взгляд.
Запотевшее зеркало с отпечатком ладони:
заодно поигрался с материалами аптечек:
И в заключение, какая-то тля запакостила стёкла:
Blur-maps (карты размытий) размещаются в неиспользуемом синем канале distort-текстуры,
ничего дополнительно прописывать не надо.
Чем больше значение пиксела синего канала, тем чётче изображение, проходящее через этот пиксел.
#1647
13 ноября 2018 в 11:37
Запилил Screen Space Local Reflections (SSLR), вот первые шоты, поэтому сильно не ругайте ))
#1648
13 ноября 2018 в 16:18
Запилил Screen Space Local Reflections (SSLR)
круто смотрится
#1649
09 декабря 2018 в 13:54
Большое обновление всех 3 проектов на базе idTech3:
Berserker@idTech3_20181209.rar
1. Карты размытия:
r_blurMap “1” CVAR_ARCHIVE
включает карты размытия для прозрачных и зеркальных плоскостей.
r_blurMapQuality “1” CVAR_ARCHIVE
при 1 включает интерполяцию между базовыми уровнями размытия. Требует 2 чтения из текстуры вместо 1.
При 0 теоретически можно получить прибавку FPS при некоторой потере качества
Карта размытия одноканальная, хранится в distortion-текстуре в альфа-канале.
2. Screen Space Local Reflections (SSLR):
r_sslr “1” CVAR_ARCHIVE
включает эффект SSLR.
Следует помнить, что SSLR не полноценные отражения, это post-процесс, использующий текстуру экранного буфера. Т.е. отражаться будет только то, что нарисовано на экране. Эффект относительно дешевый, но даёт заметное улучшение картинки. Технология имеет свои артефакты, которые следует прятать применением карт нормалей. Таким образом, SSLR никак не заменяет стандартные Q3-зеркала.
Для классических материалов Specular/Gloss:
Яркость отражений зависит от карты specular, размытие отражений зависит от карты gloss (альфа-канал текстуры specular)
Для PBR материалов:
Яркость отражений зависит от карты metallic, размытие отражений зависит от карты roughness.
Отражения на непрозрачных материалах:
Пример отражений на материале без карты нормалей:
Отражения на воде:
3. Ввиду того, что для BlurMapping и SSLR активно применяются текстуры экрана с разной детализацией, расширение GL_EXT_framebuffer_blit теперь является обязательным для PPL-рендеров.
Параметр r_ext_framebuffer_blit теперь не хранимый.
4. Вернул возможность чтения параметров из материалов. Рекомендую отключать стейджи материалов, рисующие хром-эффект, если включен эффект SSLR. Пример:
{
if (cvar(r_sslr)==0 || cvar(r_ppl)==0) // Enables this stage if R_PPL=0 or R_SSLR=0
map textures/effects/tinfx2.tga
blendFunc GL_ONE GL_ONE
tcgen environment
rgbGen identity
}
5. Новые токены материалов (только для полупрозрачных, т.к. непрозрачные материалы автоматически отражают, в зависимости от своих свойств):
SSLR как свойство материала целиком.
SSLR как свойство отдельного стейджа.
Первый вариант следует применять для материалов воды или стекла, без каких либо непрозрачных стейджей (слоёв).
Второй - для слоёв, обозначающие стекла или что то подобное, полупрозрачное. SSLR-слой должен быть единственный в материале, SSLR уровня целого материала имеет высший приоритет.
Пример SSLR для всего материала воды:
textures/liquids/clear_ripple1
// *********************************************************
// * Large clear ripple water. Created September 9 *
// *********************************************************
{
qer_editorimage textures/liquids/pool3d_3.tga
qer_trans .5
q3map_globaltexture
surfaceparm trans
surfaceparm nonsolid
surfaceparm water
cull disable
deformVertexes wave 64 sin .5 .5 0 .5
sslr
{
map textures/liquids/pool3d_5.tga
...
6. Параметр cg_viewsize удален. Уменьшение экрана imho не применяется давно, с его удалением подпрограммы post-процессов (DoF, Bloom, SSLR и пр.) стали проще.
7. Исправлен эффект Bloom, текстура была не float-формата, оттого HDR для bloom не работал.
8. Вычищен Anaglyph-стереорежим (cg_stereo = 2), выкинуты цветовые пары, которых быть не может. Актуальное:
r_anaglyphMode = 0 RED_CYAN
r_anaglyphMode = 1 YELLOW_BLUE
r_anaglyphMode = 2 MAGENTA_GREEN
r_anaglyphMode = 3 CYAN_RED
r_anaglyphMode = 4 BLUE_YELLOW
r_anaglyphMode = 5 GREEN_MAGENTA
9. Цветокоррекция color vibrance:
r_colorVibrance “0” CVAR_ARCHIVE, CVAR_LATCH При 1 включает цветокоррекцию.
r_rgbVibrance "0.5" CVAR_ARCHIVE
r_rgbBalance_red "1" CVAR_ARCHIVE
r_rgbBalance_green "1" CVAR_ARCHIVE
r_rgbBalance_blue "1" CVAR_ARCHIVE
Подробно см. тут: Color Vibrance
10. vid_DPIAware “1” CVAR_ROM
Если масштаб шрифтов рабочего стола отличается от 100%, то при 1 пытаемся вызвать SetProcessDpiAwareness для корректного отображения окна игры. При 0 (или при неудачном вызове SetProcessDpiAwareness) применяем свой алгоритм для масштабирования окна.
11. Прочие мелкие косметические изменения...
Berserker@idTech3_20181209.rar
1. Карты размытия:
r_blurMap “1” CVAR_ARCHIVE
включает карты размытия для прозрачных и зеркальных плоскостей.
r_blurMapQuality “1” CVAR_ARCHIVE
при 1 включает интерполяцию между базовыми уровнями размытия. Требует 2 чтения из текстуры вместо 1.
При 0 теоретически можно получить прибавку FPS при некоторой потере качества
Карта размытия одноканальная, хранится в distortion-текстуре в альфа-канале.
2. Screen Space Local Reflections (SSLR):
r_sslr “1” CVAR_ARCHIVE
включает эффект SSLR.
Следует помнить, что SSLR не полноценные отражения, это post-процесс, использующий текстуру экранного буфера. Т.е. отражаться будет только то, что нарисовано на экране. Эффект относительно дешевый, но даёт заметное улучшение картинки. Технология имеет свои артефакты, которые следует прятать применением карт нормалей. Таким образом, SSLR никак не заменяет стандартные Q3-зеркала.
Для классических материалов Specular/Gloss:
Яркость отражений зависит от карты specular, размытие отражений зависит от карты gloss (альфа-канал текстуры specular)
Для PBR материалов:
Яркость отражений зависит от карты metallic, размытие отражений зависит от карты roughness.
Отражения на непрозрачных материалах:
Пример отражений на материале без карты нормалей:
Отражения на воде:
3. Ввиду того, что для BlurMapping и SSLR активно применяются текстуры экрана с разной детализацией, расширение GL_EXT_framebuffer_blit теперь является обязательным для PPL-рендеров.
Параметр r_ext_framebuffer_blit теперь не хранимый.
4. Вернул возможность чтения параметров из материалов. Рекомендую отключать стейджи материалов, рисующие хром-эффект, если включен эффект SSLR. Пример:
{
if (cvar(r_sslr)==0 || cvar(r_ppl)==0) // Enables this stage if R_PPL=0 or R_SSLR=0
map textures/effects/tinfx2.tga
blendFunc GL_ONE GL_ONE
tcgen environment
rgbGen identity
}
5. Новые токены материалов (только для полупрозрачных, т.к. непрозрачные материалы автоматически отражают, в зависимости от своих свойств):
SSLR как свойство материала целиком.
SSLR как свойство отдельного стейджа.
Первый вариант следует применять для материалов воды или стекла, без каких либо непрозрачных стейджей (слоёв).
Второй - для слоёв, обозначающие стекла или что то подобное, полупрозрачное. SSLR-слой должен быть единственный в материале, SSLR уровня целого материала имеет высший приоритет.
Пример SSLR для всего материала воды:
textures/liquids/clear_ripple1
// *********************************************************
// * Large clear ripple water. Created September 9 *
// *********************************************************
{
qer_editorimage textures/liquids/pool3d_3.tga
qer_trans .5
q3map_globaltexture
surfaceparm trans
surfaceparm nonsolid
surfaceparm water
cull disable
deformVertexes wave 64 sin .5 .5 0 .5
sslr
{
map textures/liquids/pool3d_5.tga
...
6. Параметр cg_viewsize удален. Уменьшение экрана imho не применяется давно, с его удалением подпрограммы post-процессов (DoF, Bloom, SSLR и пр.) стали проще.
7. Исправлен эффект Bloom, текстура была не float-формата, оттого HDR для bloom не работал.
8. Вычищен Anaglyph-стереорежим (cg_stereo = 2), выкинуты цветовые пары, которых быть не может. Актуальное:
r_anaglyphMode = 0 RED_CYAN
r_anaglyphMode = 1 YELLOW_BLUE
r_anaglyphMode = 2 MAGENTA_GREEN
r_anaglyphMode = 3 CYAN_RED
r_anaglyphMode = 4 BLUE_YELLOW
r_anaglyphMode = 5 GREEN_MAGENTA
9. Цветокоррекция color vibrance:
r_colorVibrance “0” CVAR_ARCHIVE, CVAR_LATCH При 1 включает цветокоррекцию.
r_rgbVibrance "0.5" CVAR_ARCHIVE
r_rgbBalance_red "1" CVAR_ARCHIVE
r_rgbBalance_green "1" CVAR_ARCHIVE
r_rgbBalance_blue "1" CVAR_ARCHIVE
Подробно см. тут: Color Vibrance
10. vid_DPIAware “1” CVAR_ROM
Если масштаб шрифтов рабочего стола отличается от 100%, то при 1 пытаемся вызвать SetProcessDpiAwareness для корректного отображения окна игры. При 0 (или при неудачном вызове SetProcessDpiAwareness) применяем свой алгоритм для масштабирования окна.
11. Прочие мелкие косметические изменения...