(GPU光線追跡和分析)> 支持的功能
概要
實體分析
表面分析
探測器實體
方向分析實體
結(jié)果節(jié)點分析
膜層
分布計算
幾何體
表面
表面屬性
非表面幾何體節(jié)點
關(guān)鍵字
數(shù)值精度
光線
光線類型
光線屬性
光線追跡路徑
光線追跡屬性
散射
散射模型
重點采樣
腳本
光源
光譜
表面粗糙度
分析實體
分析表面
GPUs不支持并會忽略分析表面。當在GPUs使用光線追跡時,應(yīng)該使用平面類型探測器實體而不是分析表面。
探測器實體
如果在模型中存在一個配置正確且支持的探測器實體(DE)類型,GPU光線追跡可以使用它生產(chǎn)分析結(jié)果節(jié)點(ARNs)。下表逐條列出了GPUs所支持的探測器實體類型。任意未支持的DE類型或者未支持的參數(shù)都會被GPUs忽略。
每個探測器實體使用一系列參數(shù)來定義其尺寸、像素分辨率以及計算類型等。下面的表格列出了GPU支持的每個參數(shù)。
1. 配置了“illuminance”分析的探測器實體不會執(zhí)行所要求的分析,但如果“Abosorb rays”標志設(shè)置未True則會使GPU上的光線停止。
2. 光線濾波器
a. 在GPUs上,僅當計算時間設(shè)置為“at trace end”模式,才會應(yīng)用DE上的光線濾波器標準。在“During Trace”模式下,光線濾波器會被忽略,并且所有被DE截斷的光線都會包含在結(jié)果中。
b. 在Monte-Carlo模式下,在光線追跡的最后可以獲得所有的光線并進行光線過濾處理。
c. 在光線分裂模式下,在光線追跡末端僅能夠獲取”母”光線并進行光線過濾處理。這意味著,例如,當GPUs上的光線追跡為光束分裂模式時,其不能使用光線濾波器分理處“子“散射光線。不推薦在光線分裂模式下使用光線濾波器。
d. 在探測器實體方面,光線過濾應(yīng)用的基本標準是光線必須被DE攔截。例如,若一個DE的光線過濾為“散射光線“模型,預(yù)期只有與DE相交的散射光線才會對結(jié)果分析有貢獻。
e. 光線過濾對每條光線進行屬性操作。通過對GPU光線追跡模式使用如下規(guī)則,以進行光線屬性測試并與光線關(guān)聯(lián):
追跡CPU光線模式
i. 光線通過CPU光線緩沖區(qū)進行創(chuàng)建并初始化所有光線屬性
ii. 光線復(fù)制到GPU光線并用于追跡
iii. 光線在GPU上進行追跡
iv. 光線從GPU中復(fù)制回到其在CPU光線緩沖區(qū)的原始光線
v. GPU不支持的任意的CPU光線屬性都跟初始值意義
vi. 相應(yīng)地,使用GPU不支持的屬性的任意過濾操作都將在原始不變的CPU光線數(shù)據(jù)上進行測試
追跡GPU光線模式
i. GPU上創(chuàng)建的光線具有GPU支持的屬性
ii. 光線在GPU進行追跡
iii. 光線從GPU復(fù)制到一個臨時默認的CPU光線
iv. 相應(yīng)地,任何使用GPU不支持的屬性的過濾操作都將測試默認光線的設(shè)置
方向分析實體
方向分析實體(DAEs)將會在一個GPU光線追跡的最后自動生成一個分析結(jié)果節(jié)點(ARN)。一個DAE光線選擇的標準會在光線追跡結(jié)束時使用,這樣計算時間等同于一個探測器實體構(gòu)造的“追跡終止“模式。請參考探測器實體部分文檔以獲得GPUs光線評價標準更完整的描述。
分析結(jié)果節(jié)點
如果在模式中激活了一個正確配置的探測器實體(DE)或者方向分析實體(DAE),則GPUs可以生成分析結(jié)果。如果一個正確配置的DE或者DAE出現(xiàn)在GPU光線追跡中,在GPU光線追跡結(jié)束時,分析結(jié)果節(jié)點將會添加到FRED文檔對象樹。
膜層
下方的表格逐條列出了如何指定膜層類型以使用GPUs進行處理。在GPUs上的膜層不會有透射或者反射相位系數(shù),空間相關(guān)性或者偏振相關(guān)性。透射和反射功率系數(shù)將會作為S和P偏振的平均值進行計算。
1. 反射和透射會忽略相位條件。
2. 簡單表格搜尋(最近鄰值)不包含角度插值。透射和反射是S和P分量的平均值。
3. 近似為一種入射材料為空氣,基板材料為簡單玻璃的一般采樣膜層類型。對于所有激活的光源的每個激活的波長,膜層將會在方向余弦0到0.9999之間采樣8個角度。
4. 對于所有的偏振態(tài),將會100%傳播。
分布計算
當使用FRED的分布式計算功能時,可以使用遠程節(jié)點進行GPU光線追跡。
幾何體
表面
當在GPUs上描述一個表面時,既可以進行精確描述,也可以進行近似描述。對于一個精確描述的給定表面,需要滿足以下要求:
• 表面類型具有一個GPU實現(xiàn)
• 表面可追跡
• 沒有應(yīng)用表面修剪參數(shù)
• 沒有使用點乘表面修建參數(shù)
• 表面不是布爾實體單元
當上述條件不符合一個給定的表面,在GPUs上使用三角網(wǎng)格來近似的描述表面(此處可認為是CAD的*.OBJ或者*.STL格式)。
將一個表面網(wǎng)格化一般會降低表面描述精度(除了網(wǎng)格化平面表面的情況),且跟CPU追跡結(jié)果相比,在GPU追跡中會成為錯誤的來源。
當一個表面使用三角網(wǎng)格近似時,用于近似表面的三角塊是從兩種不同的來源并根據(jù)表面類型來進行采集的。
• 隱式表面是由一個函數(shù)形式,f(x,y,z)來進行定義的。例如,球體、圓錐和柱體都是隱式表面。
• 顯式表面是由參數(shù)化形式,f(u,v)來定義的。例如,直紋表面、拉伸表面和朗伯面都是顯式表面。
對于三角網(wǎng)格近似:
• 隱式表面使用內(nèi)部算法,最終用戶不能獲得其控制的參數(shù)。用戶無法訪問提高網(wǎng)格質(zhì)量的控鍵。
• 顯式表面使用FRED的3D查看器中的三角塊。使用FRED的可視化屬性對話框增加曲面細分會在GPUs上生成更高質(zhì)量的近似表面。
下面表格指出了哪些表面類型具有精確的GPU實現(xiàn),哪些使用三角網(wǎng)格近似。
1. 僅當前端和后端的半孔徑是理想(例如,柱脊沿Z軸為常數(shù))情況下,則可完全支持柱面類型。如果柱脊是傾斜的,則在GPUs上使用三角網(wǎng)格來近似描述表面。
2. 在上述表格中未指定的表面類型將會在GPUs上使用三角網(wǎng)格來進行近似。
表面屬性
在FRED模型中每個表面都有一系列屬性以描述幾何體性質(zhì)。這些屬性可以是物理屬性,F(xiàn)RED特定屬性需要用于光線追跡或者FRED的可視化屬性要用于渲染。
下方的表格指出了GPUs是否支持,部分支持或者忽略一個給定表面性質(zhì)。
一個受支持屬性并不意味著在GPU上的實現(xiàn)和在FRED中CPU光線追跡的本來的實現(xiàn)是意義的。請參考此文檔關(guān)于每個受支持或者部分受支持屬性相應(yīng)的部分以獲得更多的信息。
1. 如果對一個表面應(yīng)用了Advanced Dot-product Surface Trimming Specifications,則會使用三角網(wǎng)格將表面轉(zhuǎn)換為一個近似表面。
2. 如果一個表面應(yīng)用了Surface Trimming Specifications,則會使用三角網(wǎng)格將表面轉(zhuǎn)換為一個近似表面。
非表面幾何體節(jié)點
在光線追跡中,光線與表面相交。然而,在幾何體層級中非表面節(jié)點會用來增強表面描述屬性。例如,曲線在FRED中可以用于構(gòu)建表面或者定義表面自定義孔徑;蛘咭粋表面的位置可能取決于其上方一個自定義元件在樹中的位置。
下方表格逐條列出了GPUs支持的非表面幾何體節(jié)點。
1. 表面是一個元件組合結(jié)構(gòu)的一部分,其在GPUs上將會被自動轉(zhuǎn)化為一個近似三角網(wǎng)格描述。
關(guān)鍵詞
關(guān)鍵詞不支持并被忽略。模型構(gòu)建中關(guān)鍵詞的利用和模型管理。同樣地,為了進行光線追跡,對GPUs來說,關(guān)鍵詞沒有值。
材料
下方表格逐條列出了如何確定GPUs處理的材料類型。
1. 對于所有光源的所有激活波長,會計算實部和虛部折射率。
2. 所有未支持材料類型,會自動轉(zhuǎn)化未采樣材料。對于所有光源的所有激活波長,會計算正入射時實部和虛部折射率。
表格下方逐條列出了如何確定GPUs所處理的材料屬性。
數(shù)值精度
所有的GPU計算都是單精度。
光線類型
GPU支持的光線類型在下方表格逐條列出并提供了一個好的初始點以用于評估FREDMPC是否能夠用于一個給定的分析。
1. 偏振光
a. 如果支持光源配置,而且激活了偏振標志,光線仍然可以通過Trace GPU Rays調(diào)用生成,但是會忽略偏振信息(即光線會被認為是非偏振,不相干的光源)
b. 如果光源是在FRED生成的,然后需要用Trace CPU Rays調(diào)用GPU來追跡,那么在GPU上追跡的光線的偏振信息會被忽略,但是當光線回到FRED中時,偏振信息會回到CPU上。這些光線的偏振數(shù)據(jù)是無效的,不能使用這些光線數(shù)據(jù)來分析偏振
2. 相干光
a. 使用Trace GPU Rays光線追跡模式,在GPU上不會生成相干光
b. 使用Trace CPU Rays光線追跡模式,將光線從FRED光線緩沖區(qū)推送到GPU時,在GPU光線追跡之前,相干屬性將從光線中移除,然后在光線返回到FRED時在CPU上被替換。這些在GPU上追跡的光線,不能用來進行輻射度計算
光線屬性
每條光線都有一組屬性(例如位置,方向,功率,波長等),這些屬性由各種分析功能使用。下表列出了GPU支持的光線屬性
1. 光“強度”是一種僅適用于Trace Render光線追跡模式以生成渲染圖形的屬性。
2. 目前僅支持一組有限的狀態(tài)屬性代碼,支持的狀態(tài)代碼為ray is halted, reason ray is halted, ray intersected, ray interacted, ray reflected, ray transmitted, scatter ray, specular ray, unresolvable material error, TIR error
3. 請務(wù)必注意,盡管可以使用MPC Trace Advanced選項請求光線追跡路徑數(shù)據(jù),但在GPU光線追跡期間,不會更新路徑#的光線屬性。因此,在執(zhí)行GPU光線追跡之后,不支持基于路徑#的光線選擇過濾;诼窂降姆治鰞H限于Raytrace Path表和Stray Light Report表中顯示的信息
追跡路徑
當模型在適用的光線追跡屬性定義上使用蒙特卡洛父光線說明符時,可以在GPU上追跡光線獲得Raytrace Paths。當GPU上發(fā)生光線分裂時,將不會追跡Raytrace Paths。
必須在光線追跡之前將用戶提供的用于路徑追跡的最大總事件計數(shù)提供給GPU。此選項位于GUI中的MPC Trace Advanced對話框中。只有總事件計數(shù)小于或等于此用戶提供的值(默認值= 10個事件)的路徑才能在GPU光線追跡結(jié)束時在Raytrace Paths表或Stray Light Report中查看。
在GPU光線追跡結(jié)束時,在輸出窗口中報告超過最大總事件計數(shù)限制的光線追跡路徑的數(shù)量以及這些路徑中的總功率。
目前不支持在CPU上生成重繪光線跟蹤路徑(如果它們已由GPU生成)。
目前不支持使用光線執(zhí)行基于路徑的分析(例如,分析路徑#X的輻照度分布)。
光線追跡屬性
下表列出了GPU如何處理光線跟蹤屬性的特定屬性。
1. 父光線和光線分裂
a. 使用蒙特卡羅以外的父光線說明符時,必須注意正確配置GPU緩沖區(qū),以確保為光線生成保留適當數(shù)量的資源。特別是,通過設(shè)置GPU設(shè)備支持的最大總祖先級別(鏡面反射+散射),在MPC Trace Advanced對話框中指定用于光線分割的GPU內(nèi)存分配。
b. 當使用蒙特卡羅以外的父光線說明符和Trace CPU Rays模式時,只有父光線將返回到CPU光線緩沖區(qū)。這限制了在GPU光線追跡期間光線分割處于激活狀態(tài)時可用的光線數(shù)據(jù)跟蹤后分析。
散射
散射模型
下表列出了對GPU上散射模型的支持。 以下行為適用于GPU上的散射模型:
如果是不支持的散射模型,那么GPU會忽略它
Total Integrated Scatter(TIS)表在7個入射角處預(yù)先計算,作為散射模型表示的一部分,然后在GPU光線追跡期間進行插值。
1. 如果是不支持的散射模型,那么GPU會忽略它
每個散射模型定義都包含進一步描述散射行為的其他屬性。這些屬性在FRED GUI中顯示為散射模型對話框底部的“Additional Data”,或者作為用戶腳本散射模型定義的一部分。
重點采樣
具有散射模型的表面必須至少具有一個激活的重點采樣(或FRED的GUI中顯示的” ScatterDirections Regions of Interest “),以便由曲面生成散射光線。盡管重點采樣不會影響散射光線本身的輻射測量,但它會影響散射光線對給定方向的統(tǒng)計采樣,并最終影響分析平面上的光線統(tǒng)計。
下表列出了GPU重點采樣的類型:
1. “Full Hemisphere”是“Into a given direction”重點采樣類型的特定實例,其中關(guān)于散射位置處的局部表面法線將半角設(shè)置為90°。
2. 橢圓體重點采樣類型的GPU實現(xiàn)與CPU實現(xiàn)不同。在GPU實現(xiàn)中,重點采樣由矩形定義,該矩形圍繞從散射點看到的橢圓體的投影。采用這種方法是因為在GPU上實現(xiàn)比CPU上的嚴格橢圓更快。 在GPU和CPU實現(xiàn)中,輻射度測量是正確的。
每個重點采樣規(guī)范都有一組額外的屬性(在FRED GUI中顯示為“OtherData”),用于進一步優(yōu)化重點采樣的效率。 下表列出了對這些屬性的GPU支持
1. 當散射表面的光線追跡屬性將蒙特卡羅設(shè)置為父光線說明符時,方向類型標志將被強制使用GPU上的蒙特卡洛選項。在所有其他情況下,將使用請求的方向類型。 此選項在BSDF值最高的位置生成更多的散射光線。
2. 當散射表面的光線追跡屬性將蒙特卡羅設(shè)置為父光線說明符時,在GPU光線追跡期間,散射光線的數(shù)量將強制為1。在所有其他情況下,將使用所請求的散射光線數(shù)量(最多10條光線)
腳本
GPU上不支持腳本元件(例如材料,曲面,散射等)。 有關(guān)腳本元件如何在GPU上進行近似的更多信息,請參閱本文檔的相應(yīng)部分。
修改FRED文檔的腳本(包括更新前/后腳本)應(yīng)在將文檔發(fā)送到GPU之前執(zhí)行
以下腳本命令用于支持MPC光線追跡:
光源
有三種光線追跡操作模式用于使用GPU執(zhí)行光線追跡,本文檔的光線追跡模式部分對此進行了描述。僅當使用Trace GPU Rays模式時,本節(jié)中的信息才有意義。使用Trace CPU Rays模式時,光源功能僅受GPU上光線數(shù)據(jù)支持的屬性限制(有關(guān)詳細信息,請參閱“光線”部分)。
使用Trace GPU Rays模式時,光源定義將加載到GPU中,然后GPU用于生成和追跡光線。為了正確執(zhí)行,GPU實現(xiàn)需要支持源定義的屬性。如果不支持光源的屬性,則GPU不會生成或追跡光線。
下表列出了GPU的光源屬性支持:
1. GPU僅使用列表中激活的波長。 這也會影響GPU上采樣材料的表示,其折射率值在使用“As specified by list”波長選項的每個光源的有效波長下進行評估。
2. 有關(guān)GPU如何表示每種材料類型的詳細信息,請參閱本文檔的“材料”部分。
3. 無論光源中的實際設(shè)置如何,功率單位始終為瓦特。 例如,如果指定50流明的光源,則GPU將產(chǎn)生具有50瓦特總功率的光線。 光線將被正確追跡,但50流明光源的輻射測量是不正確的。
4. 如果支持位置/方向組合,仍將生成光線,但光線將不具有與偏振相關(guān)的任何屬性。
光譜
所有Spectra類型都不受支持而會被忽略。 波長規(guī)格為“Randomly according to spectrum”的光源將無法使用Trace GPU Rays光線追跡模式在GPU上生成光線。在這種情況下,需要在CPU上的FRED中生成光線,然后使用Trace CPU Rays模式在GPU上推送和追跡光線。但是,因為在將文檔加載到GPU中時預(yù)先計算折射率值,所以當折射元素包含在模型中時,這可能會給出不正確的結(jié)果。
表面粗糙度
GPU不支持表面粗糙度。如果將Surface Roughness屬性分配給FRED模型中的曲面,則在轉(zhuǎn)換為GPU時將忽略該屬性。
|