public static void GetFrustumPlanes(ref OrthoCam ortho, float4 *planes) { planes[0] = VectorUtility.GetPlane(ortho.up, ortho.position + ortho.up * ortho.size); planes[1] = VectorUtility.GetPlane(-ortho.up, ortho.position - ortho.up * ortho.size); planes[2] = VectorUtility.GetPlane(ortho.right, ortho.position + ortho.right * ortho.size); planes[3] = VectorUtility.GetPlane(-ortho.right, ortho.position - ortho.right * ortho.size); planes[4] = VectorUtility.GetPlane(ortho.forward, ortho.position + ortho.forward * ortho.farClipPlane); planes[5] = VectorUtility.GetPlane(-ortho.forward, ortho.position + ortho.forward * ortho.nearClipPlane); }
public static void GetFrustumPlanes(ref PerspCam perspCam, float4 *planes) { float3 *corners = stackalloc float3[4]; GetFrustumCorner(ref perspCam, perspCam.farClipPlane, corners); planes[0] = VectorUtility.GetPlane(corners[1], corners[0], perspCam.position); planes[1] = VectorUtility.GetPlane(corners[2], corners[3], perspCam.position); planes[2] = VectorUtility.GetPlane(corners[0], corners[2], perspCam.position); planes[3] = VectorUtility.GetPlane(corners[3], corners[1], perspCam.position); planes[4] = VectorUtility.GetPlane(perspCam.forward, perspCam.position + perspCam.forward * perspCam.farClipPlane); planes[5] = VectorUtility.GetPlane(-perspCam.forward, perspCam.position + perspCam.forward * perspCam.nearClipPlane); }