เอนจินฟิสิกส์ 2 มิติแบบเบา ๆ ?


9

สวัสดีดังนั้นฉันเพิ่งได้เรียนรู้ห้องสมุดกราฟิก SFML และต้องการใช้หรือสร้างระบบฟิสิกส์ 2D ที่ไม่แข็งกระด้างเพื่อใช้กับมัน ฉันมีสามคำถาม:

ความหมายของร่างกายที่แข็งแกร่งใน Box2d คือ

ก้อนของสสารที่แข็งแรงมากจนระยะห่างระหว่างสสารสองชิ้นใด ๆ บนก้อนนั้นคงที่อย่างสมบูรณ์

และนี่คือสิ่งที่ฉันไม่ต้องการอย่างที่ฉันต้องการทำให้ร่างกายที่ยืดหยุ่น, ผิดปกติ, เปราะบางและเชื่อมต่อใหม่ 1. มีเครื่องยนต์ฟิสิกส์แบบ 2D ธรรมดา ๆ แต่มีคุณสมบัติแบบนี้หรือไม่? ฟรีหรือโอเพนซอร์สดีกว่า

2. ถ้าไม่สามารถใช้ box2d และสร้างมันเพื่อสร้างมันได้แม้ว่ามันจะขึ้นอยู่กับร่างกายที่แข็งทื่อหรือไม่?

3. ในที่สุดหากมีเครื่องมือฟิสิกส์อย่างง่ายเช่นนี้ฉันควรผ่านการสร้างใหม่หรือไม่เพื่อประสบการณ์และเพื่อเพิ่มพูนความรู้คณิตศาสตร์ฟิสิกส์? ฉันรู้สึกว่ามันจะช่วยได้ถ้าฉันต้องการแก้ไขโค้ดของเอ็นจิ้นที่มีอยู่หรือสร้างเกมด้วยฟิสิกส์ที่มีเอกลักษณ์

ขอบคุณ!


1
มีเครื่องมือนี้เรียกว่า JelloPhysics (C #) แต่ดูเหมือนว่าไซต์จะไม่ทำงาน มีวิดีโออยู่ที่นี่: youtube.com/watch?v=SvqY_pgA6DU
bummzack

คำตอบ:


6

คุณสามารถใช้ระบบของร่างกายที่แข็งแกร่งเพื่อสร้างร่างกายที่อ่อนนุ่มและการเปลี่ยนแปลงของเหลว เหตุผลทางกายภาพที่อยู่เบื้องหลังมันได้หรือไม่ โดยพื้นฐานแล้วอะตอมเป็นวัตถุแข็งเกร็ง สิ่งนี้ไม่เป็นความจริง แต่สำหรับความเรียบง่ายคุณสามารถดูได้ และร่างกายที่อ่อนนุ่มนั้นทำมาจากอะตอม

ดังนั้นคุณจะสร้าง "soft body" โดยใช้เอ็นจิ้นที่แข็งแรงอย่าง Box2D ได้อย่างไร?

เทคนิคสำคัญคือการผูกจุดในร่างกายของคุณเข้าด้วยกันโดยใช้ข้อต่อ ตัวอย่างเช่นหากคุณเชื่อมต่อปลายของรายการของเส้นด้วยกันโดยใช้ข้อต่อระยะทาง (หมายถึงระยะห่างระหว่างข้อต่อทั้งสองต้องคงที่) มันจะทำตัวเหมือนผ้าชิ้นหนึ่ง

แต่นั่นเป็นเพียงคำอธิบายคร่าวๆ ewjordan ซึ่งเป็นหนึ่งในผู้พัฒนา Java-port ของ Box2D จำนวนมากของ "การทำงานภาคสนามเบื้องต้น" กับ Box2D นี่เป็นจุดเริ่มต้นที่ดี: http://www.box2d.org/forum/viewtopic.php?f=8&t=1978


การผสมผสานของสปริงแรงดึง / แรงอัดจำเป็นต้องรักษา "รูปร่าง" ของร่างกายที่อ่อนนุ่มเช่นเดียวกับการคำนวณปริมาตรเพื่อให้สมบูรณ์
Jonathan Connell

ใช่ แต่ทั้งหมดนี้ทำผ่านข้อต่อจริง ๆ แล้วถ้าเราพูดถึง Box2D แน่นอนว่าเขาจะต้องเปลี่ยนพฤติกรรมของพวกเขาด้วยตนเอง แต่นั่นคือสิ่งที่เขาต้องเริ่มต้น สำหรับเอฟเฟกต์ปริมาณคงที่ใน blobs คล้าย Gish JBox2D มี ConstantVolumeJoint
TravisG

ใช่ฉันไม่คุ้นเคยกับ Box2D ฉันเพิ่งรู้ว่าเพื่อนร่วมงานบางคนใช้ PhysX เพื่อจำลองฟองสบู่ ^^
Jonathan Connell

1

คำที่คุณกำลังมองหาคือฟิสิกส์ของร่างกายที่อ่อนนุ่ม

Wikipediaมีรายการที่ดี พวกเขาเป็น AFAICS 3D ทั้งหมด แต่ควรจะดี

ตรวจสอบคำถาม SO นี้ด้วย

เป็นหนังสือที่ดี (มันร่างกายแข็ง แต่ทุกวิชาคณิตศาสตร์และฟิสิกส์อยู่ที่นั่นก็ยังเป็น 3D แต่เล็กน้อยเพื่อถ่ายโอนไปยัง 2D) เป็นการพัฒนาเครื่องยนต์ฟิสิกส์เกม มันใช้ระบบที่เป็นอนุภาคก่อนที่จะเคลื่อนไปยังวัตถุที่แข็งและการชน


1

วิธีการง่ายๆในการจำลองวัตถุที่อ่อนนุ่มคือการเชื่อมต่อวัตถุแข็งขนาดเล็กเข้าด้วยกันกับข้อต่อที่ยืดหยุ่น จากนั้นส่วนที่ยากคือปรับพารามิเตอร์ของแบบจำลองของคุณให้ละเอียดและแมปเท็กซ์เจอร์กับโมเดลพื้นฐาน

โพสต์บล็อกต่อไปนี้ให้การติดตั้งลูกบอล deformable ด้วยเครื่องยนต์ cocos2d: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html


เครดิตไปยังการดีบัก draw cocos2d ;-)
sdabet
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.