Files
XCEngine/docs/api/math/frustum/frustum.md
ssdfasd f5a34f8adc docs: 重构 API 文档 - components 和 scene 模块
- components: 修复英文标题为中文,添加缺失组件文档
  - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览
  - 修复 get-position.md 格式
  - 更新 components.md 模块总览
- scene: 修复方法文档格式,新增缺失方法
  - 修复 find.md, create-game-object.md 英文标题
  - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档
  - 更新 scene.md 类总览方法列表
2026-03-26 01:50:27 +08:00

1.6 KiB
Raw Blame History

Frustum

命名空间: XCEngine::Math

类型: class

头文件: XCEngine/Core/Math/Frustum.h

描述: 视锥体,用于 3D 裁剪和可见性判断

概述

Frustum 表示一个视锥体,由 6 个裁剪平面组成左、右、底、顶、近、远。主要用于视锥剔除Frustum Culling在渲染前判断场景物体是否与相机视锥相交或完全在内从而决定是否需要渲染该物体提升渲染性能。

公共方法

方法 描述
Contains(Point) 点是否完全在视锥内
Contains(Sphere) 球体是否完全在视锥内
Contains(Bounds) Bounds 是否完全在视锥内
Intersects(Bounds) Bounds 是否与视锥相交
Intersects(Sphere) 球体是否与视锥相交

嵌套类型

类型 描述
PlaneIndex 平面索引枚举Left, Right, Bottom, Top, Near, Far

使用示例

Frustum frustum = camera.CalculateFrustum();
Bounds objectBounds = object.GetWorldBounds();

if (frustum.Contains(objectBounds)) {
    // 物体完全在视锥内,必须渲染
    Render(object);
} else if (frustum.Intersects(objectBounds)) {
    // 物体与视锥相交,可能需要渲染
    Render(object);
}

相关文档