   Frustum culling doesn't work
  Hey there!I'm trying to get frustum culling to work for hours, but it won't work for some reason. I tried almost any approach I found on the inet.This is how I extract the planes:   Matrix4x4 comboMatrix = matView*matProj;   //Matrix multiplication works fine. Getting same weird results with glMultMatrix// Left clipping planem_planes[0].a = comboMatrix.m[3] + comboMatrix.m[0];m_planes[0].b = comboMatrix.m[7] + comboMatrix.m[4];m_planes[0].c = comboMatrix.m[11] + comboMatrix.m[8];m_planes[0].d = comboMatrix.m[15] + comboMatrix.m[12];// Right clipping planem_planes[1].a = comboMatrix.m[3] - comboMatrix.m[0];m_planes[1].b = comboMatrix.m[7] - comboMatrix.m[4];m_planes[1].c = comboMatrix.m[11] - comboMatrix.m[8];m_planes[1].d = comboMatrix.m[15] - comboMatrix.m[12];// Top clipping planem_planes[2].a = comboMatrix.m[3] - comboMatrix.m[1];m_planes[2].b = comboMatrix.m[7] - comboMatrix.m[5];m_planes[2].c = comboMatrix.m[11] - comboMatrix.m[9];m_planes[2].d = comboMatrix.m[15] - comboMatrix.m[13];// Bottom clipping planem_planes[3].a = comboMatrix.m[3] + comboMatrix.m[1];m_planes[3].b = comboMatrix.m[7] + comboMatrix.m[5];m_planes[3].c = comboMatrix.m[11] + comboMatrix.m[9];m_planes[3].d = comboMatrix.m[15] + comboMatrix.m[13];// Near clipping planem_planes[4].a = comboMatrix.m[3] + comboMatrix.m[2];m_planes[4].b = comboMatrix.m[7] + comboMatrix.m[6];m_planes[4].c = comboMatrix.m[11] + comboMatrix.m[10];m_planes[4].d = comboMatrix.m[15] + comboMatrix.m[14];// Far clipping planem_planes[5].a = comboMatrix.m[3] - comboMatrix.m[2];m_planes[5].b = comboMatrix.m[7] - comboMatrix.m[6];m_planes[5].c = comboMatrix.m[11] - comboMatrix.m[10];m_planes[5].d = comboMatrix.m[15] - comboMatrix.m[14];for(int i = 0; i < 6; i++)m_planes.normalize();I call that extraction method right after following first calls in the render loop:glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   //set cameraglMatrixMode(GL_PROJECTION);glLoadMatrixf(&Flux::Player::GetInterface()->getProjectionMatrix()._m[0][0]);    glMatrixMode(GL_MODELVIEW);    glLoadMatrixf(&Flux::Player::GetInterface()->getViewMatrix()._m[0][0]);Since I'm using a scene graph, all objects/nodes are set in object/local space, so I transform their positions to world space like that:info: mat = current modelview matrix of the object which should be culled awayAABBox AABBox::transform(const AABBox &box, Matrix4x4 &mat){float av, bv;int   i, j;AABBox new_box;new_box.vecMax = Vector3(mat.m[12], mat.m[13], mat.m[14]);new_box.vecMin = Vector3(mat.m[12], mat.m[13], mat.m[14]);for (i = 0; i < 3; i++)for (j = 0; j < 3; j++){av = mat._m[j] * box.vecMin._m[j];bv = mat._m[j] * box.vecMax._m[j];if (av < bv){new_box.vecMin._m += av;new_box.vecMax._m += bv;} else {new_box.vecMin._m += bv;new_box.vecMax._m += av;}}return new_box;};Thank you!   
  I didn't see any indication of whether the math library you're using uses row-vector notation or column-vector notation, but if it's the latter, it should be:Matrix4x4 comboMatrix = matProj*matView;Rather than:Matrix4x4 comboMatrix = matView*matProj;If that isn't the problem, you might consider adding some debug graphics. Render both the frustum and the object bounding boxes in wireframe, and then attach the frustum to an object other than the camera so that you can see what's going on - that should make it easier to figure out where things are going wrong.   ;  Aah okay, the problem is AABBox::transform! It's returning wrong results.So, I wonder what's the correct way to transform local space coordinates to world space coords (including rotation)?   