28 vec4 lbn = inv_view_proj *
vec4(-1, -1, -1, 1);
29 vec4 ltn = inv_view_proj * vec4(-1, 1, -1, 1);
30 vec4 lbf = inv_view_proj * vec4(-1, -1, 1, 1);
31 vec4 rbn = inv_view_proj * vec4( 1, -1, -1, 1);
32 vec4 rtn = inv_view_proj * vec4( 1, 1, -1, 1);
33 vec4 rbf = inv_view_proj * vec4( 1, -1, 1, 1);
34 vec4 rtf = inv_view_proj * vec4( 1, 1, 1, 1);
52 planes[0] = vec4(left_normal, -
vec_dot(left_normal, lbn_pos));
53 planes[1] = vec4(right_normal, -
vec_dot(right_normal, rbn_pos));
54 planes[2] = vec4(near_normal, -
vec_dot(near_normal, lbn_pos));
55 planes[3] = vec4(far_normal, -
vec_dot(far_normal, lbf_pos));
56 planes[4] = vec4(top_normal, -
vec_dot(top_normal, ltn_pos));
57 planes[5] = vec4(bottom_normal, -
vec_dot(bottom_normal, lbn_pos));
float vec_dot(const T &a, const T &b)
vec3 vec_cross(const vec3 &a, const vec3 &b)
mat4 mat_inverse(const mat4 &a)
void compute_frustum_from_view_projection(vec4 *planes, const mat4 &view_projection)
T vec_normalize(const T &vec)
vec3 vec_project(const vec4 &vec)