1.6 KiB
1.6 KiB
Frustum
命名空间: XCEngine::Math
类型: class
头文件: XCEngine/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);
}