Берсеркер
2348 постов
Карма: 218
#1721 21 декабря 2024 в 13:37
Detailed bumpMap выпилил, когда систему материалов пересматривал.
Почему выпилил, сейчас не помню. Если фича нужная, то подумаю как встроить в текущую систему.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
Eugeny
201 постов
Карма: 10
#1722 21 декабря 2024 в 16:44
Берсеркер, а для вольфа есть что-то новое?
Берсеркер
2348 постов
Карма: 218
#1723 21 декабря 2024 в 18:43
пока нет, сперва ку3 двиган доработать, затем порт на вольф
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
d3nchk
50 постов
Карма: 2
#1724 28 февраля 2025 в 14:36
Приветствую
Можно ли получить документацию на последний билд движка (который от сентября 24 года , х64) судя по всему много что поменялось. В частности интересует как минимум описание работы с текстурами и какая в редакторе лайтов заменяет достататочно важный параметр /nospecularlight (раньше он был, щас пишет нот фаунд, нужен этот параметр для создания рассеянного освещения, которому ранее присваивались параметры /nospecularlight и /noshadowlight, чтобы не бликовало, не отбрасывало тени)

Ну и вообще в целом хотелось бы узнать что нового.
Берсеркер
2348 постов
Карма: 218
#1725 02 марта 2025 в 14:48
Привет.
Убрал ключ nospecularlight, так как выпилил старую схему освещения в стиле Doom3.
Теперь одна схема - PBR, физически корректный рендеринг.
Формат текстур такой:
diamond2@d.tga - lдиффузная текстура, отличается от diamond2.tga тем, что не должна иметь ничего лишнего, например микротеней, бликов.
diamond2@n.tga - карта нормалей, в альфа-канале карта высот для параллакса.
diamond2@p.tga - PBR текстура:
Red = metallic
Green = ambient occlusion
Blue = roughness

Документации нет, могу только выложить заметки что сделано (читать снизу вверх):
- Новый параметр стейджа: tcTurb2 speed (def = 1.0) amplitude (def = 1.0) - включает попиксельную модификацию текстурных координат в альтернативном стиле, больше подходит к тяжелым жидкостям типа лавы. Не работает для стейджей лайтмапов!
- levelshot делает шот размером 512x512, было 128x128
- Новый параметр стейджа: tcTurb speed (def = 1.0) amplitude (def = 1.0) - включает попиксельную модификацию текстурных координат в стиле жидкостей Quake. Не работает для стейджей лайтмапов!
- Токен стейджей tcTurb следует ставить ДО операторов загрузки текстур (map, clampmap, pbrmap и т.д.), чтобы можно было оверрайдить только данную текстуру, но не весь материал!
- новый цвар r_shadowFilter (def = 1, arch) - качество фильтрации теней солнечного света: 0 - PCF4x4, 1 - PCF6x6. При 0 - теоретически более быстрый, но и четче. При 1 - качественнее, но и сглаживает мелкие детали.
!!! не забывать добавлять в папку scripts рендер-скрипты, появившиеся в materials, но работающие также в ppl = 0 (как был конфуз с каплями дождя!)
- новый цвар r_seriousShadows (def = 0, arch) при (от 0 до 1, а неплохое значение 0.6) включает солнечным теням резкие границы, в стиле Serious Engine (Serious Sam HD, Serious Sam 4, Talos Principle).
- из-за смены формулы PBR, чтобы вернуть яркость обратно, изменены дефолтные значения цваров:
r_ambientScale 0.3
r_lightScale 16
r_sunLightScale 32

удалил detailed bumpMapping, чтобы освободить альфа-канал карт нормалей под высоты для POM. Детализированные текстуры добавлю в будущем.
удалил r_blurMapQuality - сглаживание блуров, быстрый способ гавняно выглядит на зеркале q3dm0
удалил кэш текстур, современное железо и так быстро грузит, так что можно сэкономить 2-3 гига на диске
удалил цвары r_imageCache, r_texture_compression_bptc, r_texture_compression_s3tc, r_colorMipLevels, r_debugImages вернул r_roundImagesDown
обязательное требование к видеосистеме - поддержка сжатия текстур DXT и BPTC!
удалил swizzle
удалил r_parallaxScale
загрузка DDS текстур в приоритете (но не для текстур, используемых в image functions!!!)
удалил параметр стейджа материала и параметр материала: noParallax - нет в нём смысла, так как тогда можно просто применить карту нормалей без альфа-канала!
Bindless Textures
EXT_direct_state_access (для загрузки и изменения VBO/IBO, для загрузки текстур, юниформов) + TextureStorage (для экранных текстур и шмапов)
скорректировал код отображения видео-роликов в меню (не в игре), чтобы не искажались размеры видео. Но в стерео-режиме анаморф стерео-пара рисуется видео в полные полу-экраны!
в меню в игре LEAVE ARENA добавил запрос подтверждения выхода из игры ))
удалил debug-graph, удалил цвары: cl_debuggraph, cl_timegraph, cl_graphheight, cl_graphscale, cl_graphshift, cl_debugMove

