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 함께 사용할 수 없습니다.
요구 사항
참고 항목