Многие
зеркальные и 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`ов и/или их
разрешение.