I've been implementing frustum culling. I'm going with the method of extracting the 6 frustum planes in world space. I am using row-major matrices.
I'm doing the following to extract planes:
ViewMatrix.Transpose();
M = ViewMatrix * ProjectionMatrix;
// Left Plane
A = M[3] + M[0];
B = M[7] + M[4];
C = M[11] + M[8];
D = M[15] + M[12];
(Normalize)
etc.
qYaw.FromAxisAngle(0, 1, 0, YawAngle);
qPitch.FromAxisAngle(1, 0, 0, PitchAngle);
q = qPitch * qYaw;
ViewMatrix.Identity();
ViewMatrix.Translate(Position);
ViewMatrix = (ViewMatrix * q.ToMatrix()).Inverse();