"взятие нормали вектора" это надо или заменить или подробнее описать.
И меня это с толку сбило.
Прочитав статью я так и не понял зачем телу нужно ускорение и почему нельзя обойтись одной скоростью.
И когда надо действовать на скорость, а когда на ускорение.
И Как расчитать импульс.
Может что-то пропустил т.к. с мобилы читаю, поэтому не пинайте если что)
в "Майлстойн второй - игрища
с массами и силами" по-моему еще надо написать как эта сила приложеная к точке подействует на линейную скорость и скорость вращения.
И еще, судя по прочитанному, если приложить силу к центру или к краю мяча, то линейная скорость и ускорение будет одинаково изменяться? Мне кажется это ошибка.
Может чего-то недопонял)
WISHMASTER35
> "взятие нормали вектора" это надо или заменить или подробнее описать.
ну, нормализация вектора. не знаю уж, что тут можно писать подробнее.
> Прочитав статью я так и не понял зачем телу нужно ускорение и почему нельзя обойтись одной скоростью.
если коротко, то внешние воздействия почти никогда не изменяют скорость мгновенно. они придают телу ускорение, которое в свою очередь влияет на скорость. как реальное тело не может в один момент времени находиться в одной точке пространства, а в следующий момент времени телепортироваться в другую, также оно не может мгновенно поменять свою скорость. ну, на пальцах если. а вот ускорение можно менять как угодно, поэтому, прикладывая к телу силу, мы придаём ему ускорение, которое лишь косвенно влияет на скорость.
> по-моему еще надо написать как эта сила приложеная к точке подействует на линейную скорость и скорость вращения.
я как-то решил, что это очевидно
> И еще, судя по прочитанному, если приложить силу к центру или к краю мяча, то линейная скорость и ускорение будет одинаково изменяться? Мне кажется это ошибка.
линейное ускорение будет одинаковым, вне зависимости от точки приложения силы. угловая составляющая будет изменяться по-разному.
извините, на более подробные объяснения времени нет.
Спасибо Suslik, статья нормальная, мне помогла.
но я смотрел, никак немогу найти в 1 Майлстоуне описания расщета момента инерции и тензора тоже. Ссылка на 1 стр. есть. Может кусок пропал :)
и еще там, гдерасчитываются новая матрица поворота:
Vector axis = angularVelocity.GetNorm();
float angle = anglularVelocity.Len();
coordinates.xVector.Rotate(axis, angle);
coordinates.yVector.Rotate(axis, angle);
coordinates.zVector.Rotate(axis, angle);
, к angle, если я неошибаюсь, надо домножить dt
minya
> Спасибо Suslik, статья нормальная, мне помогла
ого, нифига себе
> я смотрел, никак немогу найти в 1 Майлстоуне описания расщета момента инерции и тензора тоже.
да, не успел написать. обычно тензор инерции считается либо как сумма тензоров инерции примитивов, из которых состоит тело. момент инерции каждого примитива относительно главных осей считается аналитически. так, например, тензор инерции тримеша можно посчитать, сложив тензора инерции тетраэдров, образованных его центром масс и каждым треугольником-полигоном. хотя и вопрос расчёта момента инерции тетраэдра - не слишком простая задача. но тут есть приятный для геймдева момент - если оценивать момент инерции тела грубо, ошибаясь в два-три раза, например, как момент инерции OBB, то погрешность визуально будет не очень фатальна. то есть этим можно заняться вплотную, когда всё остальное уже работает полностью стабильно.
Suslik
> да, не успел написать.
ясно, я думал что оно там было.
Ниче, я нашел для боундинг бокса:
Ix = mass * (size.y^2 + size.z^2)
Iy = mass * (size.x^2 + size.z^2)
Iz = mass * (size.x^2 + size.y^2)
для моего случая хватит.
перепилил статью. что-то выкинул, что-то добавил, теперь её можно назвать более-менее законченной.
тоже добавил пример кода
Тема в архиве.