Cubemap`ы
Многие зеркальные и environment материалы на внешнюю информацию для обработки своего вида в игре. Эта информация может браться из Cubemap`ов - текстур, которые представляют собой 360-градусный рендеринг окружающей местности. Используя Cubemap`ы, зеркальные и environment материалы будут более точно отражать окружающие пространства. Ставить Cubemap`ы и располагать их в пространстве очень просто, но очень важно расположить их правильно, как в эстетическом плане, так и в плане производительности .
Расположение
Чтобы поставить Cubemap`ы на карте, нужно использовать env_cubemap ентитю. Когда карта откомпилирована с помощью VBSP, все видимые фэйсы автоматически связывают себя с ближайшими Cubemap`ами.
Нужно обратить внимание на то, что Cubemap`ы могут выполнять несколько задач в зависимости от того, как они расположены на карте. Некоторые Cubemap`ы будут использоваться для отражения окружающего пространства на геометрии карты. Другие Cubemap`ы будут использоваться для отражения окружающего пространства на различных ентитях, таких как NPC или сам игрок. Располагая Cubemap`ы на карте, нужно следовать нескольким простым правилам, чтобы получить от них максимальную пользу:
-
Если Cubemap`ы предназначены для NPC или игрока, то они должны быть расположены на высоте в 64 юнита, чтобы лучше всего отражать мир для находящихся рядом объектов.
-
Если Cubemap`ы предназначены для отражения окружающего пространства на геометрии, то они должны быть удалены на 16 юнитов от всех брашей.
-
Cubemap`ы должны быть размещены во всех зонах с визуальным контрастом. У коридора с ярким жёлтым светом должен быть свой Cubemap, особенно, если рядом будет комната с темно-синим светом. Без двух отдельных Cubemap`ов оражения и зеркальные эффекты будут отображаться неправильно на ентитях и геометрии карты.
Компиляция
Cubemap`ы могут быть построены только после компиляции карты VBSP`ом и VRAD`ом (соответственно). Запустите вашу карту и включите какой-нибудь из графиков(showbudget, net_graph), затем наберите в консоли buildcubemaps для построения Cubemap`ов . В верхнем левом углу вы сможете увидеть каждую грань Cubemap`а(по 6 на один Cubemap) во время рендеринга. В зависимости от вашей видеокарты, драйвера и сложности вашей карты процесс может занять от пары секунд до нескольких минут. После построения Cubemap`ов должна быть перезапущена, чтобы они правильно были применены ко всем граням объектов.
Тестирование
Правильность применения Cubemap`ов лучше всего проверять с помощью консольной команды impulse 81. Она заменяет текущую модель оружия на несколько сфер с различной отражающей способностью. Двигаясь по карте, вы сможете увидеть, какие Cubemap`ы поставлены в данную точку, правильно ли они применены. Это лучший способ проверить правильность применения Cubemap`ов.
Производительность
Ентитя env_cubemap позволяет пользователю выбирать размер отображаемой текстуры. С одной стороны увеличение текстуры делает результаты работы Cubemap`ов более лучшими, чем обычно, но с другой - увеличивает требования к текстурной памяти видеокарты. Для большинства Cubemap`ов следует использовать настройки по умолчанию относительно текстур. Некоторые исключения возможны для карт с большим количеством зеркальных поверхностей или очень детализированных карт.
Следует также отметить, что использование большого числа Cubemap`ов на маленьких пространствах может привести к визуальному несоответствию отражений. Для пространств с большим числом зеркальных поверхностей обычно рекомендуется ставить по одному Cubemap`у на центр фейса и всё. Это поможет избежать возникновения различных несостыковок и трещин(???) во время движения в игре.
Чтобы определить, насколько загружают систему Cubemap`ы,
посмотрите в графу World Rendering, набрав в консоли +showbudget.
Если эта категория расходует на себя слишком много системных ресурсов,
возможно, виной этому большое количество Cubemap`ов на карте.
Чтобы быть точно уверенным в этом, уберите в Хаммере все Cubemap`ы
и откомпилируйте карту заново, если производительность в игре заметно
увеличится, то вам следует уменьшить количество Cubemap`ов
и/или их разрешение.
Перевод
AndrewDragon`а
Приятного вам маппинга:)
©
2004 Valve Corporation. All rights reserved. Valve, the Valve logo,
Half-Life, the Half-Life logo, the Lambda logo, Steam, the Steam logo,
Team Fortress, the Team Fortress logo, Opposing Force, Day of Defeat,
the Day of Defeat logo, Counter-Strike, the Counter-Strike logo,
Source, the Source logo, Hammer and Counter-Strike: Condition Zero are
trademarks and/or registered trademarks of Valve
Corporation. Microsoft and Visual Studio are trademarks
and/or registered trademarks of Microsoft Corporation. All other
trademarks are property of their respective owners.