D3D12_FILTER 열거형(d3d12.h)
텍스처 샘플링 중 필터링 옵션을 지정합니다.
Syntax
typedef enum D3D12_FILTER {
D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1,
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4,
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5,
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT,
D3D12_FILTER_ANISOTROPIC = 0x55,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT,
D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT,
D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT,
D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
} ;
상수
D3D12_FILTER_MIN_MAG_MIP_POINT 값: 0 소수점 샘플링을 사용하여 축소, 배율 및 밉 수준 샘플링을 수행할 수 있습니다. |
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR 값: 0x1 소수점 샘플링을 사용하여 축소 및 확대; 밉 수준 샘플링에 선형 보간을 사용합니다. |
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT 값: 0x4 축소를 위해 점 샘플링을 사용합니다. 배율을 위해 선형 보간을 사용합니다. 밉 수준 샘플링에 포인트 샘플링을 사용합니다. |
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR 값: 0x5 축소를 위해 점 샘플링을 사용합니다. 배율 및 밉 수준 샘플링에 선형 보간을 사용합니다. |
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT 값: 0x10 축소를 위해 선형 보간을 사용합니다. 배율 및 밉 수준 샘플링에 포인트 샘플링을 사용합니다. |
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR 값: 0x11 축소를 위해 선형 보간을 사용합니다. 확대를 위해 점 샘플링 사용; 밉 수준 샘플링에 선형 보간을 사용합니다. |
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT 값: 0x14 축소 및 확대를 위해 선형 보간을 사용합니다. 밉 수준 샘플링에 포인트 샘플링을 사용합니다. |
D3D12_FILTER_MIN_MAG_MIP_LINEAR 값: 0x15 축소, 배율 및 밉 수준 샘플링에 선형 보간을 사용합니다. |
D3D12_FILTER_ANISOTROPIC 값: 0x55 축소, 배율 및 밉 수준 샘플링에 이방성 보간을 사용합니다. |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT 값: 0x80 소수점 샘플링을 사용하여 축소, 배율 및 밉 수준 샘플링을 수행할 수 있습니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR 값: 0x81 소수점 샘플링을 사용하여 축소 및 확대; 밉 수준 샘플링에 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT 값: 0x84 축소를 위해 점 샘플링을 사용합니다. 배율을 위해 선형 보간을 사용합니다. 밉 수준 샘플링에 포인트 샘플링을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR 값: 0x85 축소를 위해 점 샘플링을 사용합니다. 배율 및 밉 수준 샘플링에 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT 값: 0x90 축소를 위해 선형 보간을 사용합니다. 배율 및 밉 수준 샘플링에 포인트 샘플링을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR 값: 0x91 축소를 위해 선형 보간을 사용합니다. 확대를 위해 점 샘플링 사용; 밉 수준 샘플링에 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT 값: 0x94 축소 및 확대를 위해 선형 보간을 사용합니다. 밉 수준 샘플링에 포인트 샘플링을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR 값: 0x95 축소, 배율 및 밉 수준 샘플링에 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_COMPARISON_ANISOTROPIC 값: 0xd5 축소, 배율 및 밉 수준 샘플링에 이방성 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT 값: 0x100 D3D12_FILTER_MIN_MAG_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 최소 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR 값: 0x101 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 텍셀의 최소값을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT 값: 0x104 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 텍셀의 최소값을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR 값: 0x105 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 텍셀의 최소값을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT 값: 0x110 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 텍셀의 최소값을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR 값: 0x111 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 텍셀의 최소값을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT 값: 0x114 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 텍셀의 최소값을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR 값: 0x115 D3D12_FILTER_MIN_MAG_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 최소 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MINIMUM_ANISOTROPIC 값: 0x155 D3D12_FILTER_ANISOTROPIC 동일한 텍셀 집합을 가져오고 필터링하는 대신 텍셀의 최소값을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최소값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT 값: 0x180 D3D12_FILTER_MIN_MAG_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR 값: 0x181 D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT 값: 0x184 D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR 값: 0x185 D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT 값: 0x190 D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR 값: 0x191 D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT 값: 0x194 D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR 값: 0x195 D3D12_FILTER_MIN_MAG_MIP_LINEAR 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
D3D12_FILTER_MAXIMUM_ANISOTROPIC 값: 0x1d5 D3D12_FILTER_ANISOTROPIC 동일한 텍셀 집합을 가져오고 필터링하는 대신 최대 텍셀을 반환합니다. 필터링 중에 가중치가 0인 텍셀은 최대값으로 계산되지 않습니다. D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조의 MinMaxFiltering 멤버에서 이 필터 형식에 대한 지원을 쿼리할 수 있습니다. |
설명
이 열거형은 D3D12_SAMPLER_DESC 구조체에서 사용됩니다.
참고 min과 mag 필터에 대해 서로 다른 필터 형식을 사용하는 경우, 배율 또는 축소 중에서 선택할 수 없는 경우에 정의되지 않은 동작이 발생합니다. 이 정의되지 않은 동작을 방지하려면 min 및 mag 둘 다에 유사한 필터 작업을 사용하는 필터 모드를 사용하거나 이방성 필터링을 사용하여 문제를 방지합니다.
Microsoft HLSL(High Level Shader Language) 텍스처 샘플링 함수는 텍스처 샘플링 중에 비교 필터링도 지원합니다. 비교 필터링은 샘플링된 각 텍셀을 비교 값과 비교합니다. 부울 결과는 일반 텍스처 필터링이 혼합되는 것과 동일한 방식으로 혼합됩니다.
텍스처 필터링만 구현하는 HLSL 내장 텍스처 샘플링 함수 또는 비교 필터링과 함께 텍스처 필터링을 사용하는 도우미 함수를 사용할 수 있습니다.
또한 다음 정의에 유의하세요.
#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 )
#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 )
#define D3D12_FILTER_TYPE_MASK ( 0x3 )
#define D3D12_MIN_FILTER_SHIFT ( 4 )
#define D3D12_MAG_FILTER_SHIFT ( 2 )
#define D3D12_MIP_FILTER_SHIFT ( 0 )
#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 )
#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \
( ( D3D12_FILTER ) ( \
( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \
( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \
( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \
( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) )
#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \
( ( D3D12_FILTER ) ( \
D3D12_ANISOTROPIC_FILTERING_BIT | \
D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \
D3D12_FILTER_TYPE_LINEAR, \
D3D12_FILTER_TYPE_LINEAR, \
reduction ) ) )
#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \
( ( D3D12_FILTER_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \
( ( D3D12_FILTER_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \
( ( D3D12_FILTER_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) )
#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \
( ( D3D12_FILTER_REDUCTION_TYPE ) \
( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) )
#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \
( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON )
#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \
( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \
( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \
( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) && \
( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) )
텍스처 샘플링 함수 | 비교 필터링을 사용하여 텍스처 샘플링 함수 |
---|---|
샘플 | SampleCmp 또는 SampleCmpLevelZero |
비교 필터는 DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_R16_UNORM 형식의 텍스처에서만 작동합니다.
요구 사항
머리글 | d3d12.h |