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) | ||
| (6 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| {{ | {{LanguageBar|title = Карты-кубы}} | ||
| {{Todo|Needs info about Source 2 cube maps, or can be it's own article}} | |||
| {{note|Для создания карты-куба (cubemap) в {{csgo}} | [[File:Env_cubemap.png|left]][[File:Specular.jpg|thumb|350px|right|Зеркальные отражения на пропах.]] | ||
| {{note|{{portal2}} | Чтобы движок 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, иначе это приведёт к неправильным отражениям!}}   | ||
| Line 26: | Line 28: | ||
| ===HDR=== | ===HDR=== | ||
| Если карта скомпилирована с включённой опцией  | Если карта скомпилирована с включённой опцией {{L|HDR}} в программе {{L|VRAD}}, кубы '''необходимо''' построить как в режиме HDR, '''так и''' LDR (не-HDR). Создание кубов только в одном из этих режимов будет означать, что кубы не представлены в другом режиме. Информацию о том, как строить кубы под HDR см. в {{L|HDR_Lighting_Basics|Основах освещения HDR}}. | ||
| Кубы должны быть построены для карт LDR и HDR. Предположим, вы уже находитесь в режиме HDR и загрузили свежескомпилированную карту (в программе VRAD должен быть включён параметр '<code>-both</code>'). Перейдите в консоль и выполните следующие команды: | Кубы должны быть построены для карт LDR и HDR. Предположим, вы уже находитесь в режиме HDR и загрузили свежескомпилированную карту (в программе VRAD должен быть включён параметр '<code>-both</code>'). Перейдите в консоль и выполните следующие команды: | ||
| Line 40: | Line 42: | ||
| ===Игры Team Fortress 2 / Source 2012+ === | ===Игры Team Fortress 2 / Source 2012+ === | ||
| {{tf2}} | {{tf2}}{{L|Team Fortress 2}}  по-умолчанию не применяет кубы к отражающим поверхностям. (Аналогичные проблемы также имеются и в некоторых установках {{portal2}}{{L|Portal 2}}, когда кубы просто не появляются). Все текстуры светятся чёрно-розовыми шашечками. Если вы построите кубы, и один из них увидит большую сверкающую поверхность, то зафиксирует её в 6 изображениях. Это значит, что некоторые объекты будут бликовать так, будто рядом с ними находится розовая и чёрная сверкающая текстура. Для решения проблемы, кубы нужно строить с отключенной зеркальностью. Чтобы построить кубы для карты TF2, загрузите её через "Create Server".  Затем, откройте консоль и выполните следующие команды: | ||
| Создание кубов только для LDR '''или''' HDR: | Создание кубов только для LDR '''или''' HDR: | ||
| Line 61: | Line 63: | ||
| ===Кубы после обновления SteamPipe=== | ===Кубы после обновления SteamPipe=== | ||
| В связи с обновлением SteamPipe, возникла проблема построения кубов без видимых результатов. Согласно [http://www.facepunch.com/showthread.php?t=1293081 ветке форума], проблему можно решить следующим образом: | В связи с обновлением SteamPipe, возникла проблема построения кубов без видимых результатов. Согласно [http://www.facepunch.com/showthread.php?t=1293081 ветке форума], проблему можно решить следующим образом: | ||
| {{bug|Редактирование непосредственно файла карты имеет неприятные последствия! Включая глюки графики и потери теней от статичных моделей! [https://steamcommunity.com/app/211/discussions/0/846959998155287479/ данный] метод может предотвратить это.}} | {{bug|hidetested=1|Редактирование непосредственно файла карты имеет неприятные последствия! Включая глюки графики и потери теней от статичных моделей! [https://steamcommunity.com/app/211/discussions/0/846959998155287479/ данный] метод может предотвратить это.}} | ||
| <code> | <code> | ||
| # Поместите энтити env_cubemap в доступных местах вашей карты, и скомпилируйте её. Важно: Название карты должно быть не длиннее 30 символов, (включая расширение .bsp), иначе .bsp не запишется! Также, не меняйте название карты после создания кубов, иначе они не будут работать! | # Поместите энтити env_cubemap в доступных местах вашей карты, и скомпилируйте её. Важно: Название карты должно быть не длиннее 30 символов, (включая расширение .bsp), иначе .bsp не запишется! Также, не меняйте название карты после создания кубов, иначе они не будут работать! | ||
| Line 77: | Line 79: | ||
| ===Source Filmmaker=== | ===Source Filmmaker=== | ||
| Сегодня создание кубов в Source Filmmaker не работает, и отрисовывает только одну поверхность с одним кубом. Чтобы правильно создавать кубы в Source Filmmaker, скопируйте файл карты вместе с принадлежностями (текстурами, моделями, и т.д.) в {{as}} | Сегодня создание кубов в 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 97: | 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 120: | 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:Level_Design]] | ||
| [[Category:Russian]] | [[Category:Russian]] | ||
| {{ACategory|Level Design}} | |||
Latest revision as of 07:16, 20 May 2025
Чтобы движок Source правильно показывал многочисленные отражающие материалы, они должны быть объединены с внешними данными. Эти данные хранятся в виде карты-куба (cubemap), то есть кубической текстуры, которая представляет собой трёхмерное изображение определённой области. Для этого движок Source использует точечные сущности env_cubemap в качестве образцов, с помощью которых создаёт текстуры и сохраняет их в файл с расширением ".bsp". При обработке зеркальных и других окружающих материалов он использует кубы для получения более точного окружения. Другими словами, куб создаёт текстуры, которые будут моделировать отражающую поверхность.
 Примечание:Для создания карты-куба (cubemap) в
Примечание:Для создания карты-куба (cubemap) в  Counter-Strike: Global Offensive в параметрах запуска игры необходимо добавлять -insecure.
Counter-Strike: Global Offensive в параметрах запуска игры необходимо добавлять -insecure.  Примечание:
Примечание: Portal 2 и
Portal 2 и  Team Fortress 2 имеют проблемы с построением кубов. Они описаны в конце статьи.
Team Fortress 2 имеют проблемы с построением кубов. Они описаны в конце статьи. Размещение
Чтобы обозначить область, которую охватит куб, просто вставьте на карту сущность 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, иначе это приведёт к неправильным отражениям! Примечание:Созданные кубы сохраняются в bsp файл, который помещается в папку игры, а не в то место, где вы скомпилировали карту.
Примечание:Созданные кубы сохраняются в bsp файл, который помещается в папку игры, а не в то место, где вы скомпилировали карту. Примечание:Если после создания кубов вы переименуете bsp файл, то их придётся строить заново.
Примечание:Если после создания кубов вы переименуете bsp файл, то их придётся строить заново.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 (для перезагрузки карты)
 Примечание:Это не относится к CS:GO, т.к. HDR не может быть отключён.
Примечание:Это не относится к CS:GO, т.к. HDR не может быть отключён.Игры Team Fortress 2 / Source 2012+
 Team Fortress 2  по-умолчанию не применяет кубы к отражающим поверхностям. (Аналогичные проблемы также имеются и в некоторых установках
Team Fortress 2  по-умолчанию не применяет кубы к отражающим поверхностям. (Аналогичные проблемы также имеются и в некоторых установках  Portal 2, когда кубы просто не появляются). Все текстуры светятся чёрно-розовыми шашечками. Если вы построите кубы, и один из них увидит большую сверкающую поверхность, то зафиксирует её в 6 изображениях. Это значит, что некоторые объекты будут бликовать так, будто рядом с ними находится розовая и чёрная сверкающая текстура. Для решения проблемы, кубы нужно строить с отключенной зеркальностью. Чтобы построить кубы для карты TF2, загрузите её через "Create Server".  Затем, откройте консоль и выполните следующие команды:
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.
 Примечание:Если при постройке кубов игра вылетает, то скорее всего вы установили слишком низкое разрешение экрана. Убедитесь, что высота и ширина экрана игры более 512 пикселей. Это означает, что минимальное стандартное разрешение должно составлять 800X600. Разрешение можно поменять на вкладке Видео в меню игры Параметры.
Примечание:Если при постройке кубов игра вылетает, то скорее всего вы установили слишком низкое разрешение экрана. Убедитесь, что высота и ширина экрана игры более 512 пикселей. Это означает, что минимальное стандартное разрешение должно составлять 800X600. Разрешение можно поменять на вкладке Видео в меню игры Параметры. Примечание:Если после построения кубов вы переименуете файл .bsp, они перестанут работать и куб неба сбросится в стандартные настройки. Каждый раз после переименования карты кубы нужно создавать заново. Однако, в этом случае старые кубы не удаляются, что приводит к разрастанию размера файла. Если вы желаете избежать проблем с загрузкой вашей карты, не переименовывайте её после компиляции.
Примечание:Если после построения кубов вы переименуете файл .bsp, они перестанут работать и куб неба сбросится в стандартные настройки. Каждый раз после переименования карты кубы нужно создавать заново. Однако, в этом случае старые кубы не удаляются, что приводит к разрастанию размера файла. Если вы желаете избежать проблем с загрузкой вашей карты, не переименовывайте её после компиляции. Примечание:В некоторых играх на многопользовательских картах перед запуском команды
Примечание:В некоторых играх на многопользовательских картах перед запуском команды 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. Это работает только с новыми версиями карт, при загрузке карт из
Alien Swarm. Движок не требует перекомпиляции карты, достаточно её перенести. Загрузите вашу карту в Alien Swarm и введите в консоль команду "buildcubemaps". После отрисовки поверхностей, ваша карта будет содержать кубы, которые можно скопировать обратно в Source Filmmaker. Это работает только с новыми версиями карт, при загрузке карт из  TF2 или Garry's Mod игра будет вылетать.
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" на несколько сфер, каждая со своей отражающей поверхностью. Путешествуя по карте, вы увидите, где и как применяются кубы в пространстве, а также, на сколько верно куб описывает зону освещения и цвета.
 Примечание:Вы можете скопировать cubemap weapon  из Steam\SteamApps\common\Half-Life 2\hl2\models\shadertest\envballs.mdl и добавить в свой мод, если он этого не имеет.
Примечание:Вы можете скопировать cubemap weapon  из Steam\SteamApps\common\Half-Life 2\hl2\models\shadertest\envballs.mdl и добавить в свой мод, если он этого не имеет. Примечание:Если перекомпилировать карту без перезапуска игры, кубы от предыдущей версии останутся в кэше, создавая иллюзию, что их не надо создавать заново. Этих кубов нет в карте, что покажет запуск карты на другом компьютере или её перезагрузка. Каждая новая компиляция стирает упакованные материалы, включая кубы.
Примечание:Если перекомпилировать карту без перезапуска игры, кубы от предыдущей версии останутся в кэше, создавая иллюзию, что их не надо создавать заново. Этих кубов нет в карте, что покажет запуск карты на другом компьютере или её перезагрузка. Каждая новая компиляция стирает упакованные материалы, включая кубы.Производительность
Сущность env_cubemap позволяет задавать разрешение связываемой с ней текстуры. С одной стороны, чем больше разрешение, тем точнее и “резче”  результат, но с другой – сильнее расход памяти. В основном, кубы должны иметь разрешение по умолчанию (32x32 пикселя для каждой поверхности). Обычно это дает удовлетворительный результат. Некоторые исключения возможны для областей с высокой отражающей способностью или, например, для детализации определенных частей действия.
Поскольку поверхности через кубы должны соответствовать своему окружению, использование чрезмерного числа кубов на небольшой площади может привести к заметным визуальным разрывам во время перемещения по карте. Для участков с высокой отражающей способностью правильнее будет разместить один куб по цетру, и не более. Это позволит избежать швов или растрескиваний во время движения картинки.
Чтобы определить вес кубов в той или иной зоне, загляните в категорию World Rendering с помощью консольной команды +showbudget. Если категория регистрирует необычайно высокую загрузку, значит в зоне слишком много кубов. Простой сценарий решения проблемы – скрыть все кубы в программе Hammer, перекомпилировать и запустить карту. Если производительность стала заметно лучше, значит надо уменьшить плотность или разрешение кубов. 
Наконец, проверить загрузку можно, отключая кубы командой mat_specular 0, но это требует подтверждения.
Баги
 Баг:В Team Fortress 2 по-умолчанию нет кубов, поэтому все отражающие поверхности будут показывать отсутствующий материал текстур, напоминающих чёрно-розовые шашечки. Во избежание проблемы, создавайте кубы вручную.
Баг:В Team Fortress 2 по-умолчанию нет кубов, поэтому все отражающие поверхности будут показывать отсутствующий материал текстур, напоминающих чёрно-розовые шашечки. Во избежание проблемы, создавайте кубы вручную. Баг:Создание кубов в Portal 2 вызовет ошибку игры, если карта будет загружаться из папки по-умолчанию common/portal 2/portal2/maps. Этот сбой возникнет при перезапуске карты после создания кубов. Во избежание ошибки, в строке 'Place compiled maps'  закладки Build Programs впишите 'common/portal 2/portal2_dlc2/maps', затем перекомпилируйте карту, после чего создайте кубы.
Баг:Создание кубов в Portal 2 вызовет ошибку игры, если карта будет загружаться из папки по-умолчанию common/portal 2/portal2/maps. Этот сбой возникнет при перезапуске карты после создания кубов. Во избежание ошибки, в строке 'Place compiled maps'  закладки Build Programs впишите 'common/portal 2/portal2_dlc2/maps', затем перекомпилируйте карту, после чего создайте кубы.




























