This thesis covers the development process of implementation, and evaluation of a softbody physics engine for convex polygon objects. The main feature is implementation of adynamic polygon collider that represents a polygons shape correctly, while still being ableto collide with other objects in the simulation. Objects are able to deform both temporarily and permanently using springs with distance constraints. Pressure simulation is alsoimplemented to simulate inflated polygons. The physics bodies does not feature frictionbetween objects, only friction against a static boundary of the simulation. The engine isthen evaluated in order to determine if it can run in real-time which is one of the goals.When it comes to the simulation, Verlet-integration will be used for updating the positions of particles, and every polygon will be built using these particles, and combinedusing certain constraints to make the particles act as one combined object. The main problem that will be solved is the interpenetration solver, which ensures that polygons do notoverlap, and two formulas will be combined to solve this problem. The collision detectionmethod uses line intersections to determine if objects are overlapping, this method endedup being quite expensive for polygons with a lot of vertices. One optimization techniqueis implemented which is axis-aligned bounding boxes around objects which improvedperformance significantly, which also makes the engine more viable for real-time simulations. The physics engine in this report is deterministic using a fixed time-step, dynamictime-step is not tested. The engine also only supports discrete collision detection.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:oru-106771 |
Date | January 2023 |
Creators | Vickgren, Martin |
Publisher | Örebro universitet, Institutionen för naturvetenskap och teknik |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.004 seconds