다음을 통해 공유


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

이 플래그는 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 지정하는지 여부와 적중된 instance instance 플래그에 관계없이 실행됩니다. 이 플래그는 RAY_FLAG_FORCE_\OPAQUE, RAY_FLAG_CULL_OPAQUE 및 RAY_FLAG_CULL_NON_OPAQUE 함께 사용할 수 없습니다.
D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH
값: 0x4
광선 추적에서 발생한 첫 번째 광선 기본 교집합은 적중 셰이더가 없는 경우를 포함하여 적중 셰이더 직후 에 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
후면 삼각형을 컬링할 수 있습니다. instance 따라 다시 마주보고 있는 삼각형을 선택하려면 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
전면 삼각형을 컬링할 수 있습니다. instance 따라 다시 마주보고 있는 삼각형을 선택하려면 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
기하 도형 및 instance 플래그에 따라 불투명으로 간주되는 모든 기본 형식을 컬링합니다.

이 플래그는 RAY_FLAG_FORCE_OPAQUE, RAY_FLAG_FORCE_NON_OPAQUE 및 RAY_FLAG_CULL_NON_OPAQUE 함께 사용할 수 없습니다.
D3D12_RAY_FLAG_CULL_NON_OPAQUE
값: 0x80
기하 도형 및 instance 플래그에 따라 불투명하지 않은 것으로 간주되는 모든 기본 형식을 컬링합니다.

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

요구 사항

   
머리글 d3d12.h