сбюфемхел 2016-10-05 15:12:42
Всего постов: 24
Бород: 1
Рейтинг: +36|5|-7 = +83%
Одобрено: клюкед
О прохождении сквозь стены и застревании в текстурах.

Ради экономии памяти в таких играх физика обычно сочеталась с геометрией. Поскольку смещение за игровой цикл нередко было больше одного пикселя, персонаж мог попасть внутрь стены (пола или потолка), поэтому такое непроходимые объекты программировали на так называемые коллайдеры, если персонаж внутри — его выталкивает, сообщая ему вектор скорости, если стоит впритык — обнуляет соответствующий вектор скорости (вертикальный для пола/потолка, горизонтальный для стен). Цимес в том, что игра не сохраняет путь персонажа, а потому не знает, откуда он влетел. Также ради той же экономии не делаются направленные коллайдеры стен (выталкивающие в определённые стороны). Персонажа просто выталкивает в сторону ближайшей границы. Обычно это работает корректно. Но если влететь достаточно глубоко в стену (или в коде коллайдера есть дополнительные баги), то выталкивать начинает в противоположную сторону и персонаж проходит сквозь стены.

Подобные баги не изжиты и в современных играх. Когда персонажа резко отбрасывает в космос (в скайриме, после удара гигантом в землю) или персонаж «застревает в текстурах» или после застревания его начинает колбасить, на самом деле он застревает в физической сетке. Физический движок сообщает (или нет, в зависимости от реализации) телу импульс, выталкивающий его из твёрдого тела. Если части тела обсчитываются более или менее отдельно (ragdoll), то часть может погрузиться слишком глубоко и части тела начнут получать разные импульсы. Поскольку разрыв 3d-модели не предусмотрен, персонажа начинает мотать из стороны в сторону. Разумеется, современные движки устроены куда сложнее и в отдельных случаях причины колбасенья могут радикально отличаться.

Познавательно.

клюкед: ну давай тогда уж всю историю, че мелочиться
https://geektimes.ru/post/281046/
(вот же хабра-пидоры, даже линк на оригинал уже не ставят)
Клюкед нашолся!!!
Эль пович 2016-10-05 15:24:24 #
Прочитал статью и меня отбросило в космос.
КТОТУД 2016-10-05 15:40:51 #
https://youtu.be/LgxXZnhM1TE
передаю с места событий
https://youtu.be/yT2el4_xyf4
Мебиус 2016-10-05 17:38:36 #
прочетал пра марио, пра космаз не ношол. ноебале!
Ятасука Накомоде 2016-10-05 18:35:51 #
На свалочге Зострял в текстурох
Заебурии 2016-10-05 19:03:43 #
Матреца, хуле!
Микабот 2016-10-05 20:14:31 #
атбросы лона тёмнуйу сторону
хабра-пидор 2016-10-05 21:03:47 #
оригинал и нагуглить можно
Рвун Чехлов 2016-10-05 23:40:14 #
Кажется, хабра-пидары всё правильно сделали.
Пошёл в статью, а там over 9000 концентрированного байтоёбства.
Ехал байт через смещение, видит байт - по смещению байт, сунул байт смещение в байт...
Нунахер, ниасилил. Мне его ИРЛ хватает последнее время...
dicius 2016-10-05 23:51:33 #
где жы reverse cinematics аууу?!
lord_vigor 2016-10-06 00:05:19 #
Ну и что меня не выталкивает?
Мебиус 2016-10-06 01:37:50 #
это не ты застрял в текстурах
текстуры застряли в тебе
Мебиус 2016-10-06 01:41:06 #
у нас на приходе был аналогичный случей
застрял чувак в текстурах а как не запомнил. и его начало мотать из стороны в сторону а потом выкинуло в космос.
Мебиус 2016-10-06 01:47:41 #
застрял как то марио в текстурах, а смещение ему как раз

приколов.нет Байанометр СКОТОБАЗА АТАТАТ yaplakal.com
© СВАЛКА, 2003–2026. Авторы двиШка: megath[aka duro], skupr, спасибо MakZ'у за пинки ;), Methos'у за скин sandbox, Татьяне за синий скин, Сверстайго Сайтег за вебдванолизацию синего скина.
Также огромное спасибо всем, кто сюда что-то когда-то постил, и тем, кто постил тем, кто постил, а также - авторам )))