구문
typedef enum D3D12_FILTER
{
D3D12_FILTER_MIN_MAG_MIP_POINT = 0,
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 1,
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 5,
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 16,
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17,
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 20,
D3D12_FILTER_MIN_MAG_MIP_LINEAR = 21,
D3D12_FILTER_ANISOTROPIC = 85,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 128,
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132,
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144,
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145,
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148,
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 149,
D3D12_FILTER_COMPARISON_ANISOTROPIC = 213,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 256,
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 257,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 260,
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 261,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 272,
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 273,
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 276,
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 277,
D3D12_FILTER_MINIMUM_ANISOTROPIC = 341,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 384,
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 385,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 388,
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 389,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 400,
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 401,
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 404,
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 405,
D3D12_FILTER_MAXIMUM_ANISOTROPIC = 469
} D3D12_FILTER
상수
| 상수 | 설명 |
|---|---|
| D3D12_FILTER_MIN_MAG_MIP_POINT | 축소, 확대 및 밉 수준 샘플링에 포인트 샘플링을 사용합니다. |
| D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR | 축소와 확대에는 포인트 샘플링을 사용하고, 밉 수준 샘플링에는 선형 보간을 사용합니다. |
| D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT | 축소에는 포인트 샘플링을 사용하고, 확대에는 선형 보간을 사용하며, 밉 수준 샘플링에는 포인트 샘플링을 사용합니다. |
| D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR | 축소에는 포인트 샘플링을 사용하고, 확대 및 밉 수준 샘플링에는 선형 보간을 사용합니다. |
| D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT | 축소에는 선형 보간을 사용하고, 확대 및 밉 수준 샘플링에는 포인트 샘플링을 사용합니다. |
| D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR | 축소에는 선형 보간을 사용하고, 확대에는 포인트 샘플링을 사용하며, 밉 수준 샘플링에는 선형 보간을 사용합니다. |
| D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT | 축소 및 확대에는 선형 보간을 사용하고, 밉 수준 샘플링에는 포인트 샘플링을 사용합니다. |
| D3D12_FILTER_MIN_MAG_MIP_LINEAR | 축소, 확대 및 밉 수준 샘플링에 선형 보간을 사용합니다. |
| D3D12_FILTER_ANISOTROPIC | 축소, 확대 및 밉 수준 샘플링에 이방성 보간을 사용합니다. |
| D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT | 축소, 확대 및 밉 수준 샘플링에 포인트 샘플링을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR | 축소와 확대에는 포인트 샘플링을 사용하고, 밉 수준 샘플링에는 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT | 축소에는 포인트 샘플링을 사용하고, 확대에는 선형 보간을 사용하며, 밉 수준 샘플링에는 포인트 샘플링을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR | 축소에는 포인트 샘플링을 사용하고, 확대 및 밉 수준 샘플링에는 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT | 축소에는 선형 보간을 사용하고, 확대 및 밉 수준 샘플링에는 포인트 샘플링을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR | 축소에는 선형 보간을 사용하고, 확대에는 포인트 샘플링을 사용하며, 밉 수준 샘플링에는 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT | 축소 및 확대에는 선형 보간을 사용하고, 밉 수준 샘플링에는 포인트 샘플링을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR | 축소, 확대 및 밉 수준 샘플링에 선형 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_COMPARISON_ANISOTROPIC | 축소, 확대 및 밉 수준 샘플링에 이방성 보간을 사용합니다. 결과를 비교 값과 비교합니다. |
| D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT | D3D12_FILTER_MIN_MAG_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR | D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT | D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR | D3D12_FILTER_MIN_MAG_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MINIMUM_ANISOTROPIC | D3D12_FILTER_ANISOTROPIC과 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최솟값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최솟값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT | D3D12_FILTER_MIN_MAG_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR | D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT | D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR | D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT | D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR | D3D12_FILTER_MIN_MAG_MIP_LINEAR와 동일한 텍셀 집합을 가져오지만 필터링하는 대신 텍셀의 최댓값을 반환합니다. 필터링 중 가중치가 0인 텍셀은 최댓값에 포함되지 않습니다. 이 필터 형식의 지원 여부는 D3D11_FEATURE_DATA_D3D11_OPTIONS1 구조체의 MinMaxFiltering 멤버에서 쿼리할 수 있습니다. |
| D3D12_FILTER_MAXIMUM_ANISOTROPIC | 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 ) ) )
| 텍스처 샘플링 함수 | 비교 필터링을 사용하는 텍스처 샘플링 함수 |
|---|---|
| Sample | SampleCmp 또는 SampleCmpLevelZero |
요구 사항
헤더: d3d12_xs.h 또는 d3d12_x.h라이브러리: d3d12_xs.lib 또는 d3d12_x.lib
지원 플랫폼: XBOX Series 콘솔 및 XBOX One 제품군
