边界框
< Zh
Jump to navigation
Jump to search
边界框(轴对齐边界框AABB和定向边界框OBB)是自动生成的隐形框体,用于定义实体的粗略尺寸。其主要作用是在实体可见时执行QPhysics 碰撞检测(通常在更复杂的检测之前进行)。
如图所示,边界框由两个坐标点构成:
- "mins"(最小偏移) - 始终为负值
- "maxs"(最大偏移) - 始终为正值
两者的偏移量之和即为边界框的实际尺寸。
边界框的应用场景包括:
如需手动覆盖边界框,可通过以下方式实现:
- 建模师使用$bbox QC命令
- 地图制作者在
solid
设为2时使用mins
/maxs
键值 - 程序员调用
UTIL_SetSize()
或CBaseEntity::SetSize()

旋转特性
边界框始终与世界坐标轴对齐,不会旋转。这种设计主要考虑玩家碰撞检测需求:在狭窄走廊中,如果边界框随角色旋转会导致无法转身。轴对齐框的计算成本也更低。
对于近似方形的物体影响不大,但长条形物体需改用VPhysics 系统。例如《Day of Defeat: Source 》中匍匐玩家的长条形边界框只能通过"压缩"处理,导致头部和脚部始终暴露在外。
物体对齐边界框
此类边界框会随实体旋转,与VPhysics 系统存在关联。
- 待完善: 是否需要补充更多描述?若无则合并至前文
行业术语
Source引擎社区未完全采用行业标准术语,但开发中可能涉及:
- AABB(轴对齐边界框) - 不旋转的3D体积
- OBB(定向边界框) - 可旋转的3D体积
Source中边界框通常指AABB,因其相交检测更简单。当需要旋转时,会重新计算边界框而非直接旋转。
调试工具

使用ent_bbox显示的npc_metropolice边界框
相关控制台命令:
ent_bbox
- 可视化实体边界框ent_absbox
- 可视化AABB边界框picker
- 显示准星所指实体的边界框详情
程序员相关函数:
- UTIL_EntitiesInBox - 查找给定边界框内的所有实体
NDebugOverlay::Box
- 绘制指定范围的边界框(/
中可能提供
DebugDrawBox()
)