Share via


D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS 열거형(d3d12.h)

광선 추적 가속 구조의 빌드에 대한 플래그를 지정합니다. 가속 구조 빌드 작업에 대한 입력을 제공하는 D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS 구조와 함께 이 열거형의 값을 사용합니다.

Syntax

typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20
} ;

상수

 
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE
값: 0
가속 구조 빌드에 대해 지정된 옵션이 없습니다.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE
값: 0x1
앱이 구조를 완전히 다시 빌드하는 대신( 플래그 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE 통해) 향후 업데이트를 지원하도록 가속 구조를 빌드합니다. 이 옵션을 사용하면 메모리 사용량 증가, 빌드 시간 및 레이트레이싱 성능이 저하됩니다. 그러나 향후 업데이트는 동등한 가속 구조를 처음부터 빌드하는 것보다 더 빨라야 합니다.

이 플래그는 초기 가속 구조 빌드 또는 원본 가속 구조가 지정된 업데이트에서만 설정할 수 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE. 즉, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE 없이 가속 구조를 빌드한 후에는 업데이트를 통해 가속 구조를 만들 수 없습니다.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION
값: 0x2
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT 지정된 컴팩트 모드 를 사용하여 CopyRaytracingAccelerationStructure 를 호출하여 가속 구조를 압축하는 옵션을 사용하도록 설정합니다.

이 옵션을 사용하면 메모리 사용량 및 빌드 시간이 증가할 수 있습니다. 그러나 이후 압축 후 결과 가속 구조는 가속 구조를 처음부터 빌드하는 것보다 더 작은 메모리 공간을 사용해야 합니다.

이 플래그는 다른 모든 플래그와 호환됩니다. 가속 구조 업데이트의 일부로 지정된 경우 이 플래그를 사용하여 원본 가속 구조도 빌드되어야 합니다. 즉, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION 없이 가속 구조를 빌드한 후에는 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION지정하는 업데이트를 통해 가속 구조를 만들 수 없습니다.



ALLOW_COMPACTION 지정하면 ALLOW_COMPACTION 지정하지 않고 압축 전 가속 구조 크기가 증가할 수 있습니다.



마지막으로 압축하기 전에 여러 증분 빌드를 수행하는 경우 중복 압축 관련 작업이 수행될 수 있습니다.


압축 가속 구조에 필요한 크기는 EmitRaytracingAccelerationStructurePostbuildInfo를 통해 압축하기 전에 쿼리할 수 있습니다. 압축 가속 구조 크기의 속성에 대한 자세한 내용은 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC 참조하세요.

참고D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE 지정하면 가속 구조에 보존해야 하는 특정 정보가 있으며 압축은 그다지 도움이 됩니다. 그러나 파이프라인이 가속 구조가 더 이상 업데이트되지 않는다는 것을 알고 있는 경우 구조를 더 간결하게 만들 수 있습니다. 일부 앱은 초기 빌드 후 한 번, 가속 구조가 정적 상태로 정착된 후 다시 두 번 압축하는 이점을 누릴 수 있습니다.

 
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE
값: 0x4
추가 빌드 시간을 희생하여 레이트레이싱 성능을 최대화하는 고품질 가속 구조를 생성합니다. 일반적으로 구현은 추적 성능을 높이기 위해 기본 설정보다 빌드 시간의 2~3배가 소요됩니다.

이 플래그는 특히 정적 기하 도형에 권장됩니다. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD 제외한 다른 모든 플래그와 호환됩니다.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD
값: 0x8
낮은 품질 가속 구조를 생성하여 빌드 속도를 위해 레이트레이싱 성능을 거래합니다. 일반적으로 구현에는 기본 설정보다 빌드 시간이 1/2~1/3 소요되며 추적 성능이 희생됩니다.

이 플래그는 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD 제외한 다른 모든 플래그와 호환됩니다.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY
값: 0x10
가속 구조 빌드 중에 사용되는 스크래치 메모리의 양과 결과 크기를 최소화합니다. 이 옵션을 사용하면 빌드 시간 및/또는 광선 추적 시간이 증가할 수 있습니다. 이는 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION 플래그와 이를 가능하게 하는 명시적 가속 구조 압축에 대한 직교입니다. 플래그를 결합하면 초기 가속 구조와 압축 결과로 메모리가 적게 사용됨을 의미할 수 있습니다.

빌드에 이 플래그를 사용하는 경우의 영향은 빌드에 대한 메모리 요구 사항을 검색하기 위해 빌드를 수행하기 전에 GetRaytracingAccelerationStructurePrebuildInfo 를 호출한 결과에 반영됩니다.

이 플래그는 다른 모든 플래그와 호환됩니다.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE
값: 0x20
처음부터 빌드하는 것이 아니라 가속 구조 업데이트를 수행합니다. 이는 전체 빌드보다 빠르지만, 특히 업데이트 전에 기본 개체의 위치가 가속 구조의 원래 빌드에서 크게 변경된 경우 광선 추적 성능에 부정적인 영향을 미칠 수 있습니다.

원본 및 대상 가속 구조의 주소가 동일한 경우 업데이트가 현재 위치에서 수행됩니다. 원본 및 대상의 다른 겹치는 주소 범위가 잘못되었습니다. 겹치지 않는 원본 및 대상의 경우 원본 가속 구조는 수정되지 않습니다. 출력 가속 구조에 대한 메모리 요구 사항은 입력 가속 구조와 동일합니다.

소스 가속 구조는 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE 사용하여 빌드되어야 합니다.

이 플래그는 다른 모든 플래그와 호환됩니다. D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATED3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE 제외한 다른 플래그 선택은 소스 가속 구조의 플래그와 일치해야 합니다.

D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE 원본 가속 구조를 만들고 업데이트 빌드에 대한 플래그가 계속해서 D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE 지정하는 한 가속 구조 업데이트를 무제한 연속으로 수행할 수 있습니다.

요구 사항

요구 사항
헤더 d3d12.h