光线与包围盒(AABB)的相交检测算法
来源:互联网 发布:国外域名注册平台 编辑:程序博客网 时间:2024/04/27 18:47
转自:http://blog.csdn.net/u012325397/article/details/50807880 侵删
这里介绍两种算法,第一种比较容易理解
下面是Cocos2dx中实现Ray-AABB相交(碰撞)检测的算法,说明看注释
下面是另外一种Ray-AABB检测算法,称为"Slabs method"
观察上述三幅图可以得出,只要发生区间交叠,光线与平面就能相交,
那么区间交叠出现的条件便是:光线进入平面处的最大t值小于光线离开平面处的最小t值
那么问题就变成了如何求 光线进入平面处的最大t值 以及 光线离开平面处的最小t值
这个问题很简单,通过光线与平面相交的参数方程求解就可以了,
光线的参数方程为R(t) = O + t * Dir
一般平面方程为aX+bY+cZ+d=0,因为AABB的六个面分别平行于XY、XZ、YZ平面,所以平面的方程为X=d,Y=d,Z=d
光线与垂直于x轴的两个面相交时,t = (d - O.x) / Dir.x
光线与垂直于y轴的两个面相交时,t = (d - O.y) / Dir.y
光线与垂直于z轴的两个面相交时,t = (d - O.z) / Dir.z
注意到t<0时,交点位于光线的起点之后,则光线(射线)并未与盒体发生相交
0 0
- 光线与包围盒(AABB)的相交检测算法
- 光线与包围盒(AABB)的相交检测算法
- 光线与包围盒(AABB)的相交检测算法
- 射线和轴对齐包围盒相交检测-简洁算法(ray-aabb overlap test alogrithm)
- 《实时碰撞检测算法技术》读书笔记(二):轴对齐包围盒(AABB)的计算与更新
- 3D空间中射线与轴向包围盒AABB的交叉检测算法
- 3D空间中射线与轴向包围盒AABB的交叉检测算法
- 3D空间中射线与轴向包围盒AABB的交叉检测算法
- aabb与oob包围盒 碰撞检测
- AABB包围盒算法
- 理解AABB包围盒算法
- 理解AABB包围盒算法
- [OpenGL]基于AABB包围盒的漫游时视点与场景的碰撞检测
- AABB包围盒、OBB包围盒、包围球的比较
- AABB包围盒、OBB包围盒、包围球的比较
- AABB包围盒、OBB包围盒、包围球的比较
- 光线与盒体相交检测(Ray-OBB)可用于VR中Cursor与控件的碰撞检测
- [算法][包围盒]球,AABB,OBB
- KMP算法(C语言版)
- Linux 系统应用编程——线程基础
- 语义分析的总结
- Word插入三线表
- Shopping(山东省第一届ACM省赛)
- 光线与包围盒(AABB)的相交检测算法
- MDDR, DDR2, DDR3, SDRAM
- foreach循环
- 使用fastlane实现iOS持续集成
- 泛型集合求交集,并集,差集
- Python学习笔记1
- 【南理工oj】108 - 士兵杀敌(一)(线段树 & 树状数组)
- Appium实战-开始
- KMP算法(C++版)