在CUDA C编程指南第5版附录E.2(线性过滤)中,声明:
在此过滤模式下,仅适用于浮点数 纹理,纹理提取返回的值是......
大胆的部分令我困惑。 floating point
仅表示texel类型,还是返回类型?例如,我声明了3个纹理如下。
texture<float,cudaTextureType2D> tex32f;
texture<unsigned char, cudaTextureType2D, cudaReadModeNormalizedFloat> tex8u;
texture<unsigned short, cudaTextureType2D, cudaReadModeNormalizedFloat> tex16u;
线性过滤仅适用于tex32f
,还适用于tex8u
和tex16u
吗?
答案 0 :(得分:5)
这意味着只有当纹理的“读取模式”为cudaReadModeNormalizedFloat
时,线性过滤才可用,即整数类型(如u8)被提升为[0.0,1.0]范围内的浮点值(对于无符号整数)或[-1.0,1.0](对于有符号整数)。