Atlaslog
Atlaslog / three.js / API reference / Frustum
three.js · API reference

Frustum

Quick answer

Frustum is six planes enclosing the camera's visible volume, used for cheap visibility tests before drawing. Call setFromProjectionMatrix() with the combined projection and view matrix, then test objects with intersectsObject(), intersectsBox(), or containsPoint(). It powers custom render passes, batching, and level-of-detail decisions.

Last verified 2026-11-03 · three.js 0.160.0 · Cite this page
new THREE.Frustum ( p0 , p1 , p2 , p3 , p4 , p5 )
Key points
Example
const frustum = new THREE.Frustum();
const matrix = new THREE.Matrix4();

function cullVisible(camera, objects) {
  matrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);
  frustum.setFromProjectionMatrix(matrix);

  return objects.filter(function (obj) {
    return frustum.intersectsObject(obj);
  });
}
const visible = cullVisible(camera, scene.children);
Notes
Runnable examplesChinese originalAll API references
English edition written for Atlaslog. Code is taken from the original Chinese page and runs unchanged.
Cite this page

Atlaslog (2026). Frustum. https://www.jingweizhi.com/en/three/api/frustum.html (accessed 2026-11-03).