Тема: Отражения и кубмапы Ключевые слова: отражения поверхностей, производительность См. также: env_cubemap
Для прорисовки большинства отражающих материалов подразумевается наличие некоторой
дополнительной информации (не зависящей от свойств материала). Такую информацию предоставляет
кубмап, специальная текстура с рендерингом окружающей среды в 360° (полная сфера).
Используя кубмап в качестве образца, материалы гораздо точнее и реалистичнее отражают
окружающую среду, приобретают эффект рельефности (если он задан в свойствах материала). При расстановке кубмапов на карте (см. далее) важно придерживаться баланса: малое (или нулевое) количество кубмапов или неправильная их расстановка вызывает некрасивые и несоответствующие отражения окружающей среды, зато часто расположенные кубмапы прибавляют значительный объем к Вашей карте (после генерации их командой buildcubemaps) и отнимают больше ресурсов в игре. Расстановка кубмапов Для расстановки кубмапов на карте используйте энтити env_cubemap (каждая энтити определяет один кубмап). Если карта компилируется с VBSP, каждая поверхность автоматически использует ближайший кубмап для отражения. Обратите внимание, что положение кубмапа на карте зависит также от его назначения (для брашей, неподвижных объектов, оружия игрока, NPC и пр.). Для получения наилучшего визуального эффекта используйте несколько простых правил при расстановке кубмапов:
Пример-иллюстрация:
Компиляция карт с кубмапами После того, как карта откомпилирована в VBSP и с освещением VRAD, можно задавать генерацию кубмапов. Запустите карту и дождитесь завершения всех предварительных процессов после загрузки карты (сразу после ее загрузки в игре можно заметить дополнительные изменения изображения или некоторую паузу). Затем откройте консоль и введите команду buildcubemaps. Начнется генерация кубмапов для текущей карты, при этом в левом верхнем углу последовательно выводятся полученные изображения для каждого кубмапа (по 6 изображений на кубмап). Время генерации зависит от мощности видеокарты, свободных ресурсов системы, сложности карты и количества кубмапов, и может варьироваться от нескольких секунд до нескольких минут. После окончания генерации кубмапы внедряются в карту, и ее необходимо запустить повторно, чтобы полученные кубмапы корректно отразились на поверхностях. Замечание: если при построении кубмапов игра "вылетает" в Windows, возможно, у Вас слишком низкое разрешение экрана. Перед вводом команды buildcubemaps установите игровое разрешение с высотой и шириной экрана более 512 точек (как минимум 800х600). Кубмапы и HDR Если карта откомпилирована с опцией HDR, кубмапы должны быть сгенерированы как с включенным HDR, так и с выключенным (режим LDR). Проверка работы кубмапов Выполняется с помощью консольной команды impulse 81, которая заменяет текущее оружие специальной энтити weapon_cubemap, представляющей собой несколько сфер с различными отражающими поверхностями. Передвигаясь по карте, Вы увидите, какой кубмап используется в данной области, насколько точно он передает окружающую среду. Влияние кубмапов на производительность в игре Вы можете регулировать разрешение текстур, используемых для создания кубмапа. Текстуры с большим разрешением обеспечивают более четкие ("резкие") отражения, однако они и занимают больше места в памяти, отведенной под текстуры. Старайтесь для большинства env_cubemap оставлять разрешение текстур по умолчанию, которое приемлемо для большинства карт. Исключение составляют области с сильно отражающими поверхностями или высокой детализацией (например, доступная для игрока область). Слишком много кубмапов в маленькой области приводят к визуальным артефактам (искажениям, ошибкам) при изменении направления взгляда. В области с большим количеством сильно отражающих поверхностей рекомендуется ставить только один кубмап - около центра отражающей поверхности. В противном случае возможно появление "швов" и "прыгающих" отражений. Чтобы определить, сколько ресурсов отнимают кубмапы в конкретной области, для начала используйте консольную команду +showbudget и проверьте категорию World Rendering. Если в ней отображены слишком высокие затраты, возможной причиной являются кубмапы в данной области. Попробуйте скрыть их в редакторе Hammer и заново откомпилировать карту. Если затраты заметно ниже - необходимо уменьшить количество кубмапов или разрешение текстур этих кубмапов. При этом можно перераспределить кубмапы на карте. Статьи (рус): Статьи (eng): http://developer.valvesoftware.com/wiki/Cubemaps
Номер статьи: 6
|