How to transform a plane

How to transform a plane

admin No Comment
Algorithms

Suppose you have a plane equation in local space and you’d like to express that plane equation in world space. The plane in local space is written as:
[ P := (n, w) ]
where (n) is the plane normal and (w) is the plane offset.
A point (x) is on the plane if
[n cdot x = w ]
Now define a transform (A) as
[ A := (R, p) ]
where (R) is an orthonormal rotation matrix and (p) is a translation vector.
Suppose we have a transform (A) that transforms points in local space into world space. With our transform (A) we can convert any point (x_1) in local space (space 1) into world space (space 2):
[x_2 = R x_1 + p]
Also any vector (n_1) in local space can be converted to world space:
[n_2 = R n_1]
Also suppose we have a plane defined in local space (space 1). Then for any point (x_1) in local space:
[n_1 cdot x_1 = w_1 ]
The main problem now is to find (w_2), the plane offset in world space. We can achieve this by substitution. First invert the transform relations above:
[x_1 = R^T (x_2 – p)]
[n_1 = R^T n_2]
where (R^T) is the transpose of (R). Recall that the inverse of an orthonormal matrix is the equal to the transpose.
Now substitute these expressions into the local space plane equation:
[R^T n_2 cdot (R^T (x_2 – p)) = w_1]
Expand:
[R^T n_2 cdot R^T x_2 – R^T n_2 cdot R^T p = w_1]
The rotations cancel out since they are orthonormal. Also the dot product is equivalent to matrix multiplication by the transpose. For example:
[R^T n_2 cdot R^T x_2 = n_2^T R R^T x_2 = n_2^T I x_2 = n_2 cdot x_2]
Simplify:
[n_2 cdot x_2 = w_1 + n_2 cdot p]
From this we can identify the world space plane offset (w_2):
[w_2 = w_1 + n_2 cdot p]
Done!

Path of Exile: Atlas of Worlds Official Trailer
Thursday January 12, 2017

The Path of Exile: Atlas of World Official Trailer shows off some cinematic cut scenes and game play that you can expect to see in the latest expansion for the action role playing game Path of Exile. The expansion was released in September 2016 and includes 30 new maps, 19 new bosses which equate to […]

GDC 2015 Physics Tutorial
Saturday March 07, 2015

Thanks to everyone that attended the GDC Physics Tutorial in San Francisco. I’m really proud of the work done by the tutorial team! You can download the tutorials here: downloads. Some of the talks have a Keynote version where you can see the embedded animations and videos. The tutorial was recorded on video and should […]