Почему SV_Move сходит с ума на наклонных поверхностях и показывает там trace.fraction=1 ?
Это лечится, для клипов и тонких двусторонних брашей, выставлением trace.allsolid=false в SV_ClipMoveToEntity, но это просто загонять проблему глубже.
Тут как видите высота трейсевомого объема растягивается, как минимум потому что fraction у меня заработал только один раз и то случайно, может снова область видимости переменных мешает.
В этом случае глюк в том что если игрок подпрыгнул и задел головой балку то в консоли отчет что трасса сначала якобы allsolid startsolid, потом в пустоте потом в солиде снова. То есть все в точности наоборот тому что мы видим на экране.
Но даже если ничего не растягивать и сделать просто трейс толщиной с игрока идущий вертикально вверх то возникает другой глюк: стенки по разные стороны света по-разному детектятся трейсом. То есть если ты рождаешься на start.bsp то в каждом холле стенки справа и спереди детектятся даже если толщина трейса всего полтора или три юнита. А вот чтобы задетектить стенку слева нужен уже трейс толщиной больше 16-ти юнитов. Потом она вообще обнаруживаться перестала.
Вроде как в кваке и правда хуллы бывают неидеальные, но тут конская разница в 14 юнитов чтобы достать до трейса шириной 1.5, это наверное что-то другое.
SV_Move с MOVE_NOMONSTERS трейсит мир и брешет что трейсит указанную модель.
SV_Move дает корректный trace.fraction там где TraceLine просто возвращает единичку.
А если слишком большой трейсовый объём то может внезапно засечь пересечение с дверью на другом конце уровня. Зогатко.
Я только так и не понял, возможен ли неаксиальный трейс или вокруг него всегда описывается AABB? А то мало ли.
Цитата:
Дядя Миша писал: Ты её визуализировал бы чтоли, линию там нарисовал, для понимания.
Ты ж говоришь код должен в голове выполняться.
Мне кажется рисование мне понимания не прибавит. Я по логам вижу что трейс уходит в стенку. Если мне вместо этого коробочку наполовину в стене нарисуют то что ещё я пойму?
Так вот, по логам я делаю вывод, что, если мы указали в качестве трейсера коробочку или скажем сплющили её до квадрата, то если уже в точке старта эта коробка\квадрат уходит краем в стену то весь трейс утекает в стену и радостно рапортует о полном прохождении пути. Я вот не помню, вроде он даже startsolid allsolid не заполняет, иначе это не выглядело бы так странно.
А, и по всему получается что даже объёмный трейс проходит в надутой геометрии, а точечный-в видимой. Иначе откуда на старте е1м1 у меня 40 юнитов невидимой стенки над головой. Но должно-то быть всё наоборот, мы же раздуваем одно чтобы сдуть другое.
И ещё объёмный трейс тормозится на первом препятствии, ну типа логично ведь он симулирует движение ААББ энтитей. А как сделать наоборот чтобы он затекал во все щели пока совсем не сможет идти? Дверь там обнаружить или окно.