碰撞檢測可以分為近似檢測和精確檢測。近似碰撞檢測又稱為包圍盒碰撞檢測,使用三維區(qū)域(包圍盒)進行檢測。包圍盒是包圍給定三維對象所有頂點的棱柱。它可分為方向包圍盒和軸向包圍盒兩類。方向包圍盒是一個沿著對象主軸方向的六面體,當對象旋轉(zhuǎn)時會動態(tài)改變方向。軸向包圍盒是沿著世界坐標系坐標軸方向的包圍盒。
包圍盒碰撞檢測時測試三維空間中兩個(或多個)包圍盒是否相交。測試碰撞意味著把它們的包圍盒投影到世界坐標系的坐標軸上,并確定3部分的投影是否都相交。為了檢測出所有的碰撞,包圍盒碰撞檢測的速度必須非???。
另外,緩解檢測不到碰撞的一種方法是提高繪制速度,這就意味著要對繪制流水線硬件進行升級。另一種方法是在執(zhí)行包圍盒相交測試時利用場景的相關(guān)性。場景相關(guān)性指的是在任何給定的時刻,運動對象總是位于上一所處位置的附近。特別是,虛擬世界中所有固定大小的包圍盒被投影到世界坐標系的3個坐標軸上,形成3個區(qū)間表。在仿真開始時,對這3個區(qū)間表進行排序,并產(chǎn)生相交的區(qū)間對。在后面的幀中,通過遍歷排序表查找相交的區(qū)間對。場景的相關(guān)性使得區(qū)間表在幀與幀之間的變化非常小,使得碰撞檢測的代價與虛擬世界中的對象數(shù)目成正比。
近似碰撞檢測是必需的第一步,用于掃除那些距離比較遠因而包圍盒不會相交的對象。如果虛擬現(xiàn)實應用需要準確地知道兩個對象在何處發(fā)生接觸,就需要執(zhí)行精確碰撞檢測。在每個仿真循環(huán)中都執(zhí)行兩種類型的碰撞檢測。精確碰撞檢測只在可能發(fā)生接觸
的對象對之間進行。 精確檢測的方法主要有兩種。一種是Lin開發(fā)了一種快速算法,算法性能不受對象碰撞檢測可以分為近似檢測和精確檢測。近似碰撞檢測又稱為包圍盒碰撞檢測,使用三維區(qū)域(包圍盒)進行檢測。包圍盒是包圍給定三維對象所有頂點的棱柱。它可分為方向包圍盒和軸向包圍盒兩類。方向包圍盒是一個沿著對象主軸方向的六面體,當對象旋轉(zhuǎn)時會動態(tài)改變方向。軸向包圍盒是沿著世界坐標系坐標軸方向的包圍盒。
包圍盒碰撞檢測時測試三維空間中兩個(或多個)包圍盒是否相交。測試碰撞意味著把它們的包圍盒投影到世界坐標系的坐標軸上,并確定3部分的投影是否都相交。為了檢測出所有的碰撞,包圍盒碰撞檢測的速度必須非??臁?/p>
另外,緩解檢測不到碰撞的一種方法是提高繪制速度,這就意味著要對繪制流水線硬件進行升級。另一種方法是在執(zhí)行包圍盒相交測試時利用場景的相關(guān)性。場景相關(guān)性指的是在任何給定的時刻,運動對象總是位于上一所處位置的附近。特別是,虛擬世界中所有固定大小的包圍盒被投影到世界坐標系的3個坐標軸上,形成3個區(qū)間表。在仿真開始時,對這3個區(qū)間表進行排序,并產(chǎn)生相交的區(qū)間對。在后面的幀中,通過遍歷排序表查找相交的區(qū)間對。場景的相關(guān)性使得區(qū)間表在幀與幀之間的變化非常小,使得碰撞檢測的代價與虛擬世界中的對象數(shù)目成正比。
近似碰撞檢測是必需的第一步,用于掃除那些距離比較遠因而包圍盒不會相交的對象。如果虛擬現(xiàn)實應用需要準確地知道兩個對象在何處發(fā)生接觸,就需要執(zhí)行精確碰撞檢測。在每個仿真循環(huán)中都執(zhí)行兩種類型的碰撞檢測。精確碰撞檢測只在可能發(fā)生接觸
的對象對之間進行。 精確檢測的方法主要有兩種。一種是Lin開發(fā)了一種快速算法,算法性能不受對象頂點數(shù)目的影響。 Cohen等把Lin的局部碰撞檢測算法進一步發(fā)展成虛擬現(xiàn)實仿真中的多體碰撞檢測。另一種精確碰撞檢測算法是 Schlaroff和 Pentland提出的。該方法不是使用對象的多邊形表示,而是使用隱函數(shù),用代數(shù)的方法定義對象表面。
內(nèi)容來源:張濤《多媒體技術(shù)與虛擬現(xiàn)實》