游戏引擎中的BoundingBox

一.AABB包围盒

<1.包围盒定义

以长方体盒子形状,长方体顶点为描述的包围盒,在模型,碰撞体创建时同时创建,以实现物理碰撞,特殊shader渲染等常用功能.

center = (min + max) / 2

radius = min到max距离/2

复制代码
public 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);
}
相关推荐
辻弋2011 天前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
淡海水5 天前
02-02-原理篇-分代GC
算法·unity·c#·游戏引擎·.net·gc
淡海水6 天前
02-03-原理篇-大对象堆
unity·c#·游戏引擎·.net·gc
郝学胜-神的一滴6 天前
C++ Templates 01:拨开迷雾,读懂C++模板经典著作
开发语言·c++·程序人生·游戏·游戏引擎·软件构建
淡海水6 天前
02-01-原理篇-Mark-Sweep与变种算法
算法·unity·c#·游戏引擎·.net·gc
babywang07 天前
Unity笔记--AssetBundle详解
unity·游戏引擎
魔士于安8 天前
经典Game
游戏·游戏引擎·贴图·技术美术·模型
淡海水8 天前
01-04-认知篇-Unity内存全景
unity·c#·游戏引擎·.net·gc
598866753@qq.com8 天前
Codex与Unity
unity·游戏引擎
淡海水8 天前
01-03-认知篇-C#内存模型深度解析
unity·c#·游戏引擎·.net·gc