PrimeXT
PrimeXT copied to clipboard
Если оригин модели находится внутри браша, то не всегда видно модель
Если оригин модели находится в браше на глубине 24 юнитов, то модельку НЕ видно Если оригин модели находится в браше на глубине 23 юнитов, то модельку ВИДНО
Тестовая карта
issue98_test.pk3dir.zip

Because server-side PVS culling for env_static entities should be disabled at all. ENGINE_CHECK_VISIBILITY in AddToFullPack
Same bug as #29
Because server-side PVS culling for env_static entities should be disabled at all. ENGINE_CHECK_VISIBILITY in AddToFullPack
Но это вызывает overflow сети, т.к. клиенту отправляется огромный пакет сразу с информацией обо всех статиках.
Хотя с другой стороны, env_static с флагом solid не считаются статичными. В таком случае отключение проверки видимости через PVS для статиков ничего особо не даст.
А правильное решение будет такое: сделать, чтобы PVS проверялся не по оригину модели, а по её ббоксу, и при этом с учётом скейла.
Реальная проблема оказалась внутри движковой функции R_SplitEntityOnNode. Энтити, у которых origin находится внутри браша, отбрасываются внутри этой функции, и efrags не линкуются ни к одной ноде. Соответсвенно, энтити просто не попадает в список рендеринга. Решением видится создать отдельный список для отброшенных статичных энтити, и также их каждый кадр отправлять в HUD_AddEntity.
Вскрылась другая проблема. Модели больших размеров в env_static также неверно куллятся, даже несмотря на стандартный скейл. Видимо efrags который содержит этот статик, привызявается к какой-то ноде, и если нода не видна, то и статик тоже.