3
我使用的是金属在iOS与下面的片段着色器:金属:线性纹理过滤工作不正常
constexpr sampler s(coord::normalized,
address::clamp_to_zero,
filter::linear);
fragment half4 passThroughFragment(VertexInOut inFrag [[stage_in]],
texture2d<float> tex [[ texture(0) ]])
{
return half4(tex.sample(s, inFrag.uv));
}
我的质地是一个4x4的图像。尽管过滤设置为线性,我获得下面的图片,与近邻过滤:
看来,我的紫外线的都很好,因为当我修改片段着色器如下:
return half4(0, inFrag.uv.x, inFrag.uv.y, 1);
我得到预期的图像:
除了指定filter::linear
之外,是否还有其他工作需要线性过滤工作?
如果您还没有意识到,可以查看Apple的[金属像素格式功能](https://developer.apple.com/metal/capabilities/)表。您需要在所用格式的行中查找“过滤器”或“全部”,然后在功能集的列(按操作系统和版本分组)中查找。 –