|
Some checks are pending
CI / checks (push) Waiting to run
Жалобы: «невидимые стены уже на дисплейсментах, и коллизии их не видно; в гору скорость замедляется; прыгать рядом нельзя, но проходятся, если подойти и прыгнуть; на наклонных дисплейсментах скатывается» — и уточнение пользователя: «стены ровно по полигонам дисплейсментов». Причина одна: треугольники рельефа участвовали только в выталкивании. Тело, въехав в склон, выталкивалось по нормали треугольника, а нормаль наклонной поверхности смотрит вниз-вбок. Отсюда всё сразу: стена на ровном склоне, потеря скорости в гору, сползание, странные прыжки и стены по рёбрам полигонов (выталкивание срабатывает на границе треугольника). Как в движке: CDispCollTree трассирует треугольник как выпуклый объём — плоскость поверхности плюс три боковые грани через рёбра. Правка: отсечение по набору полупространств вынесено в Collision::clip_planes; Collision::clip_triangle строит четыре плоскости (нормаль из намотки, боковые (to − from) × n, ориентированные внутрь) и зовёт его. Треугольники добавлены в отсечение move_aabb и в ground_trace; выталкивание осталось страховкой. Замер (новый тест real_map_hill_walk_keeps_speed: восемь точек на ходибельных склонах 13–18°, четыре направления, эталон на ровном полу): скорость на склоне 252,2 против 250,0 на полу; «тормозной путь» после отпускания ввода 26,40 против 26,54 — то есть мнимое сползание оказалось тем же тормозным путём, что и на полу, сползания нет. 28 картовых тестов и весь workspace зелёные. Разбор — docs/PARITY.md E23. |
||
|---|---|---|
| .. | ||
| ARCHITECTURE.md | ||
| LUA.md | ||
| NETWORK.md | ||
| PARITY.md | ||
| PLAN.md | ||
| PROBLEMS.md | ||
| RECON.md | ||