Share via


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 지정하는지 여부와 적중된 instance instance 플래그에 관계없이 적중 셰이더가 실행되지 않습니다.

이 플래그는 RAY_FLAG_FORCE_NON_OPAQUE, RAY_FLAG_CULL_OPAQUE 및 RAY_FLAG_CULL_NON_OPAQUE 함께 사용할 수 없습니다.

RAY_FLAG_FORCE_NON_OPAQUE

광선 추적에서 발생하는 모든 광선 기본 교집합은 불투명하지 않은 것으로 처리됩니다. 따라서 적중 셰이더가 있는 경우 적중 기하 도형이 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE 지정하는지 여부와 적중된 instance instance 플래그에 관계없이 실행됩니다. 이 플래그는 RAY_FLAG_FORCE_\OPAQUE, RAY_FLAG_CULL_OPAQUE 및 RAY_FLAG_CULL_NON_OPAQUE 함께 사용할 수 없습니다.

RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH

광선 추적에서 첫 번째 광선 기본 교집합이 발생하면 적중 셰이더가 없는 경우를 포함하여 적중 셰이더 바로 다음에 AcceptHitAndEndSearch 가 호출됩니다.

유일한 예외는 앞의 적중 셰이더가 IgnoreHit를 호출하는 경우이며, 이 경우 광선은 영향을 받지 않고 계속되므로 다음 적중이 첫 번째 적중이 될 다른 후보가 됩니다. 이 예외를 적용하려면 적중 셰이더를 실제로 실행해야 합니다. 따라서 적중이 불투명으로 처리되기 때문에 적중 셰이더를 건너뛰는 경우(예: RAY_FLAG_FORCE_OPAQUE 또는 D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE 또는 D3D12_RAYTRACING_INSTANCE_FLAG_OPAQUE 설정됨) AcceptHitAndEndSearch 가 호출됩니다.

첫 번째 적중 시 가장 가까운 적중 셰이더가 있는 경우 RAY_FLAG_SKIP_CLOSEST_HIT_SHADER 없는 한 호출됩니다. 발견된 적중 1개는 광선에 더 가까울 수 있는 다른 잠재적 적중이 방문되지 않았을지라도 "가장 가까운" 것으로 간주됩니다.

이 플래그의 일반적인 용도는 단일 적중만 찾을 필요가 있는 그림자용입니다.

RAY_FLAG_SKIP_CLOSEST_HIT_SHADER

하나 이상의 적중이 커밋되고 가장 가까운 적중에 대한 적중 그룹에 가장 가까운 적중 셰이더가 포함되어 있더라도 해당 셰이더의 실행을 건너뜁니다.

RAY_FLAG_CULL_BACK_FACING_TRIANGLES

후면 삼각형을 컬링할 수 있습니다. instance 따라 뒤로 향할 삼각형을 선택하려면 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

전면 삼각형을 컬링할 수 있습니다. instance 따라 뒤로 향할 삼각형을 선택하려면 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

기하 도형 및 instance 플래그에 따라 불투명으로 간주되는 모든 기본 형식을 컬링합니다.

이 플래그는 RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE 및 RAY_FLAG_CULL_NON_OPAQUE 함께 사용할 수 없습니다.

RAY_FLAG_CULL_NON_OPAQUE

기하 도형 및 instance 플래그에 따라 불투명하지 않은 것으로 간주되는 모든 기본 형식을 컬링합니다.

이 플래그는 RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE 및 RAY_FLAG_CULL_OPAQUE 함께 사용할 수 없습니다.

요구 사항

참고 항목

Direct3D 12 광선 추적 HLSL 참조