Physics (Q8)
Lab 1: Many Colliding Spheres
Here I implement simply sphere-sphere collision and collision resolution in my engine. Here you see (some of) hundreds of spheres that exist in the scene and collide with eachother efficiently.
Lab 2: Conservation of Momentum
Here I implement conservation of momentum in the engine, and have a demo of objects whose masses can be changed, and will speed up or slow down accordingly, to preserve their momentum.
Lab 3: Drag
Here I implement simple drag forces in my engine, causing objects to slow down depending on the specified drag coefficients.
Lab 4: Resting Contact
Here I get spheres stacking successfully by implementing resting contact in my game engine. Spheres can be knocked over by launching another sphere at them and they will bounce.
Lab 5: Spings
Here I get a working spring force, where one sphere is attached to another via an invisible spring. Closer than the specified distance and the second sphere is pushed away, further and it is pulled closer. Spring constants and resting lengths can be modified at runtime.
Lab 6: Angular Velocity
Here we work with angular velocity, and allow an object to be detached from it's parent object that it rotates with, but allow it to preserve it's angular momentum while doing so.
PreviousNextProject Tech/Algorithms
GLSL (OpenGL Shading Language
Extended Details
In our final game engine course, we were told to implement physics in our engines. With the engine enhancements from the AI course, my engine was ready to tackle this task.
Due to short time-constraint and tough schedule, we were not required to implement a full physics engine, simply to handle sphere physics in a few particular fun cases including bouncing, resting contact, angular momentum, drag and springs.
Project Credits