From 2ab6b6cfe81505b029f2da397cef0bb58989444f Mon Sep 17 00:00:00 2001
From: Matthew Kosarek
- You're most likely here because you have some interest in the world of rigid body physics. Maybe you have some knowledge of rendering via OpenGL or Vulkan,
- and you want to begin watching your up-until-now static scene come to life. Well, you're in the right place! In the course of this tutorial series I will walk
- you through the entirety of a 2D rigid body physics system entirely in the web. All of this information will be extendable to other languages, but we will use
- JavaScript and WebGL in these blog posts. Additionally, much of the information presented here can be extended to 3 dimensions, but 3D carries some complications
- with it, that we will discuss in future blog posts.
+ You're most likely here because you have some interest in the world of realtime physics simulation. Maybe you have some knowledge of rendering via OpenGL or Vulkan,
+ and you want to see your up-until-now static scene come to life. Well, you're in the right place! In the course of this tutorial series I will walk
+ you through building a variety of physics simulations - 2D and 3D rigidboy, soft body, collision algorithms - entirely in the web. All of this information will be extendable to other languages, but we will use
+ C++ and OpenGL compiled to WebAssembly and WebGL in this tutorial series.
- In implementing a rigidy body physics system, we're primarily interested in two sub-fields of physics, namely dynamics and kinematics. Although I'm
- far as can be from being an expert in either of these fields, I will explain - from a programmer's persepctive - what they mean to me:
- Introduction: Rigid Body Physics
-
+ My primary goal in this website is to display how a competent programmer might implement different types of believable physics simulations. Because of this, I will not spend too much time discussing physics theory, unless it is absolutely necessary that I do so for a particualr section. Physics - especially the world Newtonian physics where most game engines spend their time - is a well-documented subject, and I would be doing a great injustice to the field if I were to consider myself qualified at explaining it. I am no physicst by trade, so I will leave that talk to the big brains at the universities.
+
+ Each of the tutorials on the sidebar are meant to be self-contained, so long as you have a good understanding of the fundamentals of vector calculus. Which leads me to my next disclaimer: I am assuming competency in both some programming language as well as vector calculus/linear algebra in these tutorials. The math that you need to know in order to implement these simualtions isn't all that difficult, but, as with fix, I consider myself hardly qualified at explaining them, as I only do math so much as it is useful to me. Many many books and stackoverflow posts have been written on these subjects, and I am sure that you will not encounter any trouble at all if you wish to study them yourself.
- Finally, I must provide a disclaimer that all of rigid body systems are very math-y. You will need to know a decent amount of vector calculus and linear algebra to really understand - what's going on here. I am going to assume that you have this knowledge. If you don't already have this knowledge, I will try and provide some resources on the Books - n' References page of the website. + Finally, I feel the need to provide some references up front which I have found particularly useful in my studies of physics simulations. Those being: +