TraceRay 函式
將光線傳送至搜尋加速結構中的點擊。
Syntax
此內建函式定義相當於下列函式範本:
Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
uint RayFlags,
uint InstanceInclusionMask,
uint RayContributionToHitGroupIndex,
uint MultiplierForGeometryContributionToHitGroupIndex,
uint MissShaderIndex,
RayDesc Ray,
inout payload_t Payload);
參數
AccelerationStructure
要使用的最上層加速結構。 指定 Null 加速結構會強制遺漏。
RayFlags
有效 ray_flag 值的組合。 只有定義的光線旗標會由系統傳播,也就是 RayFlags 著色器內建可以看到。
InstanceInclusionMask
不帶正負號的整數,其底部 8 個位是用來根據每個實例中的 InstanceMask 來包含或拒絕 geometry 實例。 例如:
if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }
RayContributionToHitGroupIndex
不帶正負號的整數,指定要加入著色器資料表中用於點擊群組索引的定址計算。 只會使用此值的底部 4 位。
MultiplierForGeometryContributionToHitGroupIndex
不帶正負號的整數,指定要乘以 GeometryContributionToHitGroupIndex的步幅,這是應用程式提供給其下層加速結構的 0 索引。 只會使用這個乘數值的底部 16 位。
MissShaderIndex
不帶正負號的整數,指定著色器資料表中遺漏著色器的索引。
Ray
RayDesc,代表要追蹤的光線。
Payload
使用者定義光線承載會透過在光線追蹤期間叫用的著色器,同時存取輸入和輸出。 TraceRay完成之後,呼叫端也可以存取承載。
傳回值
void
備註
您可以從下列光線追蹤著色器類型呼叫此函式:
另請參閱