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