а чо делает то? пропы некоторые только закрашивает?
Когда люди используют хук GetColorModulation для окраски мира, они обычно проверяют несколько типов текстур: «World textures», «StaticProp textures», «SkyBox textures». Из названий этих групп текстур можно сделать вывод, что они окрашивают только определенные участки карты. Однако можно заметить, что не все объекты на карте окрашиваются, например — используя проверку на «World textures», не крассятся коробки на мираже (см. скриншот в теме) или вот эта доска (на карте много таких объектов и они называются брашами):
Исследуя код игры, я заметил очень интересные строчки кода отвечающее за эти браши.
За их отрисовку отвечает функция
.
Смотрим первую проверку на конвар, тестим ее непосредственно в игре, чтобы проверить на правильном пути ли мы.
Вводим кон. команду «r_drawbrushmodels 0» в консоль игры и проверяем результат.
Видим, что это то, что нужно.
Возвращаемся обратно к нашей функции и видим далее подобный код:
Данный участок кода проходится по всем брашам на карте и собирает информацию о каждом, далее, используя это информацию, вызывает функцию DrawBrushModels в которой, в свою очередь, идет установка цвета (
) и добавление определенного браша в список для дальнейшей отрисовки (
).
Следовательно, можно понять, что мы можем пропатчить чек на комманду «cl_brushfastpath», дабы не воспроизводился код, описанный выше, и вызывалась только легенькая функция
. На самом деле, есть много реализаций, но эта одна из простейших (о другой реализации я написал в хайде).
Кто не понял как работает патч, то вот скрин, который должен вам помочь в понимании:
Результат после патча можно увидеть в теме. P.s использовался обычный nightmode (хук GetColorModulation и покраска текстур с именем группы «World textures»), о котором я писал в самом начале этого сообщения, т.е каких-то отдельных хуков для покраски брашей не нужны.
Так же забыл подметить, что цвет будет чуть чуть темнее, чем тот, который вы установили. В теории, это можно исправить, не передавая флаги в функцию DrawRenderable.