Xna Mipfilter在effect文件中的使用

Xna Mipfilter在effect文件中的使用,xna,directx,shader,monogame,Xna,Directx,Shader,Monogame,我见过很多人使用MipFilter有效文件。然而,MinFilter和MagFilter分别用于纹理缩小和放大,使得MipFilter的用法不清楚 所以我想知道MipFilter的设置在什么条件下生效 在Monogame.fx效果文件中剪切代码,如下所示: texture InputTexture; sampler inputSampler = sampler_state { Texture = <InputTexture>; MipFilter = Point;

我见过很多人使用
MipFilter
有效文件。然而,
MinFilter
MagFilter
分别用于纹理缩小和放大,使得
MipFilter
的用法不清楚

所以我想知道
MipFilter
的设置在什么条件下生效

在Monogame
.fx
效果文件中剪切代码,如下所示:

texture InputTexture;
sampler inputSampler = sampler_state
{
    Texture = <InputTexture>;
    MipFilter = Point;  //What does this line mean?
    MinFilter = Point;
    MagFilter = Point;
    AddressU = Clamp;
    AddressV = Clamp;
};
纹理输入;
采样器输入采样器=采样器状态
{
纹理=;
MipFilter=Point;//这条线是什么意思?
MinFilter=点;
磁过滤器=点;
地址U=夹具;
地址V=钳位;
};

MipFilter是关于在mipmap级别之间插值,而Min/MagFilter是关于在采样mipmap级别时在像素之间插值

它可以有两个值:

  • 对最近的mipmap级别进行采样(双线性过滤)
  • 线性两个最近的mip级别之间的线性插值(三线性过滤,质量更好)

您可以找到更多信息

MipFilter是关于在mipmap级别之间插值的,而Min/MagFilter是关于在采样mipmap级别时在像素之间插值的

它可以有两个值:

  • 对最近的mipmap级别进行采样(双线性过滤)
  • 线性两个最近的mip级别之间的线性插值(三线性过滤,质量更好)

您可以找到更多信息

您的意思是它将在mipmap级别(如256x256和128x128)之间进行计算吗?是的,在进行过滤时,GPU需要根据像素到相机的距离、纹理大小和屏幕分辨率来选择mipmap级别。假设有一个GPU“公式”给出了mipmap级别,这个公式返回的是浮点值而不是整数,因此它可以返回例如mipmaplevel=1.6,在这种情况下,在点模式下,只对(最接近的)mip2进行采样,在线性模式下,对mip1和mip2进行采样,最终结果为0.4*mip1+0.6*mip2,这给了一个更好的结果(但当然成本更高)哦,我明白了!感谢您的详细回复。您的意思是它将在mipmap级别(如256x256和128x128)之间进行计算吗?是的,在进行过滤时,GPU需要根据像素到相机的距离、纹理大小和屏幕分辨率选择mipmap级别。假设有一个GPU“公式”给出了mipmap级别,这个公式返回的是浮点值而不是整数,因此它可以返回例如mipmaplevel=1.6,在这种情况下,在点模式下,只对(最接近的)mip2进行采样,在线性模式下,对mip1和mip2进行采样,最终结果为0.4*mip1+0.6*mip2,这给了一个更好的结果(但当然成本更高)哦,我明白了!谢谢你的详细回复。