RAY_FLAG列舉
傳遞至 TraceRay 函式的旗標,以覆寫透明度、擷取和早期行為。
Syntax
enum RAY_FLAG : uint
{
RAY_FLAG_NONE = 0x00,
RAY_FLAG_FORCE_OPAQUE = 0x01,
RAY_FLAG_FORCE_NON_OPAQUE = 0x02,
RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x04,
RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x08,
RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10,
RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20,
RAY_FLAG_CULL_OPAQUE = 0x40,
RAY_FLAG_CULL_NON_OPAQUE = 0x80,
RAY_FLAG_SKIP_TRIANGLES = 0x100,
RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200,
};
常數
-
RAY_FLAG_NONE
-
未選取任何選項。
-
RAY_FLAG_FORCE_OPAQUE
-
在光線追蹤中遇到的所有光線基本交集都會被視為不透明。 因此,不論點擊幾何是否指定D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE,以及叫用實例上的實例旗標為何,都不會執行任何點擊著色器。
此旗標與RAY_FLAG_FORCE_NON_OPAQUE、RAY_FLAG_CULL_OPAQUE和RAY_FLAG_CULL_NON_OPAQUE互斥。
-
RAY_FLAG_FORCE_NON_OPAQUE
-
在光線追蹤中遇到的所有光線基本交集都會被視為非不透明。 因此,如果存在,則會執行任何點擊著色器,不論點擊幾何是否指定D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE,以及叫用實例上的實例旗標為何。 此旗標與 RAY_FLAG_FORCE_\OPAQUE 互斥,RAY_FLAG_CULL_OPAQUE和RAY_FLAG_CULL_NON_OPAQUE。
-
RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH
-
在 raytrace 中遇到的第一個光線基本交集會自動在任何點擊著色器之後呼叫 AcceptHitAndEndSearch ,包括如果沒有任何點擊著色器。
唯一的例外狀況是上述任何點擊著色器呼叫 IgnoreHit,在此情況下,光線會繼續不受影響,讓下一次點擊成為第一次點擊的另一個候選項目。 若要套用此例外狀況,必須實際執行任何點擊著色器。 因此,如果因為點擊不透明而略過任何點擊著色器 (,例如因為RAY_FLAG_FORCE_OPAQUE或D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE或D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE設定) ,則會呼叫 AcceptHitAndEndSearch 。
如果第一次點擊時出現最接近的點擊著色器,除非RAY_FLAG_SKIP_CLOSEST_HIT_SHADER也存在,否則會叫用它。 找到的叫用視為「最接近」,即使可能較接近光線的其他潛在點擊可能尚未流覽。
此旗標的一般用途是陰影,其中只需要找到單一點擊。
-
RAY_FLAG_SKIP_CLOSEST_HIT_SHADER
-
即使已認可至少一次點擊,且最接近點擊的點擊群組包含最接近的點擊著色器,也請略過該著色器的執行。
-
RAY_FLAG_CULL_BACK_FACING_TRIANGLES
-
啟用反向三角形的擷取。 請參閱 D3D12_RAYTRACING_INSTANCE_FLAGS ,以選取哪個三角形正向每個實例。
在指定D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE的實例上,此旗標沒有任何作用。
在D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES以外的幾何類型上,此旗標沒有任何作用。
此旗標與RAY_FLAG_CULL_FRONT_FACING_TRIANGLES互斥。
-
RAY_FLAG_CULL_FRONT_FACING_TRIANGLES
-
啟用正面三角形的擷取。 請參閱 D3D12_RAYTRACING_INSTANCE_FLAGS ,以選取哪個三角形正向每個實例。
在指定D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE的實例上,此旗標沒有任何作用。
在D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES以外的幾何類型上,此旗標沒有任何作用。
此旗標與RAY_FLAG_CULL_BACK_FACING_TRIANGLES互斥。
-
RAY_FLAG_CULL_OPAQUE
-
根據其幾何和實例旗標,將視為不透明的所有基本類型。
此旗標與RAY_FLAG_FORCE_OPAQUE、RAY_FLAG_FORCE_NON_OPAQUE和RAY_FLAG_CULL_NON_OPAQUE互斥。
-
RAY_FLAG_CULL_NON_OPAQUE
-
根據其幾何和實例旗標,將視為非不透明的所有基本類型進行 Cull。
此旗標與RAY_FLAG_FORCE_OPAQUE、RAY_FLAG_FORCE_NON_OPAQUE和RAY_FLAG_CULL_OPAQUE互斥。
規格需求
另請參閱