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!

Update:

Of course it is easy to transform a plane if you have it expressed in terms of a normal and position:

$$P := (n,a)$$

where \(a\) is a point on the plane. The trick is then to find \(a\) given just the normal and offset description.

$$n \cdot x = w$$

After looking at this for a minute, it appears that if I use the point:

$$a := wn$$

then

$$n \cdot wn = w(n \cdot n) = w$$

so it is easy to find a point on the plane given the normal and offset. Then we can just transform \(n\) and \(a\).