Реклама

120% прокачка beamNG

#Когда-то #Потом #Физика #Недавно
120% прокачка beamNG

Когда-то давно я горел игровой физикой: писал свои игровые физические движки, физику авто и самолета. И уменя была мечта - сделать физику разрушаемых объектов, в частности автомобилей. Мне не нравилось что авто в играх "ломаются" по заготовленным лекалам - мятый бампер, предзаготовленные текстуры царапин и так далее Потом вышла игра beamNG, где было сделано все о чем я мечтал. Физика авто возведена в абсолют, тачку можно было размотать в пух и прах, и это было не предзаготовлено, ведь физика деформаций обсчитывается реалтайм Но все же физика beamNG не идеальна. Она обладает некой "желейностью", это проявляется в излишней гибкости и резиновости кузова и деталей. А еще, физика beamNG не позволяет разрывать и разрушать материал. В нем есть разрывы, но они удаляют части геометрии, из-за чего это выглядит неестественно - целые куски кузова просто исчезают. Недавно я подумал - "смогу ли я с ИИ реализовать свои старые идеи игровой физики?". Они как раз были про более честный рассчет и более п

Этап 1: копия beamNG

Сначала мне стало интересно, можно ли сделать физику аналогичную beamNG? Вкратце расскажу как она работает:

Вся физическая модель состоит из свободно двигающихся в пространстве вершин (точек), соединенных балками (beam) с определенной жесткостью. Из них можно построить как жесткую структуру, например треугольник, так и подвижную - например лист из треугольников, будет вести себя как ткань. Каждая балка по сути пружина, стягивающая или расталкивающая пару вершин. Кузов авто можно смоделировать как множество соединенных точек в жесткую структуру. Толкаешь одну вершину - например ступицу колеса - она тянет за собой другие, те в свою очередь следующие и так далее, в следсвтие чего весь кузов приобретает импульс

Самое главное в этой системе - малый шаг интегрирования, всего 5 миллисекунд. Это делает физику стабильной, множество пружин не успевают "взорваться" за столь малый шаг, и вся система работает довольно хорошо.