обязательное требование к материалам - не использовать в image-functions DDS-текстуры!!! Они - только для загрузки напрямую!

Билинейное сглаживание теней солнечного света.
Новый код в шейдере для устранения артефакта sun light leaking.
новый цвар r_sunLightLeaks, не хранимый, по умолчанию 0. При 0 в шейдере работает код устранения артефакта light leaking для солнечного света. При 1 видны просветы солнечного света.

dof: убрал кучу трейсов, оставил один центральный (ибо чтение глубин на решетках дает мельтешение) + 4 чтения глубин около центра экрана.
Удалил параметр r_dofProbeSize.

!!
- теперь из dds текстура грузится вне зависимости, разрешена ли компрессия текстур.
- если r_ppl = 0, тогда материалы грузятся из папки scripts, а папка materials игнорируется. Это сохраняет старый вид игры для ванильного рендера.
- убрал из карт PBR эмиссию, теперь формат такой: RGB = Metallic, AO, Roughness.
- поменял формулу PBR (вроде верно, но блин темнее стало) ???
- в SSLR изменил SCREEN_FALLOFF с 6 на 3 - отражение стало мягче затухать!
- в шейдере блума ограничил силу сияния
- удалил r_lightMapBrightness (оно работало только для r_ppl = 1 и особо не нужно было)
- lit-файлы релайта теперь сохраняются в папке maps/<mapname>/<map_checksum>.lit
- загрузчик BSP теперь в консоли пишет чек-сумму карты, например: ...loading q3dm0, checksum F01AC5E4
- загрузчик BSP теперь сперва ищет lit-файл по пути maps/<mapname>/<map_checksum>.lit, а если не находит, то ищет по старому, традиционному пути: maps/<mapname>.lit
Это для того, чтобы ошибочно не грузились релайты от модифицированных карт. Кстати, в папке maps/<mapname>/ также могут лежать dm_????.tga и lm_????.tga (внешние делюкс- и лайт-мапы), так что всё логично.



- цвар "r_dof" по умолчанию сделал 0, так как этот кинематографический эффект мешает в бою.
- выпиздил насовсем устаревшую модель освещения - specular, которая использовалась в Doom3. Используется только современная модель освещения PBR.
- соответственно выпилены:
из материалов, токены: "specularMap", "clampSpecularMap", "animSpecularMap", "noSpecular"
из цваров: "r_shadowMapParallax", "r_noSpecular", "r_diffuse_modifier", "r_specular_modifier"
из команд редактора: "specularlight", "nospecularlight"
- фикс редактора: selectnearestmodel и selectnearestamodel - теперь игнорируют игровые предметы (нет смысла к ним лепить свет, а также предметы эти не уникальны). Видят браш-модели и map-модели (например в q3dm0 - за зеркалом пара моделей крутится в шкафчиках)
- вернул md3 моделям лоды, вернул цвары r_lodbias, r_lodscale.
- Тени от солнечного света теперь рисуются только от бэк-фейсов - так избавился от самозатенения, убрал костыли борьбы с ним, тени стали мягкие. Также сделал переходы между каскадами мягче. Артефакт light bleeding почти устранен.
- удалил команду Редактора "cullBackFaces", убрал параметр лайт-ентити "noCullBackFaces".
- аккуратнее работа с окном игры.
- более аккуратный фикс для шотов и видео для режимов типа 1366.
- Взял zone-менеджер из Quake3e, так как старый менеджер не мог увеличить zone-память через com_zoneMegs.
- Удалил параметр r_debugSurface.
- Переименовал параметр r_anisotropic в r_anisotropy.
- Применяю высокоточный SleepShort для спячки CPU и сжатия видео.
- удалил цвар cl_aviMJpeg, так как запись несжатого видео не имеет никаких плюсов перед кодеком mjpeg.
- cl_aviScale (def=0, arch) - валидные значения от 0 до 1. Имеет приоритет над cl_aviWidth и cl_aviHeight, позволяя уменьшить разрешение видео задав просто одно значение.
- вернул cl_aviWidth и cl_aviHeight (def = 0) - разрешение видео. При нулях - видео размером экрана. Таким образом, тоже уменьшить разрешение видео, если процессор не вывозит запись игры.
- удалил cl_aviMotionJpeg, теперь пишет всегда в MJpeg
- NOTE: разрешено писать avi во время игры (а не только демо), но будьте уверены, что мощности CPU хватает чтобы успевать сжимать кадры с нужным разрешением и fps! Иначе получите видео с ускоренным движением. В ку1берс этого ограничения нет, там можно замедлять игрока.
- при прекращении записи видео, звуковая система перезапускается, кроме саунд-треков (музыка прекращает играть).
- при записи AVI запрещаю сворачивать окно, а также звук не пропадает.
- синхронизация видео и аудио кадров при записи AVI
- cl_aviFrameRate def=60
- удалил cl_aviBackgroundCompressor, всегда используем все разрешенные потоки.
- удалил команду videoforce, так как уже не актуальна.
- допилил запись видео в многопотоке. Можно писать даже в игре.
- cl_aviJpegQuality def = 80 компактнее, и качество на уровне
- kill cvars cl_aviWidth & cl_aviHeight
- убрал баг со скай-боксом: были видны границы граней. Просто запретил mipmap.
- кэширование компилированных GLSL программ
- удалил цвары r_glslIntPrecision и r_glslFloatPrecision, так как управление точностью работает только в OpenGL ES.
- добавил OpenAL (... описать команды и цвары ...)
- sysinfo команда - объединение gfxinfo, vidinfo, s_info + прочая инфа.
- добавил тред-менеджер + первая функция для него: сжатие и запись скриншотов в формате jpeg
- удалил r_glCompatibleContext, теперь всегда Core profile для скорости
- удалил r_glCoreProfile, теперь всегда должен работать GL3+
- r_glMajorVersion def=3, r_glMinorVersion=2
- r_glCompatibility def=0
- MessageBox в полноэкранном режиме вызовет скрытие окна игры, чтобы было видно сообщение об ошибке.
- любые крэши в коде перехватываются и отображаются в UI.
- r_jpegQuality def = 80 компактнее, и качество на уровне
- удалил screenshotPNG (так как пока не нашел х64 кода SavePNG)
- удалил всё связанное с гаммой, так как будет рулиться через GLSL:
r_ignorehwgamma
WG_CheckHardwareGamma
GLimp_SetGamma
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
d3nchk
50 постов
Карма: 2
#1726 02 марта 2025 в 21:11
Благодарю за чейнджлог!
DDS BC7 в итоге добавили поддержку?

