func_occluder

Описание

Объект func_occluder используется для динамического контроля видимости Prop-объектов на карте, и используется для оптимизации карт, скрывая объекты, которые находятся за ним.
Особенности использования

Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах. Удаление объекта во время игры лишае возможности контролировать объект.
Объект должен быть установлен там, где будет использоваться.
На карте может быть установлено множество этих объектов
Объект НЕ делит пространство карты на листья (Leaves) для BSP-дерева.
При использовании этого объекта могут активно расходоваться ресурсы CPU компьютеров игроков, потому что постоянно проверяется видимость Prop-объектов сквозь этот объект. Неправильное применение этого объекта может существенно снизить быстродействие карты. Смотрите пункт "Как работает этот объект".
Объект не задерживает пуль, через него можно свободно проходить и он не уменьшает область видимости для ботов. Он используется только для динамического контроля видимости Prop-объектов на карте.
Объект должен быть покрыт материалом tools/toolsoccluder.
Объект не должен иметь на себе DISPLACEMENT-поверхностей.
Объект может иметь любую форму и может состоять из любого количества брашей. Но чем сложнее конструкция этого объекта, тем сложнее расчёты во время игры.
Объект скрывает Prop-объекты, но не скрывает Lightmap-тени и динамические тени.
Для настройки объектов func_occluder используется объект worldspawn.
Ошибки

Не обнаружены.
Как работает этот объект

Объект func_occluder работает по следующему принципу:
вокруг объекта func_occluder, в том направлении куда смотрит игрок, ищутся абсолютно все "prop_" объекты и отбираются только те, размер которых подходит для того, чтобы быть скрытыми;
проверяется: можно ли видеть "Bounding Box" каждого отобранного объекта через объект func_occluder; каждый "prop_" объект имеет вокруг себя так называемый "Bounding Box" – это габаритный параллелепипед вокруг всех точек модели Prop-объектов;
видимые объекты будут рисоваться, а невидимые будут скрыты.
Очень важно осознавать как работает объект func_occluder и в каких случаях его лучше всего применять. Неправильное или неуместное применение объекта func_occluder может повлечь за собой снижение производительности карты.
Объекты func_occluder уместно размещать внутри стен, за которыми игроки точно не смогут ничего увидеть.
Эффективность использования объекта func_occluder может быть достигнута только в том случае, когда скрываемые объекты используют много видеопамяти на свои текстуры и/или состоят из большого количества полигонов. Таким образом при помощи объекта func_occluder можно уменьшить нагрузку на видеокарту, ценой увеличения нагрузки на центральный процессор. Используйте объект func_occluder только тогда, когда это действительно необходимо.
Движок Source не даёт гарантии, что будет использоваться абсолютно любой объект func_occluder, находящийся в поле зрения игрока. В целях сокращения нагрузки на центральный процессор, объекты func_occluder будут использоваться в зависимости от их размеров и удалённости от игрока.
Заметки

Модели игроков тоже являются Prop-объектами, поэтому тоже будут скрываться объектом func_occluder, однако оружие, находящееся в руках игроков, не скрывается. Эту особенности можно применять против читерства на вашей карте, делая жизнь читерам ещё сложнее.
Для отладки объектов func_occluder предусмотрены следующие консольные команды:
r_occlusion - (0 или 1, по умолчанию 1) включить/выключить использование объектов func_occluder;
r_visocclusion (0 или 1, по умолчанию 0) скрыть/показать объекты func_occluder, а так же того, что они делают; красным цветом будут отмечены все prop-объекты, которые не скрыты, а зелёным – те, которые скрыты;
r_occlusionspew (0 или 1, по умолчанию 0) включить/выключить отображение эффективности использования объектов func_occluder; в консоли будет выводиться отношение количества скрытых Prop-объектов, к общему количеству обрабатываемых Prop-объектов;
r_occludermincount (по умолчанию 0) минимальное количество объектов func_occluder, которые будут обрабатываться одновременно; 0 – количество не ограничено, но лимитируется размерами объектов func_occluder, которые видит игрок; (см. консольную команду "r_occluderminarea");
r_occludeemaxarea (от 0.0 до 100.0, по умолчанию 0) используется для определения максимального количества пикселей на экране, которое могут занимать Prop-объекты, для того чтобы обрабатываться (скрываться) объектами func_occluder; например: размер экрана 1024x768, поэтому на экране всего 1024 * 768 = 786432 пикселей; если "r_occludeemaxarea = 50", то Prop-объект будет обрабатываться только в том случае, если он будет занимать на экране меньше чем 786432 / 2 = 393216 пикселей, в противном случае такой Prop-объект не будет обрабатываться (скрываться); если "r_occludeemaxarea = 100", то любой Prop-объект сможет быть скрыт объектами func_occluder; если "r_occludeemaxarea = 0", то используется значение по умолчанию; в редакторе Hammer это значение настраивается в свойствах объекта worldspawn: Main menu > Map > Map Properties... > свойство "Max Occluder Area";
r_occluderminarea (по умолчанию 0) эта команда используется совершенно по-другому, нежели команда "r_occludeemaxarea"; используется для определения минимального размера, который должны иметь объекты func_occluder на экране игрока, для того чтобы использоваться игрой для скрывания Prop-объектов; настраивая значение для этой команды, можно регулировать расстояние от игрока, на котором будут работать объекты func_occluder; в редакторе Hammer это значение настраивается в свойствах объекта worldspawn: Main menu > Map > Map Properties... > свойство "Min Occluder Area".
Параметры

