Вопрос по light_environment

TiGeR

Маппер
Участник
Сообщения
2
Реакции
8
Баллы
3
Всем привет, расскажу вкратце предысторию. Делал знакомой карту, но в какой-то момент часть модели с белым цветом и руки на этой карте становились желтыми. Потом вдруг они стали розовыми.. Мне сразу стало понятно, что дело в освещении, а именно в light_environment.

Чтобы это проверить, я сделал несколько маленьких карт с открытым небом. Баг... это же баг.. ? :unsure::rolleyes::sneaky: .. Он работает только на карте, у которой есть текстура sky.
В ходе экспериментов стало ясно, что если на карте с небом нет light_environment, то игра пихает light_environment из карты, которая была ДО. У которой была эта энтити и было небо. 🤷‍♂️
Поэтому и решил я написать сюда, потому что ничего не понятно, но очень интересно.. Почему так происходит?
Выход то я нашел.. создал light_environment с полной прозрачностью.. ещё и флаг initially dark вхерачил.. игра будто видит, что эта энтити есть на карте и не подменяет её.
Но всё равно интересно было бы пролить light на всё это дело, вдруг кто сможет помочь разобраться.. )

Цепляю видео с тестом на разных картах..

@white_sky - карта с light (белый), с небом. Без light_environment
@white_entoff - карта с light (белый) и light_environment (255 255 255 0;initially dark)
@green_sky - карта с light_environment (зелёный), с небом.
@red_sky - карта с light_environment (красный), с небом.

 
Все дело в прекеше, движок просто оставляет параметры от предыдущей карты если нету нового енвайрмента.
Так же работает и с освещением в water, оно берет подводный свет с прошлой карты, обходится это через func_illusionary-> Contains -> Water вместо обычного func_water
Вроде всё.
 
Фиксится простым плагином, базово:
Код:
#include <amxmodx>
public plugin_precache()
{
    set_cvar_num("sv_skycolor_r", 127)
    set_cvar_num("sv_skycolor_g", 127)
    set_cvar_num("sv_skycolor_b", 127)
}

Важно делать в precache а не init чтобы ДО загрузки BSP задавался дефолтный цвет, если BSP задает свой цвет то в таком случае он загрузит свои параметры skycolor, если же есть "sky" но нет light_environment то поставит 127. 127. 127 как в задано в плагине.
 

Кто просматривает тему

Назад
Верх