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