Содержание:
1 Skybox
2 Очистка сетки
3 Cubemaps/Lightprobes
3.1 Light prob разрешение
3.2 Избегать разрывов между томами!
3.3 Отладка Lightprobes
3.4 Отладка cubemaps
3.5 Наложение Cubemap

Skybox

В CS:GO 3D Skybox часто строились в пределах основной карты, тогда как в Counter-Strike 2 они выделены в отдельную карту 3D Skybox. Импортер карт попытается обнаружить геометрию skybox и отделить ее автоматически, но это работает только в том случае, если геометрия skybox в оригинальном VMF находится в собственном instance/prefab.

Чаще всего это не так, поэтому если вы открываете только что импортированную карту в Hammer и не видите рендеринга 3D Skybox, скорее всего, импортирование не удалось, и она была объединена в основную карту. Однако процесс его выделения на самом деле довольно прост;

Сначала найдите свой 3D Skybox, он должен находиться в закрытом пространстве где-то за пределами основной области карты:

1688771141332.png


Следующим шагом будет захват skybox geo и всех сущностей внутри него и нажатие Ctrl+x, затем создайте новую карту с помощью File>New и сохраните ее под соответствующим именем, т.е. de_mymap_skybox, и когда новая карта будет сохранена, нажмите Ctrl+ Shift+V, чтобы сделать специальную вставку, убедившись, что выбран Start at center of original, прежде чем нажать OK.

1688771390770.png


Как только geo будет помещено в новую карту, нам нужно будет сообщить Hammer, что это карта 3D Skybox. Для этого просто перейдите в Map>Map Properties и в выпадающем списке Map Type выберите 3D Skybox:

1688771557968.png


После этого вернитесь на основную карту и добавьте entity skybox_reference, которая будет ссылаться на ваш skybox .vmap. Наконец, установите skybox_reference на 0,0,0 в разделе Transform свойств:


1688771920918.png


Если все прошло гладко, вы должны увидеть рендеринг skybox во viewport Hammer!
Последнее, что осталось сделать, это скопировать (не перемещать) entity light_environment и env_sky в карту 3D Skybox, чтобы обеспечить наличие освещения и неба.



Очистка сетки

1688772277413.png


1688772324352.png


1688772349627.png






Cubemaps/Lightprobes
Импортер попытается преобразовать старые cubemaps в стиле csgo в новые комбинированные cubemap/lightprobe в Counter-Strike 2, однако этот шаг часто бывает неудачным, и рекомендуется потратить некоторое время, чтобы исправить их вручную. Ниже приведены некоторые советы по выполнению этого действия:


Light probe разрешение
Для игровых областей рекомендуется использовать высокое разрешение voxel для лучшего качества освещения динамических объектов/игроков. В других областях можно использовать более низкие разрешения по своему усмотрению.

1688773258225.png




Избегать разрывов между томами!
Если у вас есть пробелы между томами, это, скорее всего, приведет к тому, что игроки или динамический реквизит будут светиться неправильно (то черным, то ярким). Например:

1688773464943.png


Это можно исправить, закрыв зазор - перекрытие объемов совершенно нормально и необходимо при использовании функции Edge Blend.

1688773537757.png


Вы можете использовать систему приоритетов для устранения любых проблем, если у вас есть том внутри тома.

1688773622490.png






Отладка Lightprobes
Чтобы визуализировать световые зонды в ваших томах, вы можете просто нажать эту кнопку, которая визуализирует плотность и запеченное освещение выбранного в данный момент тома светового зонда:

1688773834031.png


Чтобы увидеть это в игре, просто введите r_light_probe_volume_debug_grid 1 в VConsole. Это полезно, если вы видите необычное освещение на динамических объектах:

1688774054726.png


лучше всего использовать в сочетании с режимом визуализации диффузного освещения в Hammer или mat_fullbright 2 в игре.




Отладка cubemaps
Если вы хотите посмотреть, что происходит с cubemaps, в Hammer есть представление для этого здесь:

1688774521227.png


Это визуализирует cubemaps на поверхностях:

1688774617857.png


Это полезно для проверки правильности/отсутствия пробелов в cubemaps, а также для проверки настроек наложения между томами cubemaps.




Наложение Cubemap
Эта функция обеспечивает плавные переходы между объемами cubemap и может быть настроена с помощью параметра Edge Fade Dist:

1688774909881.png


Эти значения управляют количеством смешивания краев вдоль X,Y,Z в дюймах.
Здесь мы видим X,Y,Z, установленные на 0. Обратите внимание на жесткую границу, где заканчивается объем cubemap.

1688775032463.png


Здесь X,Y,Z установлены на 32, обратите внимание на затухание краев объема кубической карты

1688775111614.png


И с X на 32, а YZ на 0. Обратите внимание на смешивание по одной оси.

1688775188015.png


cubemaps с наложением краев могут стать дорогостоящими! Самый большой удар по производительности приходится на затухающую краевую область cubemaps; эта затухающая область всегда должна затухать в другой cubemaps, а при больших смешиваниях и нескольких перекрывающихся cubemaps эти пиксели могут становиться экспоненциально дороже, поскольку они просматривают несколько cubemaps.

Хороший способ диагностировать это - использовать режим просмотра Reflection Complexity в Hammer, или mat_fullbright 8 в игре через vconsole.

В этом примере есть три перекрывающихся тома cubemap с затуханием краев 32 по X и Y.

1688775755756.png


Вы можете видеть, что по мере того, как все больше объемов перекрывается в областях затухания краев, цвет меняется от синего>зеленого>желтого в зависимости от того, насколько дорогостоящими являются эти пиксели (желтый - наиболее дорогостоящий).