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();