游戏引擎中的BoundingBox

游戏引擎中的BoundingBox 一.AABB包围盒1.包围盒定义以长方体盒子形状,长方体顶点为描述的包围盒,在模型,碰撞体创建时同时创建,以实现物理碰撞,特殊shader渲染等常用功能.center (min max) / 2radius min到max距离/2public class AABBBoundingBox { public Vector4 min Vector4.Zero; public Vector4 max Vector4.Zero; public Vector4 center Vector4.Zero; public float radius 0f; }2.包围盒相交物理检测public bool PointInsideBox(Vec3 point, float epsilon) { return point.x epsilon this.max.x point.x - epsilon this.min.x point.y epsilon this.max.y point.y - epsilon this.min.y point.z epsilon this.max.z point.z - epsilon this.min.z; }二.OBB包围盒1.包围盒定义以长方体盒子形状,局部坐标系三个坐标轴向量进行描述的包围盒.public class OBBBoundingBox { public Vector4 s new Vector4(1f, 0f, 0f, 0f); public Vector4 f new Vector4(0f, 1f, 0f, 0f); public Vector4 u new Vector4(0f, 0f, 1f, 0f); }