2D двигуни фізики м'якого тіла?


9

Привіт, тому я нещодавно дізнався графічну бібліотеку SFML і хотів би використовувати або використовувати нетривалу 2D фізичну систему для використання з нею. У мене три питання:

Визначення жорсткого тіла в Box2d є

Шматок речовини, який настільки сильний, що відстань між будь-якими двома шматочками речовини на шматку абсолютно постійне.

І це саме те, що я не хочу, як я хотів би зробити еластичні, деформівні, зламані та повторно з'єднані тіла. 1. Чи є якісь прості 2D-фізичні двигуни, але з такими характеристиками там? бажано безкоштовний або відкритий ресурс?

2. Якщо я не міг би використати box2d і відпрацювати його, щоб створити його, навіть якщо він заснований на жорстких тілах?

3. Нарешті, якщо є такий простий двигун фізики, як я маю пройти з процесом створення нового в будь-якому випадку, просто для досвіду та розширення знань з фізики з математики? Я відчуваю, що це допоможе, якби я коли-небудь захотів змінити код існуючого двигуна або створити гру з дійсно унікальною фізикою.

Дякую!


1
Був цей движок під назвою JelloPhysics (C #), але сайт, здається, не працює. Тут є відео: youtube.com/watch?v=SvqY_pgA6DU
bummzack

Відповіді:


6

Ви можете використовувати жорсткі системи кузова, щоб створити м'яку динаміку тіла та рідини. Фізична причина за цим? Ну, по суті, атоми - це невеликі жорсткі тіла. Звичайно, це не зовсім так, але для простоти ви можете розглядати їх як такі. І м'які тіла, очевидно, зроблені з атомів.

Отже, як ви створюєте "м'які тіла", використовуючи двигун із жорстким кузовом, як Box2D?

Основна техніка - зв’язувати точки у своєму тілі разом за допомогою суглобів. Наприклад, якщо з'єднати кінці списку ліній разом за допомогою дистанційних швів (тобто відстань між двома стиками має бути постійною), воно буде грубо поводитися як шматок тканини.

Але це лише приблизний опис. Багато "елементарних польових робіт" з Box2D зробило ewjordan, один із розробників Java-порту Box2D. Ось хороша відправна точка: http://www.box2d.org/forum/viewtopic.php?f=8&t=1978


Суміш пружин напруги / стиснення потрібна для збереження "форми" м'якого корпусу, а також обчислення об'єму, щоб зберегти його цілим.
Джонатан Коннелл

Так, але все це насправді робиться через суглоби, якщо ми говоримо про Box2D. Впевнений, що йому вручну доведеться змінити їх поведінку, але саме з цього потрібно почати. Наприклад, для постійних ефектів гучності в краплях, подібних до Gish, JBox2D має ConstantVolumeJoint.
TravisG

Так, я не так знайомий з Box2D, я просто знаю, як деякі колеги використовували PhysX для імітації міхура ^^
Джонатан Коннелл

1

Термін, який ви шукаєте, - це фізика м'яких тіл.

У Вікіпедії є хороший список. Вони всі 3D АФАЙКИ, але повинні бути хорошими.

Ознайомтесь із цим питанням ТАК.

Чудова книга (це жорстке тіло, але вся математика та фізика є там; це також 3D, але тривіально для передачі у 2D) - це ігровий розвиток фізики . Він реалізує систему на основі частинок перед рухом на жорсткі тіла і зіткнення.


1

Один з простих способів моделювання м’яких тіл - з'єднання маленьких жорстких тіл з пружними швами. Тоді складною деталлю є точне налаштування параметрів вашої моделі та нанесення текстури на основну модель.

Наступна публікація в блозі забезпечує реалізацію деформуючого кулі з двигуном cocos2d: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html


кредити на вивірку налагодження cocos2d ;-)
sdabet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.