Valve hammer editor v3.4 - проблема со светом
В общем не буду ходить вокруг да около - проблема с тем, что свет проникает сквозь закрытые двери. Двери сделаны как entity_door. Свет пробовал разный - и обычный light и light_spot, и light_enviroment... Какого бы вида не был источник света, он проникает сквозь двери. Как избежать проникновение света сквозь entity двери? Пусть даже свет появляется мгновенно, после открытия двери - пофиг. Главное что бы его не было видно при закрытой двери на блоках, которые находятся вне освещенной комнаты.
Ты знал что такие вопросы можно задавать нейронкам?
1. Использование func_brush вместо func_door
Двери, сделанные как func_door, не блокируют свет, так как они считаются динамическими объектами, а свет рассчитывается только для статической геометрии.
Решение: Сделайте дверь из func_brush и привяжите её к триггеру или другому механизму открытия (например, через trigger_multiple или скрипты). func_brush будет учитываться при расчёте освещения и блокировать свет, когда дверь закрыта.
Недостаток: Это менее удобно для анимации открытия/закрытия, но можно настроить через I/O (Inputs/Outputs).
2. Добавление "теневой стены"
Создайте невидимую статическую стену (например, из текстуры tools/toolstrigger или tools/toolsnodraw) позади двери, которая будет блокировать свет.
Эта стена должна быть привязана к двери через I/O: когда дверь открывается, стена становится невидимой или отключается (используйте Disable или Kill), а при закрытии — включается обратно (Enable).
Это позволяет сохранить дверь как func_door, но требует точной настройки.
3. Использование light_dynamic
Если вам не принципиально использовать статический свет (light, light_spot, light_environment), попробуйте заменить его на light_dynamic. Этот тип света рендерится в реальном времени и учитывает динамические объекты, такие как двери.
Плюс: Свет не будет проникать сквозь закрытую дверь.
Минус: light_dynamic нагружает производительность, поэтому используйте его умеренно.
4. Разделение световых зон с помощью "leak-proof" геометрии
Убедитесь, что комната полностью герметична (без "ликов") и свет не "протекает" через щели в геометрии. Для этого:
Проверьте карту на утечки через Map > Load Pointfile после компиляции.
Используйте текстуру tools/toolsnodraw на всех поверхностях, которые не видны игроку, чтобы минимизировать ошибки компиляции.
Если геометрия комнаты замкнута, свет не должен проникать наружу, даже с func_door. Однако это работает только для статического света.
5. Настройка параметров компиляции VRAD
Убедитесь, что вы компилируете карту с финальными настройками освещения (-final в VRAD), чтобы получить более точный расчет теней.
Попробуйте увеличить разрешение световых карт (lightmap scale) на поверхностях рядом с дверью (в Hammer: выделите поверхность, нажмите Ctrl+L, уменьшите значение, например, до 8 или 4). Это может помочь точнее обработать тени.
Рекомендация
Самый простой и эффективный способ для большинства случаев — это комбинация func_door с "теневой стеной" из func_brush. Настройте их взаимодействие через I/O, чтобы стена исчезала при открытии двери и появлялась при закрытии. Это сохранит динамику двери и решит проблему со светом.
все это конечно интересно... а позвольте узнать где найти func_brush в этом редакторе? ткните плиз пальцем...
а fucn_door почему не использовать,я про энтити доор воббще не слышал,ещё может дверь слишком тонкая
распиши проблему тут и всё ответит
https://trychatgpt.ru/
https://chat.deepseek.com/
https://x.com/i/grok
на последнем впн нужен включённый в браузере в США