перечисление D3D12_FILTER (d3d12.h)
Задает параметры фильтрации во время выборки текстуры.
Синтаксис
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 Используйте выборку точек для минификации, увеличения и выборки на уровне MIP. |
D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR Значение: 0x1 Использовать выборку точек для минификации и увеличения; использовать линейную интерполяцию для выборки на уровне MIP. |
D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT Значение: 0x4 Использовать выборку точек для минификации; использовать линейную интерполяцию для увеличения; использовать выборку точек для выборки уровня MIP. |
D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR Значение: 0x5 Использовать выборку точек для минификации; используйте линейную интерполяцию для увеличения и выборки на уровне MIP. |
D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT Значение: 0x10 Используйте линейную интерполяцию для минификации; использовать точечная выборка для увеличения и выборки на уровне MIP. |
D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR Значение: 0x11 Используйте линейную интерполяцию для минификации; использовать выборку точек для увеличения; использовать линейную интерполяцию для выборки на уровне MIP. |
D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT Значение: 0x14 Используйте линейную интерполяцию для минификации и увеличения; использовать выборку точек для выборки уровня MIP. |
D3D12_FILTER_MIN_MAG_MIP_LINEAR Значение: 0x15 Используйте линейную интерполяцию для минификации, увеличения и выборки на уровне MIP. |
D3D12_FILTER_ANISOTROPIC Значение: 0x55 Используйте анизотропную интерполяцию для минификации, увеличения и выборки на уровне MIP. |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT Значение: 0x80 Используйте выборку точек для минификации, увеличения и выборки на уровне MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR Значение: 0x81 Использовать выборку точек для минификации и увеличения; использовать линейную интерполяцию для выборки на уровне MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT Значение: 0x84 Использовать выборку точек для минификации; использовать линейную интерполяцию для увеличения; использовать выборку точек для выборки уровня MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR Значение: 0x85 Использовать выборку точек для минификации; используйте линейную интерполяцию для увеличения и выборки на уровне MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT Значение: 0x90 Используйте линейную интерполяцию для минификации; использовать точечная выборка для увеличения и выборки на уровне MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR Значение: 0x91 Используйте линейную интерполяцию для минификации; использовать выборку точек для увеличения; использовать линейную интерполяцию для выборки на уровне MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT Значение: 0x94 Используйте линейную интерполяцию для минификации и увеличения; использовать выборку точек для выборки уровня MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR Значение: 0x95 Используйте линейную интерполяцию для минификации, увеличения и выборки на уровне MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_COMPARISON_ANISOTROPIC Значение: 0xd5 Используйте анизотропную интерполяцию для минификации, увеличения и выборки на уровне MIP. Сравните результат со значением сравнения. |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT Значение: 0x100 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_MIP_POINT , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR Значение: 0x101 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT Значение: 0x104 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR Значение: 0x105 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT Значение: 0x110 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR Значение: 0x111 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT Значение: 0x114 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR Значение: 0x115 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_MIP_LINEAR , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MINIMUM_ANISOTROPIC Значение: 0x155 Извлеките тот же набор текселей, что и D3D12_FILTER_ANISOTROPIC , и вместо их фильтрации возвращается минимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в минимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT Значение: 0x180 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_MIP_POINT , и вместо фильтрации возвращает максимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR Значение: 0x181 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR , и вместо их фильтрации возвращается максимальное число текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT Значение: 0x184 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT , и вместо фильтрации возвращает максимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR Значение: 0x185 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR и вместо фильтрации возвращает максимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT Значение: 0x190 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT и вместо фильтрации возвращает максимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR Значение: 0x191 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR , и вместо фильтрации возвращает максимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT Значение: 0x194 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT , и вместо их фильтрации возвращается максимальное число текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR Значение: 0x195 Извлеките тот же набор текселей, что и D3D12_FILTER_MIN_MAG_MIP_LINEAR , и вместо их фильтрации возвращается максимальное количество текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
D3D12_FILTER_MAXIMUM_ANISOTROPIC Значение: 0x1d5 Извлеките тот же набор текселей, что и D3D12_FILTER_ANISOTROPIC и вместо фильтрации возвращает максимум текселей. Тексели, взвешанные 0 во время фильтрации, не учитываются в максимальном значении. Вы можете запросить поддержку этого типа фильтра из элемента MinMaxFiltering в структуре D3D11_FEATURE_DATA_D3D11_OPTIONS1 . |
Комментарии
Это перечисление используется структурой D3D12_SAMPLER_DESC .
Функции выборки текстур microsoft High Level Shader Language (HLSL) также поддерживают фильтрацию сравнения во время выборки текстур. Фильтрация сравнения сравнивает каждую выборку текселя со значением сравнения. Логический результат смешивается так же, как и обычная фильтрация текстур.
Вы можете использовать встроенные функции выборки текстур 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_TYPELESSDXGI_FORMAT_R16_UNORM.
Требования
Верхняя часть | d3d12.h |