一種用于隧道環(huán)境的射線追蹤加速算法
【專利摘要】本發(fā)明公開了一種用于隧道環(huán)境的射線追蹤加速算法,其屬于電磁信道仿真領(lǐng)域。所述加速算法可以用于隧道場景的電磁信道仿真,并作為通信基站布局的依據(jù)。算法的基本思想是將描述隧道的三角形網(wǎng)格分割為一系列的凸多面體,并且判斷從隧道前截面射入凸多面體的射線與后截面是否相交。根據(jù)凸多面體的性質(zhì),如果射線與后截面相交,則必然與墻壁不相交;如果射線不與后截面相交,則必然與墻壁相交。通過采用預(yù)處理和查表法,射線與截面的相交和射線與墻壁的相交均能夠在常數(shù)時(shí)間內(nèi)完成。本發(fā)明公開的方法極大地減少了射線與三角形相交的計(jì)算量,提高了射線追蹤算法的運(yùn)算效率,使得隧道場景下的基站布局能夠更高效地完成。
【專利說明】一種用于隧道環(huán)境的射線追蹤加速算法
【技術(shù)領(lǐng)域】:
[0001] 本發(fā)明公開了一種用于隧道環(huán)境的射線追蹤加速算法,其屬于電磁信道仿真領(lǐng) 域。
【背景技術(shù)】:
[0002] 近年來,無線通訊技術(shù)得到了長足的發(fā)展,無線通信被廣泛用于軍事、教育、交通、 航空等各個行業(yè)。
[0003] 然而,無論是移動通信基站的建設(shè),還是辦公大樓的WIFI覆蓋,都離不開基站和 AP的正確部署;而AP和基站的正確部署則又依賴于對電磁信號的正確預(yù)測。目前,波束追 蹤(beam tracing)和射線追蹤(ray tracing)是進(jìn)行電磁仿真的兩種主流技術(shù)。然而對 于較為復(fù)雜的場景,無論是波束追蹤算法還是射線追蹤算法,其運(yùn)行的時(shí)間開銷都是非常 大的。通常三維場景都使用標(biāo)準(zhǔn)的三角形網(wǎng)格(triangle mesh)進(jìn)行描述。當(dāng)場景復(fù)雜度 較高,三角形的數(shù)量達(dá)到數(shù)十萬、數(shù)百萬乃至更高時(shí),算法在"射線與場景中的所有三角形 求交"這一步所耗費(fèi)的時(shí)間就會變得異常巨大。
[0004] 為了優(yōu)化三角形求交的效率,研究人員開發(fā)了一系列的加速算法,包括簡單網(wǎng)格 (regular grid)、嵌套網(wǎng)格(nested grid)、八叉樹(octree)、k_d 樹(k_d tree)等等。以 上算法具有較好的通用性,但是對于某些具體的場景,卻忽略了場景元素間的內(nèi)在聯(lián)系,在 一定程度上限制了算法性能的進(jìn)一步提升,隧道環(huán)境就是這樣的一個案例。
[0005] 隧道模型通常是一個封閉曲線沿指定路徑掃掠(swe?。┒玫降那妫玫降那?面稱為掃掠曲面(swept surface)。當(dāng)封閉曲線表示為一個平面上的η邊形,掃掠路徑表示 為一條分為m段的折線時(shí),得到的掃掠曲面將是一個由2mn個三角形拼接而成的曲面。通 用的算法對所有的2mn的三角形進(jìn)行處理,而忽略了這樣的一個信息:掃掠曲面的所有截 面均可表達(dá)為同一個多邊形,實(shí)際上所有幾何元素的數(shù)量之和僅為m+n。
【發(fā)明內(nèi)容】
:
[0006] 本發(fā)明所要解決的技術(shù)問題是:針對隧道這樣的特殊環(huán)境,充分利用其幾何特征, 設(shè)計(jì)一種用于隧道環(huán)境的射線追蹤加速算法,通過本發(fā)明,隧道環(huán)境下基于射線追蹤、波束 追蹤的電磁信號仿真能夠更有效地進(jìn)行。
[0007] 本發(fā)明采用如下技術(shù)方案:一種用于隧道環(huán)境的射線追蹤加速算法,所述隧道截 面表示為一個凸多邊形,且所述任意一個隧道段表示為一個凸多面體,其包括如下步驟:
[0008] 步驟1 :隧道截面的邊界條件預(yù)處理,用于判斷射線與隧道截面凸多邊形的交點(diǎn) 是否在凸多邊形的內(nèi)部;
[0009] 步驟2 :隧道截面的快速映射表預(yù)處理,建立映射表,降低判斷射線與隧道截面凸 多邊形的交點(diǎn)在凸多邊形內(nèi)部的平均計(jì)算時(shí)間;
[0010] 步驟3 :隧道壁三角形網(wǎng)格的快速映射表預(yù)處理,所述隧道壁是由隧道截面凸多 邊形沿指定掃掠路徑掃掠而成的曲面;
[0011] 步驟4 :進(jìn)行加速的射線追蹤算法,其具體包括
[0012] 步驟4. 1.從隧道外的任意一點(diǎn)發(fā)出的射線R,若其與隧道的入口多邊形相交,并 且射線方向?yàn)閺娜肟谏淙胨淼?,且方向向量D與入口多邊形的法向量--的點(diǎn)乘D. W > 0, 則標(biāo)記該射線"在隧道內(nèi)",并且標(biāo)記該射線所處的位置為"在隧道的第1段中";若其與隧 道的出口多邊形相交,并且射線方向?yàn)閺某隹谏淙胨淼溃曳较蛳蛄?與出口多邊形的法 向量友的點(diǎn)乘萬.7 < 0 ,則標(biāo)記該射線"在隧道內(nèi)",并且標(biāo)記該射線所處的位置為"在隧道 的第n-1段中",其中η為掃掠路徑的節(jié)點(diǎn)個數(shù);
[0013] 步驟4. 2.若射線R在隧道內(nèi),首先判斷射線的方向,若射線的方向向量D與隧道 當(dāng)前區(qū)間的路徑向量及的點(diǎn)乘Γ).刃> 〇,則標(biāo)記該射線的方向的"向前",反之則標(biāo)記方向?yàn)?"向后";接著判斷射線與隧道當(dāng)前區(qū)間的出口多邊形是否相交;
[0014] 步驟4. 3.若檢測到射線與隧道壁上的某個三角形相交,則立刻返回交點(diǎn)的相關(guān) 數(shù)據(jù),根據(jù)隧道壁的材質(zhì)參數(shù)對射線的能量進(jìn)行更新,遞歸計(jì)算產(chǎn)生的反射射線。
[0015] 進(jìn)一步地,所述步驟1中包括如下步驟: rm^l 朵聰1 1、抱幾玄邊形的各個頂點(diǎn)按逆時(shí)針排序,得到頂點(diǎn)坐#Ρι(Χι,Υι, 0),Ρ2(Χ2
【權(quán)利要求】
1. 一種用于隧道環(huán)境的射線追蹤加速算法,所述隧道截面表示為一個凸多邊形,且所 述任意一個隧道段表示為一個凸多面體,其特征在于:包括如下步驟 步驟1 :隧道截面的邊界條件預(yù)處理,用于判斷射線與隧道截面凸多邊形的交點(diǎn)是否 在凸多邊形的內(nèi)部; 步驟2 :隧道截面的快速映射表預(yù)處理,建立映射表,降低判斷射線與隧道截面凸多邊 形的交點(diǎn)在凸多邊形內(nèi)部的平均計(jì)算時(shí)間; 步驟3 :隧道壁三角形網(wǎng)格的快速映射表預(yù)處理,所述隧道壁是由隧道截面凸多邊形 沿指定掃掠路徑掃掠而成的曲面; 步驟4 :進(jìn)行加速的射線追蹤算法,其具體包括 步驟4. 1.從隧道外的任意一點(diǎn)發(fā)出的射線R,若其與隧道的入口多邊形相交,并且射 線方向?yàn)閺娜肟谏淙胨淼?,且方向向?與入口多邊形的法向量及的點(diǎn)乘方巧>〇,則標(biāo)記 該射線"在隧道內(nèi)",并且標(biāo)記該射線所處的位置為"在隧道的第1段中";若其與隧道的出口 多邊形相交,并且射線方向?yàn)閺某隹谏淙胨淼溃曳较蛳蛄緿與出口多邊形的法向量及的 點(diǎn)乘< 0 ,則標(biāo)記該射線"在隧道內(nèi)",并且標(biāo)記該射線所處的位置為"在隧道的第η-1 段中",其中η為掃掠路徑的節(jié)點(diǎn)個數(shù); 步驟4. 2.若射線R在隧道內(nèi),首先判斷射線的方向,若射線的方向向量D與隧道當(dāng)前 區(qū)間的路徑向量--的點(diǎn)乘萬· W > 0,則標(biāo)記該射線的方向的"向前",反之則標(biāo)記方向?yàn)?向 后";接著判斷射線與隧道當(dāng)前區(qū)間的出口多邊形是否相交; 步驟4. 3.若檢測到射線與隧道壁上的某個三角形相交,則立刻返回交點(diǎn)的相關(guān)數(shù)據(jù), 根據(jù)隧道壁的材質(zhì)參數(shù)對射線的能量進(jìn)行更新,遞歸計(jì)算產(chǎn)生的反射射線。
2. 如權(quán)利要求1所述的一種用于隧道環(huán)境的射線追蹤加速算法,其特征在于:所述步 驟1中包括如下步驟: 步驟1. 1.將凸多邊形的各個頂點(diǎn)按逆時(shí)針排序,得到頂點(diǎn)坐SPjxp yp 0),P2(x2, y2, 0
),· · ·,Pn(Xn,Υη,〇); 步驟1.2.遍歷該列表,得到向j 步驟1. 3.判斷一個點(diǎn)是否在所;tdiuL;r;itf」hJ部朋·過判斷該點(diǎn)是否在以上所有向 量的左側(cè)即可,該方法的數(shù)學(xué)表述如下:對于給定點(diǎn)Pi (Xl,yi,0)和P2 (x2, y2, 0)和目標(biāo)點(diǎn) T(x, y, 0),?
的z分量大于 〇時(shí),即(y
時(shí),點(diǎn)T在向量@的左側(cè), 對于多邊形的每一條邊,計(jì)算以下三個參數(shù):
若對于所有的邊:
,即可判定目標(biāo)點(diǎn)在多邊形的內(nèi)部。
3. 如權(quán)利要求2所述的一種用于隧道環(huán)境的射線追蹤加速算法,其特征在于:所述步 驟2中包括如下步驟: 步驟2. 1.建立映射表,首先計(jì)算凸多邊形所有點(diǎn)在x方向和y方向的最大值和最小 值:
將區(qū)間[Xmin,xmJ和[ymin,ymax]所確定的矩形區(qū)域劃分為一個MXN的網(wǎng)格,網(wǎng)格中的 每一個單元格也同樣是一個矩形,設(shè)其頂點(diǎn)分別為Pp P2, P3, P4; 步驟2. 2.使用步驟1中的方法進(jìn)行判斷,若四個點(diǎn)均在凸多邊形內(nèi),則將單元格標(biāo)記 為Hit ;若均不在多邊形內(nèi),標(biāo)記為Miss ;若部分在內(nèi)部,部分在外部,則標(biāo)記為Partial ; 步驟2. 3.當(dāng)標(biāo)記值為Hit或Miss時(shí),直接返回結(jié)果;當(dāng)標(biāo)記值為Partial時(shí),再使用 步驟1中描述的方法進(jìn)行判斷。
4. 如權(quán)利要求3所述的一種用于隧道環(huán)境的射線追蹤加速算法,其特征在于:所述步 驟3中包括如下步驟: 步驟3. 1.所述路徑表示為一段折線,設(shè)隧道截面的頂點(diǎn)坐標(biāo)分別為Pi
方向?yàn)閱挝幌蛄? 步驟3. 2.參照步驟2,計(jì)算隧道截面頂點(diǎn)坐標(biāo)范圍:
對二兀組建立一個映射表,映射表是一個MX NX K的網(wǎng)格,其中的前兩維表不點(diǎn) 0在隧道截面中的大致位置,最后一維表示射線的大致方向。
5. 如權(quán)利要求4所述的一種用于隧道環(huán)境的射線追蹤加速算法,其特征在于:所述步 驟4. 2包括如下步驟 步驟4.2.1.設(shè)射線與當(dāng)前區(qū)間的入口多邊形的交點(diǎn)為0,射線的方向向量為 出口 多邊形的基點(diǎn)為P,法向量為及; 步驟4. 2. 2.通過三維平移和三維旋轉(zhuǎn)變換,將四元組
映射到 I
實(shí)中(V和;^分別表示變換后的射線起點(diǎn)和射線方向向量,新的 射線記為V ; 步驟4.2.3.計(jì)算R'與處于Χ0Υ平面內(nèi)的隧道截面多邊形是否相交即可,計(jì)算R'與 Χ0Υ平面的交點(diǎn),使用步驟2中的方法,快速判斷交點(diǎn)是否在多邊形內(nèi)部;若交點(diǎn)在多邊形 內(nèi)部,根據(jù)凸多面體的性質(zhì),射線與墻壁不相交,此時(shí)可以繼續(xù)判斷與下一段隧道的出口多 邊形是否相交; 步驟4. 2. 4.若交點(diǎn)在多邊形的外部,根據(jù)凸多面體的性質(zhì),射線必然與墻壁相交,確 定射線R與隧道壁上的哪個三角形相交,將V投影到XOY平面,得到R",其起點(diǎn)為Ο",方 向向量為歹; 步驟4. 2. 5.計(jì)算二元纟
吋應(yīng)的網(wǎng)格坐標(biāo),查詢獲得單元格對應(yīng)的三角形索引 號列表,依次計(jì)算射線R是否與相應(yīng)的三角形相交。
【文檔編號】G06T17/00GK104112293SQ201410317199
【公開日】2014年10月22日 申請日期:2014年7月4日 優(yōu)先權(quán)日:2014年7月4日
【發(fā)明者】錢紅燕, 高峰宇, 陳兵 申請人:南京航空航天大學(xué)