KorteZZ хитбоксы берутся от модели, которая задаётся в CBasePlayer::Spawn. Для каждого класса устанавливается своя "референсная" модель с правильными хитбоксами. Допустим, есть выбор по pev->playerclass. Для каждого плейеркласса будет своя "референсная" модель с набором правильных хитбокссов, и, что не менее важно, анимаций.
Что-то мне подсказывает, что dadt должен быть в районе 1 или больше. Когда клиент смотрит на сервера, dadt держится примерно в тех же значениях, но иногда заходит в минус, т.к. tr.time < animtime игрока-сервера. Беда.
А дерганье влево-вправо при стрельбе - это делает AddBlendSequence. Если поставить dadt = 1 принудительно и отключить AddBlendSequence (только для игрока, разумеется) - при виде от третьего лица все идеально и никаких дерганий. Впрочем, в мультиплеере ничего не решается.
Подскажите, можно ли включить тени на фонарике от обычных брашей? Есть тени только от моделей и брашевых энтитей, а в параное - от всего. Но мне бы в ксашмоде.
С тенями от брашей разобрался (починил!!!). Теперь пытаюсь разобраться со скейлом моделей (их освещения фонариком). Пробовал кучу хаков, посылая шейдеру данные о радиусе моделей, их скейл… Чего-то внятного не вышло, хоть и лучше стало.
В параное я нашел единственное (вроде как) отличие
uniform vec4 u_BonesArray[MAXSTUDIOBONES*3];
Это я скопипастил и вроде как оно приходит в шейдер. Отправляю из CStudioModelRenderer::DrawLightForMeshList
В шейдере bonematrix считаю уже не через Mat4FromOriginQuat, а через "Mat4FromVec4Array( 0, 1.0 );"
На выходе правда получил моргающие модели, где темная модель Z-файтит со светлой. Стал копать дальше, пока сверялся с параноевскими шейдерами, наткнулся на
Я не пойму откуда он берется. В исходниках паранои вообще нет упоминаний, в шейдерах только 2 упоминания - строчка выше и вот еще одна:
C++ Source Code:
vec3 V = normalize( var_ViewVec );
Или он просто локальный? Впрочем, добавив его, модели вообще перестали освещаться… Этот фонарик меня уже с ума сводит.
P.S. да, я снова копаюсь в коде, т.к. после релиза первой главы решил сменить деятельность, а то маппинг пока в печенках сидит. Думал, может фонарик-таки смогу починить. Можно конечно наплодить моделей со скейлом 1, но это же кошмар какой-то…
Дядя Миша писал: А что в параное, фонарик тоже неправильно освещает скейленные модели?
Там как раз все правильно, поэтому сверяюсь и пытаюсь найти, чего не хватает. Всякие строчки типа normal map я не учитываю.
Ясно, значит локальный все-таки. Я глянул, он вроде как нужен только нормалмапе...
Полагаю дело именно в bonematrix, которую надо умножить на что-то (скейл модели?). Еще там был какой-то computetbn, он вроде бы тоже ксашмоду не нужен. Я в шейдер studiodlight уже принес скейл модели, может как-то его можно использовать? Пробовал bonematrix и даже position умножать на него, вышло так себе) и ведь что самое интересное, тень от моделей ложится правильно. Она учитывает скейл. А сам свет нет.
Если кому интересно что за баг https://youtu.be/D61zjtAgE-0
Две модели с виду одинаковые, но скейл 1 и 0.5 у них.