И вот еще все таки очень хотелось бы в будущем , если получиться придумать какой то хак для высветления теней. Потому что щас извраты жесткие приходиться делать для растворения псевдорассеяным источником\источниками света. А солнце зачастую вообще не возможно развернуть корректно, чтобы тени в другую сторону отбрасывались.

НУ в любом случае начал полноценный релайт карт, по схеме БЕЗ r_ambientScale, только новые лайты. Стараюсь оптимизировать, где то вырубать тени, где не надо. Но вот с учетом отсутствия варианта выключить глосс, это конечно даст доп нагрузку на систему. Хотя по идее на моем обновленном конфиге с видяхой rx7700xt вроде тянет, лок стоит на 125 фпс, просадок вроде нет пока. Но я еще не дошел до финальных мап, которые больше по размеру чем начальные, посмотрим как там будет. Да и текстурки пока не подкидывал свои всратые, ибо один фиг все переделывать. Из открытых источников по крайней мере раньше вообще не публиковались PBR карты , именно как одна карта с 3 разными типами глосса (метал, спекуляр и что то там еще). Надо будет поискать.
И кстати раздражает вроде все носятся щас с нейросетями, но они настолько щас всратые, что не могу даже попытаться воссоздать картинку на основе референса, так бы можно было бы воссоздать в нормальном качестве текстурки очень близкие к оригиналу , в нормальных взрослых разрешениях а-ля 2к или 4к.
Ну будем смотреть в общем, если будут вопросы, напишу.
Берсеркер
2348 постов
Карма: 218
#1727 02 марта 2025 в 21:15
Да, BC7 поддерживается.
Выкладывайте сюда свои наработки, думаю, не мне одному будет это интересно.
И отлично, что есть Radeon для тестирования.
Машина несла меня через неведомые районы Галактики сквозь пространство математической реальности быстрее скорости света. (C) Фред Саберхаген.
d3nchk
50 постов
Карма: 2
#1728 02 марта 2025 в 23:04
Пожалуйста
https://drive.google.com/file/d/17BHdb1GD56y3XpJEUGF_JBwSyj7ob2jc/view?usp=sharing

тут 6 карт релайт, плюс приложил свой конфиг, чтобы выглядело как у меня. Там посмотрите какие параметры связанные с изображением включены-выключены.
И обязательно занулите параметр /r_ambientscale. Чтобы выключить запеченное освещение, дизайнилось именно без дефолтной запеченки.

Я по мере сил буду дальше продолжать.
Barnes
1986 постов
Карма: 153
#1729 03 марта 2025 в 22:13
доступа по ссылке нет
Какой богатый внутренний мир! Дай-ка посмотрю.....
d3nchk
50 постов
Карма: 2
#1730 04 марта 2025 в 01:20
https://drive.google.com/file/d/1E2FGq5xSm9s4o-HG9NlUWjKywqIfDOe9/view?usp=sharing

Проверил, теперь есть доступ.
Добавил еще одну мапу. Пока 7 получается.