Pre-requisites: Some understanding of Object Oriented Programming, and enthu! With this project you will get a very good idea of how the Rendering and Physics pipeline of a modern day AAA game works! We will give you an in house Renderer which you will use to render your objects.
You will be required to first build a basic physics engine capable of performing the following tasks:
1. Integration of Newton’s Equations of motion (figuring out positions from forces) 2. Collision Detection 3. Rigid body dynamics (including forces and torques) 4. Constrained rigid body motion With these functionalities in place you will already have in your hands a physics engine pretty close to production quality With this finished, if time is left, you will explore more complex and efficient algorithms. You can also explore learning in detail and modifying the implementation of Rendering and our in-house Rendering Engine.
You need to submit a project proposal. Your proposal should include: Motivation to study rendering and physics Previous experience in coding Previous experience in working in a large codebase, if any (not mandatory) Previous experience in using any game engine, if any (not mandatory) Ideas for extra functionalities you can add to the Physics engine Ideas for other things you can explore once you are done adding functionalities Resources: Resources to learn about Physics Engines: https://www.toptal.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics http://buildnewgames.com/broad-phase-collision-detection/ Resources to learn about Rendering: https://learnopengl.com Link to Renderer: https://github.com/sanidhyaanand/Physicc
|Week Number||Tasks to be Completed|
|Week 1||Learn about Physics how a Rendering Engine works and the functionalities you would be implementing|
|Week 2||Implement Newton’s Equations of Motion|
|Week 3-4||Collision Detection|
|Week 5||Rigid Body dynamics|
|Week 6||Constrained motion|
|1||Rendering a sphere and a box|
|2||Making an object move|