enable camera frustum culling for bsp rendering
This commit is contained in:
parent
704b14b2a0
commit
ac8ab8d60d
4 changed files with 36 additions and 82 deletions
|
|
@ -255,35 +255,35 @@ pxl8_frustum pxl8_frustum_from_matrix(pxl8_mat4 vp) {
|
|||
pxl8_frustum frustum;
|
||||
const f32* m = vp.m;
|
||||
|
||||
frustum.planes[0].normal.x = m[3] - m[0];
|
||||
frustum.planes[0].normal.y = m[7] - m[4];
|
||||
frustum.planes[0].normal.z = m[11] - m[8];
|
||||
frustum.planes[0].distance = m[15] - m[12];
|
||||
frustum.planes[0].normal.x = m[12] - m[0];
|
||||
frustum.planes[0].normal.y = m[13] - m[1];
|
||||
frustum.planes[0].normal.z = m[14] - m[2];
|
||||
frustum.planes[0].distance = m[15] - m[3];
|
||||
|
||||
frustum.planes[1].normal.x = m[3] + m[0];
|
||||
frustum.planes[1].normal.y = m[7] + m[4];
|
||||
frustum.planes[1].normal.z = m[11] + m[8];
|
||||
frustum.planes[1].distance = m[15] + m[12];
|
||||
frustum.planes[1].normal.x = m[12] + m[0];
|
||||
frustum.planes[1].normal.y = m[13] + m[1];
|
||||
frustum.planes[1].normal.z = m[14] + m[2];
|
||||
frustum.planes[1].distance = m[15] + m[3];
|
||||
|
||||
frustum.planes[2].normal.x = m[3] + m[1];
|
||||
frustum.planes[2].normal.y = m[7] + m[5];
|
||||
frustum.planes[2].normal.z = m[11] + m[9];
|
||||
frustum.planes[2].distance = m[15] + m[13];
|
||||
frustum.planes[2].normal.x = m[12] + m[4];
|
||||
frustum.planes[2].normal.y = m[13] + m[5];
|
||||
frustum.planes[2].normal.z = m[14] + m[6];
|
||||
frustum.planes[2].distance = m[15] + m[7];
|
||||
|
||||
frustum.planes[3].normal.x = m[3] - m[1];
|
||||
frustum.planes[3].normal.y = m[7] - m[5];
|
||||
frustum.planes[3].normal.z = m[11] - m[9];
|
||||
frustum.planes[3].distance = m[15] - m[13];
|
||||
frustum.planes[3].normal.x = m[12] - m[4];
|
||||
frustum.planes[3].normal.y = m[13] - m[5];
|
||||
frustum.planes[3].normal.z = m[14] - m[6];
|
||||
frustum.planes[3].distance = m[15] - m[7];
|
||||
|
||||
frustum.planes[4].normal.x = m[3] - m[2];
|
||||
frustum.planes[4].normal.y = m[7] - m[6];
|
||||
frustum.planes[4].normal.z = m[11] - m[10];
|
||||
frustum.planes[4].distance = m[15] - m[14];
|
||||
frustum.planes[4].normal.x = m[12] - m[8];
|
||||
frustum.planes[4].normal.y = m[13] - m[9];
|
||||
frustum.planes[4].normal.z = m[14] - m[10];
|
||||
frustum.planes[4].distance = m[15] - m[11];
|
||||
|
||||
frustum.planes[5].normal.x = m[3] + m[2];
|
||||
frustum.planes[5].normal.y = m[7] + m[6];
|
||||
frustum.planes[5].normal.z = m[11] + m[10];
|
||||
frustum.planes[5].distance = m[15] + m[14];
|
||||
frustum.planes[5].normal.x = m[12] + m[8];
|
||||
frustum.planes[5].normal.y = m[13] + m[9];
|
||||
frustum.planes[5].normal.z = m[14] + m[10];
|
||||
frustum.planes[5].distance = m[15] + m[11];
|
||||
|
||||
for (i32 i = 0; i < 6; i++) {
|
||||
f32 len = pxl8_vec3_length(frustum.planes[i].normal);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue