Jump to content

  • Log In with Google      Sign In   
  • Create Account

Allen Chou

Member Since 15 Jul 2010
Offline Last Active May 24 2014 11:01 PM

#5148054 Interpolating Quaternions with Circular Blending

Posted by Allen Chou on 18 April 2014 - 09:37 PM


A bisector of a line segment connecting two points on a circle always goes through the center of the circle.

My comment was regarding the length of n1 and n2, not their direction. The illustration implies that the lengths of n1 and n2 are each equal to the distance between the respective midpoints and the center of the circle. E.g., ||n1|| == ||m1 - C||. If that were true (which I believe it is not), then finding the center would be trivial.


I'm just commenting that the illustration is misleading in that regard. Showing shorter vectors n1 and n2 (i.e., an unknown distance between the vectors heads and the center) would better highlight the need for the parameterized bisectors. Something like the following:





Ah, I see what you're talking about now.

You are right. n1 and n2 should not have the exact distance from the midpoint to the center of the circle C.

The figure is kind of misleading.

My bad tongue.png

#5147989 Interpolating Quaternions with Circular Blending

Posted by Allen Chou on 18 April 2014 - 02:52 PM

Hi, all:


I wrote a post on interpolating quaternions with circular blending.




Circular blending is an interpolation technique that produces "quaternion curves" with C1 continuity, as opposed to the commonly used piece-wise slerp technique that has only C0 continuity.


Here's a video comparing the two techniques.



#5147972 I gave a lecture on constraint-based physics, and here are the slides.

Posted by Allen Chou on 18 April 2014 - 01:27 PM

Nice work Allen, I'm pretty sure you're not going to have a problem getting a job after graduation.


Actually, I already did. I'm going to work at Naughty Dog laugh.png

#5147825 I gave a lecture on constraint-based physics, and here are the slides.

Posted by Allen Chou on 18 April 2014 - 12:51 AM

Hi, all:

This is my last semester at DigiPen Institute of Technology, so I decided to give a lecture to my fellow schoolmates on constraint-based physics to pass down a few things I know about implementing game physics.

Here are the slides I used:

Below are the main points I went over in this lecture:

  • The flow chart of a typical physics engine.
  • How to derive velocity constraints.
  • Contact constraints, including normal and tangential resolutions.
  • Solving multiple constraints simultaneously (block-solving).

You don't really need to implement a full-blown physics engine with narrow phase, broad phase, and other fancy stability features like contact caching and warm starting, just in order to get something cool. In the end, I presented a simple constraint, the mouse constraint, as an exercise homework.

I encourage anyone who hasn't done any physics-related stuff to try implementing mouse constraints with a simple semi-implicit Euler integrator; you will end up with something you can drag around, reacting and looking physically "correct".

If you are not familiar with motion dynamics, I also wrote two posts on its fundamentals and implementation examples, please do check them out:

Lastly, here's a full list of the posts I have written on game physics:

As always, please tell me if you think I've got something wrong. Thanks smile.png

#5132832 Misc. Polyhedon-Related Posts for Game Physics

Posted by Allen Chou on 19 February 2014 - 08:04 PM

Hi, everyone:


I wrote a couple of miscellaneous posts on polyhedron-related stuff for my game physics series on my blog.


The first post explains how you can use the half edge data structure to implement a better support function for polyhedrons utilizing a hill-climbing approach, as opposed to the most obvious brute-force approach. It also shows an example implementation of dynamic half edge data structure.



The second post demonstrates 3 options for updating the AABBs of polyhedrons, namely the brute-force approach, approximation by local AABB, and the support function approach. This posts also touches on their pros and cons.



Here's a list of all posts of the game physics series that lead up to these two posts.



I hope you like it smile.png

#5119276 Blog Series on Game Physics

Posted by Allen Chou on 26 December 2013 - 04:46 AM

Hi, all:


My name is Allen Chou.

I am a student from DigiPen Institute of Technology.

I've been working on my junior game project as a physics programmer for over half a year now.


I felt like starting a series on my blog about game physics, 

so that I can share what I have learned throughout my studies.


The series is still on-going.

Have a look if you are interested, 

and please DO point out anything that seems wrong smile.png


Here's a list of completed posts and planned topics:





Motion Dynamics Fundamentals



Motion Dynamics Implementations



Broadphase - Overview



Collision Detection - CSOs & Support Functions



Collision Detection - GJK



Contact Generation - EPA



Resolution - Constraints & Sequential Impulse



Resolution - Contact Constraints



Stability - Slops



(Planned) Persistent Contacts


(Planned) Islanding & Sleeping


(Planned) Broadphase - Dynamic AABB Tree



I will update the links as I finish writing more posts.

I hope you guys like it smile.png