Initial State – состояние объекта (Неактивен/Активен).
Initial State – состояние объекта в начале каждого раунда (Включен/Выключен);
Inputs

Activate – активизировать объект (заставить его работать);
Deactivate – деактивировать объект;
Toggle – переключить состояние объекта (Включен/Выключен);
Карта

csssdk_func_occluder.vmf
Используются объекты
func_occluder
func_button
func_detail
prop_static
prop_physics
prop_door_rotating
prop_ragdoll
logic_auto
point_servercommand
Описание карты
На карте расставлено несколько объектов prop_static, раскидано несколько объектов prop_physics и положен один prop_ragdoll. Между точкой появления игрока и большинством из этих объектов находится пульт управления объектом func_occluder и сам невидимый объект func_occluder, вставленный в большую раму посреди карты. На пульте три кнопки. Первая кнопка включает и выключает объект func_occluder. Вторая кнопка включает и выключает режим отображения работы объекта func_occluder. Третья кнопка включает и выключает суровые настройки объекта func_occluder.
Включите объект func_occluder, если он ещё не включен, и нажмите вторую кнопку на пульте. Включится режим отображения работы объекта func_occluder. Объект func_occluder будет рисоваться белым цветом, зелёным цветом - "Bounding Box" у скрытых объектов, а красным – у отображаемых. Не нажимая на третью кнопку побегайте по карте и посмотрите как работает объект func_occluder. Обязательно постреляйте из своего оружия и посмотрите, что использованные гильзы пуль тоже скрываются объектом func_occluder. Теперь нажмите на третью кнопку пульта и сравните разницу с тем что будет если её отжать. При нажатии на третью кнопку пульта выполняется консольная команда "r_occludeemaxarea", которая используется для отладки объектов func_occluder. В своих картах ни в коем случае не используйте эту консольную команду! В этой карте-примере она используется в учебных целях и только для того, чтобы показать возможности использования объекта func_occluder. Так вот, если нажать на третью кнопку пульта, то радиус действия объекта func_occluder увеличится и начнут скрываться даже довольно крупные объекты – такие как деревья. Отойдите от пульта немного назад и опустите "зрение" немного вниз. Можете заметить, что даже когда дерево находится в поле зрения игрока, но игрок не может его видеть – оно всё равно скрывается.
Функции "r_occludeemaxarea" и "r_occluderminarea" нельзя использовать на ваших картах, но вы всегда можете настроить эти параметры через объект worldspawn, указав в свойствах "Min Occluder Area" и "Max Occluder Area" нужные вам значения. Для того чтобы найти объект worldspawn нужно в редакторе Hammer открыть меню: Main menu > Map > Map Properties...
Смотрите также

worldspawn



Комментарии

Оставьте комментарий

Опрос

Вы пользуетесь горячими клавишами в Hammer'е?

Категории раздела

info_ [16]
item_ [7]
light_ [4]
logic_ [8]
filter_ [5]
phys_ [5]
player_ [0]
point_ [2]
prop_ [11]
trigger_ [8]
math_ [3]
path_ [0]
Прочее [10]
Ai_ [2]
env_ [45]
game_ [5]
func_ [39]

МИНИ-ЧАТ

Друзья сайта

HL2 & Source Games

Mapper720.Ru - сайт о маппинге Half-life 2

 

Статистика


Онлайн всего: 1
Прохожих: 1
Пользователей: 0


Сегодня нас посетили:

Приветствуем нового пользователя:
Noug4at

Новое в AgnesTeam

Теги

smd expotrer smd importer smd плагин 3ds max тутор запор запорожец модель для чайников ленивых Displacement 3ds Max Hammer source создание модели 3D Ripper 3D Ripper DX 3d ripper dx туториал 3D Ripper DX уроки 3D ripper урок 3dr риппер Combine HUD Suit Туториал refract понтовый эффект преломление текстуры Source sdk SkyBox небо скайбокс создание skybox создание скайбокса маппинг portal 2 Portal 2 панели панели веры портал 2 Portal gel source sdk урок гель гель отталкивающий гель туторы source sdk мосты плотного света тутор туторы portal 2 уроки портал 2 строим карту portal 2 hammer editor кейв джонсон туториал portal 2 панели урок source sdk вспышки от выстрелов game_ Ui кодинг облагораживание мода покачивание камеры коддинг создание кода prop_static prop_physics_override энтити prop_ prop_dynamic_ornament физика phys_pulleyconstraint phys_ballsocket Phys_ физика Source phys_motor Left4Dead2: ep2 Episode 2 маппинг машина радар