是否可以在金属中使用双三次采样器?
Is it possible to use a bicubic sampler in metal?
在计算着色器中,我可以看到双三次是一个选项,但前提是定义了 __HAVE_BICUBIC_FILTERING__
。当我将 bicubic 设置为过滤选项时,出现语法错误。 Linear 或 Nearest 编译正常。我正在 MacOS.
上构建 metal 2
另一种方法是使用采样器描述符在 CPU 上定义采样器,但那里也没有双三次选项。
this thread 中的评论讨论了他们无法设置 bicubic。
我搜索了 metal shading language specification,那里根本没有提到双三次。任何帮助将不胜感激。
这取决于设备类型、操作系统(版本和类型)以及处理器架构。
下面的代码可以在以下配置上轻松编译:iOS 15, iPhone 12 / 13, Xcode 13.
#if defined(__HAVE_BICUBIC_FILTERING__)
constexpr sampler textureSampler (mag_filter::bicubic, min_filter::bicubic);
const half4 colorSample = colorTexture.sample (textureSampler, in.textureCoordinate);
return float4(colorSample);
#endif
在计算着色器中,我可以看到双三次是一个选项,但前提是定义了 __HAVE_BICUBIC_FILTERING__
。当我将 bicubic 设置为过滤选项时,出现语法错误。 Linear 或 Nearest 编译正常。我正在 MacOS.
另一种方法是使用采样器描述符在 CPU 上定义采样器,但那里也没有双三次选项。
this thread 中的评论讨论了他们无法设置 bicubic。
我搜索了 metal shading language specification,那里根本没有提到双三次。任何帮助将不胜感激。
这取决于设备类型、操作系统(版本和类型)以及处理器架构。 下面的代码可以在以下配置上轻松编译:iOS 15, iPhone 12 / 13, Xcode 13.
#if defined(__HAVE_BICUBIC_FILTERING__)
constexpr sampler textureSampler (mag_filter::bicubic, min_filter::bicubic);
const half4 colorSample = colorTexture.sample (textureSampler, in.textureCoordinate);
return float4(colorSample);
#endif