游戏引擎中的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);
}
相关推荐
WiChP8 小时前
【V0.1B16】从零开始的2D游戏引擎开发之路
开发语言·算法·游戏引擎
狂人开飞机1 天前
23、实战平台跳跃游戏
游戏·游戏引擎·godot
淡海水1 天前
11-02-Unity-Mono-vs-IL2CPP-两种脚本后端的数据结构行为差异
数据结构·unity·游戏引擎·il2cpp·mono
彧azz2 天前
初学Unity:编辑器
笔记·学习·unity·游戏引擎
小小数媒成员2 天前
GPU优化(1)
游戏·unity·游戏引擎
狂人开飞机2 天前
27、实战物理益智游戏
游戏·游戏引擎·godot
小小数媒成员2 天前
如何优化代码适应托管内存?
游戏·unity·游戏引擎
狂人开飞机3 天前
21、游戏架构设计模式
游戏·游戏引擎·godot
狂人开飞机4 天前
14、游戏手感与视觉打磨
游戏·游戏引擎·godot