Ru/Cubemaps: Difference between revisions
mNo edit summary |
m (Setting bug notice hidetested=1 param on page where the bug might not need tested in param specified) |
||
(15 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LanguageBar|title = Карты-кубы}} | ||
|title=Карты-кубы | {{Todo|Needs info about Source 2 cube maps, or can be it's own article}} | ||
}} | |||
{{note | [[File:Env_cubemap.png|left]][[File:Specular.jpg|thumb|350px|right|Зеркальные отражения на пропах.]] | ||
{{note | Чтобы движок Source правильно показывал многочисленные отражающие {{L|material|материалы}}, они должны быть объединены с внешними данными. Эти данные хранятся в виде карты-куба (cubemap), то есть кубической текстуры, которая представляет собой трёхмерное изображение определённой области. Для этого движок Source использует точечные сущности {{L|env_cubemap}} в качестве образцов, с помощью которых создаёт текстуры и сохраняет их в файл с расширением "<code>.bsp</code>". При обработке зеркальных и других окружающих материалов он использует кубы для получения более точного окружения. Другими словами, куб создаёт текстуры, которые будут моделировать отражающую поверхность. | ||
{{note|Для создания карты-куба (cubemap) в {{csgo}}{{L|Counter-Strike: Global Offensive}} в параметрах запуска игры необходимо добавлять -insecure. }} | |||
{{note|{{portal2}}{{L|Portal 2}} и {{tf2}}{{L|Team Fortress 2}} имеют проблемы с построением кубов. Они описаны в конце статьи. }} | |||
==Размещение== | ==Размещение== | ||
Чтобы обозначить область, которую охватит куб, просто вставьте на карту сущность | Чтобы обозначить область, которую охватит куб, просто вставьте на карту сущность {{L|env_cubemap}}. Когда карта скомпилируется программой {{L|VBSP}}, поверхности геометрии мира автоматически свяжут себя с ближайшей {{L|env_cubemap}}, и будут использовать рождённый ей куб. Поверхности связывают себя с ближайшей {{L|env_cubemap}} (однако, в свойствах куба можно задать любую привязываемую поверхность); движущиеся сущности будут автоматически выбирать нужный куб. Важно, чтобы положение {{L|env_cubemap}} было эстетичным и производительным. | ||
Карты-кубы используются для разных ситуаций, и должны располагаться соответствующе. Одни нужны для отображения статической геометрии мира. Другие - для отображения сущностей игроков, включая ботов ( | Карты-кубы используются для разных ситуаций, и должны располагаться соответствующе. Одни нужны для отображения статической геометрии мира. Другие - для отображения сущностей игроков, включая ботов ({{L|NPC}}). Третьи нужны для отображения всевозможных неигровых энтить. Каждой из этих целей соответствует оптимальное расположение {{L|env_cubemap}}, дабы обеспечить максимальную отдачу. Вот несколько простых эвристических правил, которым необходимо следовать: | ||
*Если куб предназначен для NPC или игрока, | *Если куб предназначен для NPC или игрока, {{L|env_cubemap}} следует размещать на уровне головы (как правило, 64 юнита). Таким образом, она наиболее точно передаст мир с точки зрения стоящего. | ||
*Если куб предназначен для статичной геометрии мира, то справедливым, как правило, будет расстояние в 16 | *Если куб предназначен для статичной геометрии мира, то справедливым, как правило, будет расстояние в 16 юнитов от всех поверхностей. | ||
*В каждой зоне с визуальным контрастом должна быть своя карта-куб. Коридор с ярко- | *В каждой зоне с визуальным контрастом должна быть своя карта-куб. Коридор с ярко-жёлтым светом требует своей {{L|env_cubemap}}, особенно, если она расположена рядом с комнатой, где горит тускло-голубой свет. Если в одном их этих мест не будет {{L|env_cubemap}}, то отражения и блики на сущностях и геометрии будут моделироваться неправильно. | ||
==Построение кубов== | ==Построение кубов== | ||
Когда карта будет скомпилирована и освещена | Когда карта будет скомпилирована и освещена {{L|VBSP}} и {{L|VRAD}} (соответственно), можно создавать кубы. После загрузки карты, введите в {{L|Developer_Console|консоли}} команду <code>buildcubemaps</code>. Начнётся процесс построения, который займёт некоторое время, в течение которого вы сможете увидеть каждую из шести граней кубов. После завершения, карту или игру нужно перезагрузить, чтобы кубы правильно применились ко всем поверхностям. | ||
{{note|До запуска команды <code>buildcubemaps</code>, установите значение <code>mat_specular</code> в 0, иначе это приведёт к неправильным отражениям!}} | {{note|До запуска команды <code>buildcubemaps</code>, установите значение <code>mat_specular</code> в 0, иначе это приведёт к неправильным отражениям!}} | ||
{{note|Созданные кубы сохраняются в файл | {{note|Созданные кубы сохраняются в bsp файл, который помещается в папку игры, а не в то место, где вы скомпилировали карту.}} | ||
{{note|Если после создания кубов вы переименуете файл | {{note|Если после создания кубов вы переименуете bsp файл, то их придётся строить заново.}} | ||
===HDR=== | ===HDR=== | ||
Если карта скомпилирована с включённой опцией | Если карта скомпилирована с включённой опцией {{L|HDR}} в программе {{L|VRAD}}, кубы '''необходимо''' построить как в режиме HDR, '''так и''' LDR (не-HDR). Создание кубов только в одном из этих режимов будет означать, что кубы не представлены в другом режиме. Информацию о том, как строить кубы под HDR см. в {{L|HDR_Lighting_Basics|Основах освещения HDR}}. | ||
Кубы должны быть построены для карт LDR и HDR. Предположим, вы уже находитесь в режиме HDR и загрузили свежескомпилированную карту (в программе VRAD должен быть | Кубы должны быть построены для карт LDR и HDR. Предположим, вы уже находитесь в режиме HDR и загрузили свежескомпилированную карту (в программе VRAD должен быть включён параметр '<code>-both</code>'). Перейдите в консоль и выполните следующие команды: | ||
buildcubemaps | buildcubemaps | ||
Line 40: | Line 39: | ||
restart ''(для перезагрузки карты)'' | restart ''(для перезагрузки карты)'' | ||
{{note|Это не относится к CS:GO, т.к. HDR не может быть | {{note|Это не относится к CS:GO, т.к. HDR не может быть отключён.}} | ||
===Игры Team Fortress 2 / Source 2012+ === | ===Игры Team Fortress 2 / Source 2012+ === | ||
{{tf2}}{{L|Team Fortress 2}} по-умолчанию не применяет кубы к отражающим поверхностям. (Аналогичные проблемы также имеются и в некоторых установках {{portal2}}{{L|Portal 2}}, когда кубы просто не появляются). Все текстуры светятся чёрно-розовыми шашечками. Если вы построите кубы, и один из них увидит большую сверкающую поверхность, то зафиксирует её в 6 изображениях. Это значит, что некоторые объекты будут бликовать так, будто рядом с ними находится розовая и чёрная сверкающая текстура. Для решения проблемы, кубы нужно строить с отключенной зеркальностью. Чтобы построить кубы для карты TF2, загрузите её через "Create Server". Затем, откройте консоль и выполните следующие команды: | |||
Создание кубов только для LDR '''или''' HDR: | Создание кубов только для LDR '''или''' HDR: | ||
Line 56: | Line 55: | ||
При создании кубов для HDR требуется, чтобы вы повторили эти шаги после загрузки карты с включённым HDR. | При создании кубов для HDR требуется, чтобы вы повторили эти шаги после загрузки карты с включённым HDR. | ||
{{note|Если при постройке кубов игра вылетает, то скорее всего вы установили слишком низкое разрешение экрана. Убедитесь, что высота и ширина экрана игры более 512 пикселей. Это означает, что минимальное стандартное разрешение должно составлять 800X600. Разрешение можно поменять на | {{note|Если при постройке кубов игра вылетает, то скорее всего вы установили слишком низкое разрешение экрана. Убедитесь, что высота и ширина экрана игры более 512 пикселей. Это означает, что минимальное стандартное разрешение должно составлять 800X600. Разрешение можно поменять на вкладке Видео в меню игры Параметры.}} | ||
{{note|Если после построения кубов вы переименуете файл .bsp, они перестанут работать и куб неба сбросится в стандартные настройки. Каждый раз после переименования карты кубы нужно создавать заново. Однако, в этом случае старые кубы не удаляются, что приводит к разрастанию размера файла. Если вы желаете избежать проблем с загрузкой вашей карты, не переименовывайте её после компиляции.}} | {{note|Если после построения кубов вы переименуете файл .bsp, они перестанут работать и куб неба сбросится в стандартные настройки. Каждый раз после переименования карты кубы нужно создавать заново. Однако, в этом случае старые кубы не удаляются, что приводит к разрастанию размера файла. Если вы желаете избежать проблем с загрузкой вашей карты, не переименовывайте её после компиляции.}} | ||
Line 64: | Line 63: | ||
===Кубы после обновления SteamPipe=== | ===Кубы после обновления SteamPipe=== | ||
В связи с обновлением SteamPipe, возникла проблема построения кубов без видимых результатов. Согласно [http://www.facepunch.com/showthread.php?t=1293081 ветке форума], проблему можно решить следующим образом: | В связи с обновлением SteamPipe, возникла проблема построения кубов без видимых результатов. Согласно [http://www.facepunch.com/showthread.php?t=1293081 ветке форума], проблему можно решить следующим образом: | ||
{{bug | {{bug|hidetested=1|Редактирование непосредственно файла карты имеет неприятные последствия! Включая глюки графики и потери теней от статичных моделей! [https://steamcommunity.com/app/211/discussions/0/846959998155287479/ данный] метод может предотвратить это.}} | ||
<code> | <code> | ||
# Поместите энтити env_cubemap в доступных местах вашей карты, и скомпилируйте её. Важно: Название карты должно быть не длиннее 30 символов, (включая расширение .bsp), иначе .bsp не запишется! Также, не меняйте название карты после создания кубов, иначе они не будут работать! | # Поместите энтити env_cubemap в доступных местах вашей карты, и скомпилируйте её. Важно: Название карты должно быть не длиннее 30 символов, (включая расширение .bsp), иначе .bsp не запишется! Также, не меняйте название карты после создания кубов, иначе они не будут работать! | ||
Line 80: | Line 79: | ||
===Source Filmmaker=== | ===Source Filmmaker=== | ||
Сегодня создание кубов в Source Filmmaker не работает, и отрисовывает только одну поверхность с одним кубом. Чтобы правильно создавать кубы в Source Filmmaker, скопируйте файл карты вместе с принадлежностями (текстурами, моделями, и т.д.) в | Сегодня создание кубов в Source Filmmaker не работает, и отрисовывает только одну поверхность с одним кубом. Чтобы правильно создавать кубы в Source Filmmaker, скопируйте файл карты вместе с принадлежностями (текстурами, моделями, и т.д.) в {{as}}{{L|Alien Swarm}}. Движок не требует перекомпиляции карты, достаточно её перенести. Загрузите вашу карту в Alien Swarm и введите в консоль команду "buildcubemaps". После отрисовки поверхностей, ваша карта будет содержать кубы, которые можно скопировать обратно в Source Filmmaker. Это работает только с новыми версиями карт, при загрузке карт из {{tf2}}{{L|TF2}} или {{L|Garry's Mod}} игра будет вылетать. | ||
Откройте 'не скопированную' версию в Хаммер и постройте её с помощью дополнительного режима поиска 'чужих' (относительных) путей содержимого sfm. todo: абсолютные пути. | Откройте 'не скопированную' версию в Хаммер и постройте её с помощью дополнительного режима поиска 'чужих' (относительных) путей содержимого sfm. todo: абсолютные пути. | ||
Line 100: | Line 99: | ||
===Portal 2=== | ===Portal 2=== | ||
Если вы хотите создавать кубы для карт, расположенных в "Portal 2/portal2/maps" (Hammer копирует карты туда по-умолчанию), Portal 2 вылетит, потому что ищет карты в разделе "portal2_dlc2/maps". Так что, если вы хотите избежать сбоя, скопируйте вашу карту в "Portal 2/portal2_dlc2/maps" (или каталог карт вашего мода), перезагрузите её и создайте кубы снова. Это должно работать. | Если вы хотите создавать кубы для карт, расположенных в "Portal 2/portal2/maps" (Hammer копирует карты туда по-умолчанию), Portal 2 вылетит, потому что ищет карты в разделе "portal2_dlc2/maps". Так что, если вы хотите избежать сбоя, скопируйте вашу карту в "Portal 2/portal2_dlc2/maps" (или каталог карт вашего мода), перезагрузите её и создайте кубы снова. Это должно работать. | ||
===Black Mesa=== | |||
Перед тем как строить кубмапы в {{L|Black Mesa (Source)|Black Mesa}}, запустите игру с такими параметрами ''bms.exe -oldgameui -dev -console +r_4way_use_fast_normals 0 +mat_specular 0'' <br> | |||
Далее запустите карту и введите в консоли '''buildcubemaps''' | |||
== Тестирование == | == Тестирование == | ||
Лучше всего карты-кубы тестировать с помощью консольной команды <code> | Лучше всего карты-кубы тестировать с помощью консольной команды <code>{{L|impulse}} 81</code>. Введите её в консоль. Затем, впишите <code>{{L|give}}</code> weapon_cubemap. | ||
{{note| Можно привязать эти команды на разные клавиши, чтобы не вводить их каждый раз.}} | {{note| Можно привязать эти команды на разные клавиши, чтобы не вводить их каждый раз.}} | ||
Это заменит текущую модель оружия с " | Это заменит текущую модель оружия с "{{L|weapon_cubemap|cubemap weapon}}" на несколько сфер, каждая со своей отражающей поверхностью. Путешествуя по карте, вы увидите, где и как применяются кубы в пространстве, а также, на сколько верно куб описывает зону освещения и цвета. | ||
{{note|Вы можете скопировать | {{note|Вы можете скопировать {{L|weapon_cubemap|cubemap weapon}} из ''Steam\SteamApps\common\Half-Life 2\hl2\models\shadertest\envballs.mdl'' и добавить в свой мод, если он этого не имеет.}} | ||
{{note|Если перекомпилировать карту без перезапуска игры, кубы от предыдущей версии останутся в кэше, создавая иллюзию, что их не надо создавать заново. Этих кубов ''нет'' в карте, что покажет запуск карты на другом компьютере или её перезагрузка. Каждая новая компиляция стирает упакованные материалы, включая кубы.}} | {{note|Если перекомпилировать карту без перезапуска игры, кубы от предыдущей версии останутся в кэше, создавая иллюзию, что их не надо создавать заново. Этих кубов ''нет'' в карте, что покажет запуск карты на другом компьютере или её перезагрузка. Каждая новая компиляция стирает упакованные материалы, включая кубы.}} | ||
== Производительность == | == Производительность == | ||
Сущность <code> | Сущность <code>{{L|env_cubemap}}</code> позволяет задавать разрешение связываемой с ней текстуры. С одной стороны, чем больше разрешение, тем точнее и “резче” результат, но с другой – сильнее расход памяти. В основном, кубы должны иметь разрешение по умолчанию (32x32 пикселя для каждой поверхности). Обычно это дает удовлетворительный результат. Некоторые исключения возможны для областей с высокой отражающей способностью или, например, для детализации определенных частей действия. | ||
Поскольку поверхности через кубы должны соответствовать своему окружению, использование чрезмерного числа кубов на небольшой площади может привести к заметным визуальным разрывам во время перемещения по карте. Для участков с высокой отражающей способностью правильнее будет разместить один куб по цетру, и не более. Это позволит избежать швов или растрескиваний во время движения картинки. | Поскольку поверхности через кубы должны соответствовать своему окружению, использование чрезмерного числа кубов на небольшой площади может привести к заметным визуальным разрывам во время перемещения по карте. Для участков с высокой отражающей способностью правильнее будет разместить один куб по цетру, и не более. Это позволит избежать швов или растрескиваний во время движения картинки. | ||
Чтобы определить вес кубов в той или иной зоне, загляните в категорию World Rendering с помощью консольной команды <code> | Чтобы определить вес кубов в той или иной зоне, загляните в категорию World Rendering с помощью консольной команды <code>{{L|showbudget|+showbudget}}</code>. Если категория регистрирует необычайно высокую загрузку, значит в зоне слишком много кубов. Простой сценарий решения проблемы – скрыть все кубы в программе Hammer, перекомпилировать и запустить карту. Если производительность стала заметно лучше, значит надо уменьшить плотность или разрешение кубов. | ||
Наконец, проверить загрузку можно, отключая кубы командой <code>mat_specular 0</code>, но это требует подтверждения. | Наконец, проверить загрузку можно, отключая кубы командой <code>mat_specular 0</code>, но это требует подтверждения. | ||
Line 123: | Line 126: | ||
{{note|Для некоторых игр (L4D{{L4d}}/L4D2{{L4d2}}) после построения кубов требуется полный '''перезапуск игры'''.}} | {{note|Для некоторых игр (L4D{{L4d}}/L4D2{{L4d2}}) после построения кубов требуется полный '''перезапуск игры'''.}} | ||
{{bug|В | {{bug|hidetested=1|В {{L|Team Fortress 2}} по-умолчанию нет кубов, поэтому все отражающие поверхности будут показывать {{L|missing content|отсутствующий материал}} текстур, напоминающих чёрно-розовые шашечки. Во избежание проблемы, создавайте кубы вручную.}} | ||
{{bug|Создание кубов в Portal 2 вызовет ошибку игры, если карта будет загружаться из папки по-умолчанию ''common/portal 2/portal2/maps''. Этот сбой возникнет при перезапуске карты после создания кубов. Во избежание ошибки, в строке 'Place compiled maps' закладки | {{bug|hidetested=1|Создание кубов в Portal 2 вызовет ошибку игры, если карта будет загружаться из папки по-умолчанию ''common/portal 2/portal2/maps''. Этот сбой возникнет при перезапуске карты после создания кубов. Во избежание ошибки, в строке 'Place compiled maps' закладки {{L|Hammer_Build_Programs|Build Programs}} впишите 'common/portal 2/portal2_dlc2/maps', затем перекомпилируйте карту, после чего создайте кубы.}} | ||
== См. также == | == См. также == | ||
* [[ | * {{L|$envmap}} | ||
[[Category:Level_Design]] | |||
[[Category:Russian]] | |||
{{ACategory|Level Design}} |
Latest revision as of 07:16, 20 May 2025
Чтобы движок Source правильно показывал многочисленные отражающие материалы , они должны быть объединены с внешними данными. Эти данные хранятся в виде карты-куба (cubemap), то есть кубической текстуры, которая представляет собой трёхмерное изображение определённой области. Для этого движок Source использует точечные сущности env_cubemap в качестве образцов, с помощью которых создаёт текстуры и сохраняет их в файл с расширением ".bsp
". При обработке зеркальных и других окружающих материалов он использует кубы для получения более точного окружения. Другими словами, куб создаёт текстуры, которые будут моделировать отражающую поверхность.





Размещение
Чтобы обозначить область, которую охватит куб, просто вставьте на карту сущность env_cubemap . Когда карта скомпилируется программой VBSP , поверхности геометрии мира автоматически свяжут себя с ближайшей env_cubemap , и будут использовать рождённый ей куб. Поверхности связывают себя с ближайшей env_cubemap (однако, в свойствах куба можно задать любую привязываемую поверхность); движущиеся сущности будут автоматически выбирать нужный куб. Важно, чтобы положение env_cubemap было эстетичным и производительным.
Карты-кубы используются для разных ситуаций, и должны располагаться соответствующе. Одни нужны для отображения статической геометрии мира. Другие - для отображения сущностей игроков, включая ботов (NPC ). Третьи нужны для отображения всевозможных неигровых энтить. Каждой из этих целей соответствует оптимальное расположение env_cubemap , дабы обеспечить максимальную отдачу. Вот несколько простых эвристических правил, которым необходимо следовать:
- Если куб предназначен для NPC или игрока, env_cubemap следует размещать на уровне головы (как правило, 64 юнита). Таким образом, она наиболее точно передаст мир с точки зрения стоящего.
- Если куб предназначен для статичной геометрии мира, то справедливым, как правило, будет расстояние в 16 юнитов от всех поверхностей.
- В каждой зоне с визуальным контрастом должна быть своя карта-куб. Коридор с ярко-жёлтым светом требует своей env_cubemap , особенно, если она расположена рядом с комнатой, где горит тускло-голубой свет. Если в одном их этих мест не будет env_cubemap , то отражения и блики на сущностях и геометрии будут моделироваться неправильно.
Построение кубов
Когда карта будет скомпилирована и освещена VBSP и VRAD (соответственно), можно создавать кубы. После загрузки карты, введите в консоли команду buildcubemaps
. Начнётся процесс построения, который займёт некоторое время, в течение которого вы сможете увидеть каждую из шести граней кубов. После завершения, карту или игру нужно перезагрузить, чтобы кубы правильно применились ко всем поверхностям.

buildcubemaps
, установите значение mat_specular
в 0, иначе это приведёт к неправильным отражениям!

HDR
Если карта скомпилирована с включённой опцией HDR в программе VRAD , кубы необходимо построить как в режиме HDR, так и LDR (не-HDR). Создание кубов только в одном из этих режимов будет означать, что кубы не представлены в другом режиме. Информацию о том, как строить кубы под HDR см. в Основах освещения HDR .
Кубы должны быть построены для карт LDR и HDR. Предположим, вы уже находитесь в режиме HDR и загрузили свежескомпилированную карту (в программе VRAD должен быть включён параметр '-both
'). Перейдите в консоль и выполните следующие команды:
buildcubemaps mat_hdr_level 0 (для перехода в LDR) restart (для перезагрузки карты) buildcubemaps mat_hdr_level 2 (для перехода обратно в HDR) restart (для перезагрузки карты)

Игры Team Fortress 2 / Source 2012+
Team Fortress 2 по-умолчанию не применяет кубы к отражающим поверхностям. (Аналогичные проблемы также имеются и в некоторых установках
Portal 2 , когда кубы просто не появляются). Все текстуры светятся чёрно-розовыми шашечками. Если вы построите кубы, и один из них увидит большую сверкающую поверхность, то зафиксирует её в 6 изображениях. Это значит, что некоторые объекты будут бликовать так, будто рядом с ними находится розовая и чёрная сверкающая текстура. Для решения проблемы, кубы нужно строить с отключенной зеркальностью. Чтобы построить кубы для карты TF2, загрузите её через "Create Server". Затем, откройте консоль и выполните следующие команды:
Создание кубов только для LDR или HDR:
mat_specular 0 buildcubemaps mat_specular 1 disconnect sv_cheats 1 mat_reloadallmaterials sv_cheats 0
При создании кубов для HDR требуется, чтобы вы повторили эти шаги после загрузки карты с включённым HDR.



buildcubemaps
потребуется включить читы (sv_cheats 1
).Кубы после обновления SteamPipe
В связи с обновлением SteamPipe, возникла проблема построения кубов без видимых результатов. Согласно ветке форума, проблему можно решить следующим образом:

- Поместите энтити env_cubemap в доступных местах вашей карты, и скомпилируйте её. Важно: Название карты должно быть не длиннее 30 символов, (включая расширение .bsp), иначе .bsp не запишется! Также, не меняйте название карты после создания кубов, иначе они не будут работать!
- Возьмите ваш любимый редактор файлов .bsp (Например, VIDE или Pakrat. Работа с этими инструментами не входит в данную статью.), и загрузите ваш .bsp.
- Удалите все файлы "Texture" или "Texture (HDR) ". (Не файлы "Material", только .vtf!)
- Сохраните отредактированный .bsp.
- Скопируйте эту карту назад в каталог карт вашей игры.
- Откройте консоль и введите: "map -название карты-". (В моём случае, "ttt_mars_colony_cubemap".)
- В игре, снова откройте консоль и введите это: "mat_specular 0" и "buildcubemaps".
- Подождите, пока построятся кубы, и снова включите зеркальность с помощью "mat_specular 1", а затем перезагрузите ваши материалы командой "mat_reloadallmaterials".
Примечание:Если вы хотите упаковать в карту пользовательский контент, сделайте это после создания кубов.
Source Filmmaker
Сегодня создание кубов в Source Filmmaker не работает, и отрисовывает только одну поверхность с одним кубом. Чтобы правильно создавать кубы в Source Filmmaker, скопируйте файл карты вместе с принадлежностями (текстурами, моделями, и т.д.) в Alien Swarm . Движок не требует перекомпиляции карты, достаточно её перенести. Загрузите вашу карту в Alien Swarm и введите в консоль команду "buildcubemaps". После отрисовки поверхностей, ваша карта будет содержать кубы, которые можно скопировать обратно в Source Filmmaker. Это работает только с новыми версиями карт, при загрузке карт из
TF2 или Garry's Mod игра будет вылетать.
Откройте 'не скопированную' версию в Хаммер и постройте её с помощью дополнительного режима поиска 'чужих' (относительных) путей содержимого sfm. todo: абсолютные пути.
Пример для 'общего' расположения:
"SearchPaths" { "Game" "|gameinfo_path|." "Game" "swarm" "Game" ".\..\SourceFilmmaker\game\tf_movies" "Game" ".\..\SourceFilmmaker\game\tf" "Game" ".\..\SourceFilmmaker\game\usermod" "Game" ".\..\SourceFilmmaker\game\hl2" "Game" "swarm_base" "Game" "platform" }
Portal 2
Если вы хотите создавать кубы для карт, расположенных в "Portal 2/portal2/maps" (Hammer копирует карты туда по-умолчанию), Portal 2 вылетит, потому что ищет карты в разделе "portal2_dlc2/maps". Так что, если вы хотите избежать сбоя, скопируйте вашу карту в "Portal 2/portal2_dlc2/maps" (или каталог карт вашего мода), перезагрузите её и создайте кубы снова. Это должно работать.
Black Mesa
Перед тем как строить кубмапы в Black Mesa , запустите игру с такими параметрами bms.exe -oldgameui -dev -console +r_4way_use_fast_normals 0 +mat_specular 0
Далее запустите карту и введите в консоли buildcubemaps
Тестирование
Лучше всего карты-кубы тестировать с помощью консольной команды impulse 81
. Введите её в консоль. Затем, впишите give
weapon_cubemap.

Это заменит текущую модель оружия с "cubemap weapon " на несколько сфер, каждая со своей отражающей поверхностью. Путешествуя по карте, вы увидите, где и как применяются кубы в пространстве, а также, на сколько верно куб описывает зону освещения и цвета.


Производительность
Сущность env_cubemap
позволяет задавать разрешение связываемой с ней текстуры. С одной стороны, чем больше разрешение, тем точнее и “резче” результат, но с другой – сильнее расход памяти. В основном, кубы должны иметь разрешение по умолчанию (32x32 пикселя для каждой поверхности). Обычно это дает удовлетворительный результат. Некоторые исключения возможны для областей с высокой отражающей способностью или, например, для детализации определенных частей действия.
Поскольку поверхности через кубы должны соответствовать своему окружению, использование чрезмерного числа кубов на небольшой площади может привести к заметным визуальным разрывам во время перемещения по карте. Для участков с высокой отражающей способностью правильнее будет разместить один куб по цетру, и не более. Это позволит избежать швов или растрескиваний во время движения картинки.
Чтобы определить вес кубов в той или иной зоне, загляните в категорию World Rendering с помощью консольной команды +showbudget
. Если категория регистрирует необычайно высокую загрузку, значит в зоне слишком много кубов. Простой сценарий решения проблемы – скрыть все кубы в программе Hammer, перекомпилировать и запустить карту. Если производительность стала заметно лучше, значит надо уменьшить плотность или разрешение кубов.
Наконец, проверить загрузку можно, отключая кубы командой mat_specular 0
, но это требует подтверждения.
Баги

