本發(fā)明屬于計算機圖形學光源采樣,具體涉及一種基于樹結構的光線文件光源繪制方法和裝置。
背景技術:
1、在燈具設計的光學仿真應用中,光線文件(ray?file)是一種常見的可表示任意發(fā)光體的格式,一個光線文件內(nèi)包含多條發(fā)光光線,每條發(fā)光光線一般包含光線起點坐標、光線方向、發(fā)光通量等數(shù)據(jù),發(fā)光光線的數(shù)目通常在十萬到千萬數(shù)量級。led廠商通常會提供led燈相應的光線文件用于仿真計算,也可以通過光學仿真應用先進行仿真計算,得到設計燈具的光線文件,并用于進一步的仿真計算或光照繪制。光學仿真通常使用蒙特卡洛光線追蹤進行,根據(jù)追蹤進行的方向,包括從光源出發(fā)的正向仿真,在計算機圖形學領域中也稱光源追蹤(light?tracing)或粒子追蹤(particle?tracing),以及從感光器出發(fā)的逆向仿真,在計算機圖形學領域中也稱路徑追蹤(path?tracing)。由于光線文件使用發(fā)光光線對光源進行描述,數(shù)據(jù)在空間位置與方向上均是離散的,這使得光線文件光源無法在逆向仿真中使用,因為從接收器發(fā)出的光線無法正好以相應的方向打到對應的發(fā)光點上,使得光線文件光源無法對結果產(chǎn)生貢獻。
2、由于一些追蹤光路在正向仿真中比較難或無法追蹤到,且光線文件數(shù)據(jù)占用的內(nèi)存空間比較大,一些研究對光線文件光源進行連續(xù)化的處理,使光線文件光源可以用于逆向仿真,并且減少內(nèi)存空間的使用。如文獻mas,?albert,?et?al.?"compression?andimportance?sampling?of?near-field" computer?graphics?forum,?27?(2008):?2013-2027,該文獻對光線文件中的光線進行劃分,然后進行三角化得到三角網(wǎng)格,在每一個三角網(wǎng)格的頂點上用球面均勻映射表示和記錄發(fā)光光線起點在附近的光線的方向分布,使用二維紋理存儲該分布。文獻velázquez-armendáriz,?edgar?et?al.?"complex?luminaires:illumination?and?appearance?rendering". acm?transactions?on?graphics34.3(2015):?1-15對發(fā)光光線做聚集聚類(agglomerative?clustering),使用多個離散的各向異性點光源(anisotropic?point?light)表示每一個聚類,同樣使用二維紋理表示每個各向異性點光源的發(fā)光方向分布,雖然發(fā)光點是離散的,但方向分布的表示是連續(xù)的,所以也可以用于逆向仿真。
3、雖然上述文獻提出的方法可以讓光線文件光源用于逆向仿真,但對于復雜高頻的光線文件光源,如通過光學仿真應用進行仿真得到的車前燈的光線文件,處理后的仿真結果與正確結果存在較大的差距,且需要很大的內(nèi)存空間對處理后的數(shù)據(jù)進行存儲。
技術實現(xiàn)思路
1、鑒于上述,本發(fā)明的目的是提供一種基于樹結構的光線文件光源繪制方法和裝置,提升復雜高頻的光線文件光源的結果準確率,同時減少需要的內(nèi)存空間。
2、為實現(xiàn)上述發(fā)明目的,實施例提供的一種基于樹結構的光線文件光源繪制方法,包括以下步驟:
3、對光線文件中的發(fā)光光線進行三維空間和發(fā)光方向劃分并構建樹結構;
4、將樹結構的每個葉子節(jié)點的包圍體視作隱式光源,根據(jù)隱式光源自下向上地在樹結構中更新包圍體數(shù)據(jù);
5、在光線追蹤繪制或光學仿真中使用上述更新的樹結構進行重要性采樣與發(fā)光輻射度計算。
6、優(yōu)選地,對光線文件中的發(fā)光光線進行三維空間和發(fā)光方向劃分并構建樹結構,包括:
7、自上而下地劃分發(fā)光光線,劃分時自上到下的每一層輪流對空間包圍體和/或方向包圍體進行劃分實現(xiàn)三維空間和發(fā)光方向的劃分,劃分得到的左右兩部分作為當前節(jié)點的左子節(jié)點與右子節(jié)點,形成樹結構,當需要劃分的區(qū)間的發(fā)光光線數(shù)目少于等于一設定值時,停止劃分并形成葉子節(jié)點;
8、可選地,抽取并合并連續(xù)的若干層,形成每層分叉數(shù)更多、最大高度更低的樹結構。
9、優(yōu)選地,對空間包圍體和/或方向包圍體進行劃分,包括:
10、枚舉包圍體的每一個維度,評估每一維度下的最優(yōu)劃分及相應的劃分代價,選取最優(yōu)的維度進行劃分;
11、在評估當前維度時,對包圍體在當前維度下的范圍等距地分為指定數(shù)目個桶;對被劃分區(qū)間中的每一根發(fā)光光線,計算其發(fā)光起點或發(fā)光方向在當前評估維度中桶的序號,分配給相應的桶;對任意相鄰的兩桶,考慮在這兩桶之間劃分,根據(jù)兩側(cè)桶分配到的光線,評估劃分代價,并基于劃分代價更新最優(yōu)劃分點與最優(yōu)劃分維度;
12、其中,劃分代價的評估方式為:對劃分后的左右兩側(cè),基于計算的發(fā)光通量的和、空間包圍盒體積、發(fā)光方向的平均方向,以及每側(cè)所有發(fā)光方向與平均發(fā)光方向的最大夾角,來評估劃分代價,公式表示為:
13、;
14、其中,和分別表示左右側(cè)的總發(fā)光通量,和分別表示左右側(cè)的空間包圍盒體積,和分別表示左右側(cè)發(fā)光方向與平均發(fā)光方向的最大夾角,為左側(cè)平均發(fā)光方向為中心、最大夾角為范圍的球面圓形區(qū)域的立體角,為右側(cè)平均發(fā)光方向為中心、最大夾角為范圍的球面圓形區(qū)域的立體角。
15、優(yōu)選地,將樹結構的每個葉子節(jié)點的包圍盒視作隱式光源,包括:
16、使用圓盤形光源對隱式光源建模,具體計算當前葉子節(jié)點包括的發(fā)光光線的起點包圍盒,以該起點包圍盒中心作為圓盤形光源的圓心;計算當前葉子節(jié)點包括的發(fā)光光線的平均發(fā)光方向,以該平均發(fā)光方向作為圓盤形光源的朝向;計算當前葉子節(jié)點包括的發(fā)光光線到平均發(fā)光方向的最大夾角,并外擴一段角度,作為圓盤形光源的發(fā)光角度范圍;計算當前葉子節(jié)點包括的發(fā)光光線的起點在圓盤圓心為坐標原點、平均發(fā)光方向為z軸的局部坐標系中xy平面的投影點,并以投影點到原點的最大距離作為圓盤形光源的半徑。
17、其中,圓盤形光源發(fā)光角度的外擴,使用如下公式:
18、;
19、其中為原始最大夾角,為外擴后最大夾角,為一設定值。
20、優(yōu)選地,根據(jù)隱式光源自下向上地在樹結構中更新包圍體數(shù)據(jù),包括:
21、用圓盤形光源的幾何信息更新節(jié)點的空間包圍體信息,在當前節(jié)點為根的子樹中,依據(jù)最大外擴角度差外擴當前節(jié)點的角度范圍,其中外擴角度差為發(fā)光光線到平均發(fā)光方向的夾角與外擴夾角之差,即。
22、優(yōu)選地,在光線追蹤繪制或光學仿真中使用上述更新的樹結構進行重要性采樣與發(fā)光輻射度計算,包括:
23、當光線擊中場景中任意著色點時,從樹結構的根節(jié)點開始,不斷在樹結構的每層重要性采樣一個子節(jié)點,直到一個葉子節(jié)點,取出該葉子節(jié)點對應的隱式光源,并采樣一點作為發(fā)光點,計算該發(fā)光點對著色點的光照,實現(xiàn)下一事件評估(next?event?estimation)的重要性采樣;
24、當雙向散射分布函數(shù)重要性采樣的光線離開著色點后,從樹結構的根節(jié)點開始,不斷遍歷子節(jié)點,并用節(jié)點的包圍體數(shù)據(jù)快速剔除需要遍歷的子樹,在每個遍歷到的葉子節(jié)點計算相應隱式光源在當前光線反方向上的發(fā)光輻射度;
25、當從光源發(fā)出光線時,從樹結構的根節(jié)點開始,不斷在樹結構的每層用子節(jié)點的發(fā)光通量為權重重要性采樣一個子節(jié)點,直到一個葉子節(jié)點,取出節(jié)點相應的隱式光源,并在隱式光源中采樣一點作為發(fā)光點,采樣一個發(fā)光方向,計算在發(fā)光點與采樣方向上的發(fā)光輻射度,得到采樣的發(fā)光光線。
26、優(yōu)選地,在樹結構的每層重要性采樣一個子節(jié)點,包括:
27、對當前節(jié)點的每個子節(jié)點,利用其發(fā)光方向、角度范圍、包圍體中心坐標、包圍體半徑,判斷當前著色點是否在其表述的光照范圍內(nèi);若在范圍內(nèi),評估當前子節(jié)點對著色點的光照貢獻,并以光照貢獻為權重,重要性采樣一個子節(jié)點;若所有子節(jié)點均判斷當前著色點不在光照范圍內(nèi),直接終止樹結構的遍歷,返回采樣的發(fā)光輻射度為0;
28、優(yōu)選地,在隱式光源中采樣一點時,使用圓盤均勻采樣等概率地選取圓盤上一點。
29、優(yōu)選地,計算隱式光源中采樣的發(fā)光點對著色點的光照,使用如下公式:
30、;
31、其中,為對隱式光源建模的圓盤形光源上一點,為當前著色點,為到的單位向量,為圓盤形光源的朝向,表示向量點積,為圓盤形光源的發(fā)光角度范圍,為圓盤形光源的基礎發(fā)光輻射度,其通過以下公式算得:
32、;
33、其中,為當前隱式光源對應葉子節(jié)點記錄的總發(fā)光通量,為圓盤形光源的半徑。
34、優(yōu)選地,用節(jié)點的包圍體數(shù)據(jù)快速剔除需要遍歷的子樹,包括:
35、若當前光線方向的反方向與節(jié)點記錄的發(fā)光方向夾角超過節(jié)點角度范圍時,剔除當前子樹;若當前節(jié)點包圍體中心點到發(fā)光方向所在直線的距離超過節(jié)點包圍體半徑時,剔除當前子樹。
36、為實現(xiàn)上述發(fā)明目的,本發(fā)明實施例還提供了一種基于樹結構的光線文件光源繪制裝置,包括樹結構構建模塊、樹結構更新模塊、繪制模塊;
37、所述樹結構構建模塊用于對光線文件中的發(fā)光光線進行三維空間和發(fā)光方向劃分并構建樹結構;
38、所述樹結構更新模塊用于將樹結構的每個葉子節(jié)點的包圍體視作隱式光源,根據(jù)隱式光源自下向上地在樹結構中更新包圍體數(shù)據(jù);
39、所述繪制模塊用于在光線追蹤繪制或光學仿真中使用上述更新的樹結構進行重要性采樣與發(fā)光輻射度計算。
40、為實現(xiàn)上述發(fā)明目的,實施例還提供了一種計算設備,包括存儲器和一個或多個處理器,所述存儲器中存儲有可執(zhí)行代碼,所述一個或多個處理器執(zhí)行所述可執(zhí)行代碼時,用于實現(xiàn)上述基于樹結構的光線文件光源繪制方法。
41、為實現(xiàn)上述發(fā)明目的,實施例還提供了一種計算機可讀存儲介質(zhì),其上存儲有程序,該程序被處理器執(zhí)行時,實現(xiàn)上述基于樹結構的光線文件光源繪制方法。
42、與現(xiàn)有技術相比,本發(fā)明具有的有益效果至少包括:
43、本發(fā)明提供的基于樹結構的光線文件光源繪制方法與裝置,通過用樹結構組織表示光線文件中的發(fā)光光線,可以在逆向仿真中進行指定發(fā)光位置與方向的發(fā)光輻射度計算與光源的重要性采樣,也可以在正向仿真中對發(fā)光光線做連續(xù)的重要性采樣。這種光線文件光源的表示方式具有預處理及仿真計算速度快、占用內(nèi)存空間少、可表示高頻光線文件數(shù)據(jù)的特點。