- 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 类总览方法列表
1.6 KiB
1.6 KiB
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);
}