我有一个着色器,里面有一个不起作用的采样器,我目前用时间修复覆盖。但我最终找到了问题并修复了这个着色器。
基本上我的纹理和采样器定义如下(使用Profile = fx_4_0;
,还尝试了许多其他方法来定义采样器,例如:使用sampler_state的dx9方式等):
Texture2D dirtTexture;
SamplerState WrapSampler {
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Wrap;
AddressV = Wrap;
};
我还尝试了编写相同采样器的其他变体,但总是使用夹住纹理坐标的默认采样器结束。
并且用于读取纹理:
Output.Color = dirtTexture.Sample(WrapSampler, PSIn.TextureCoords);
我的临时修复,使纹理包装正确(无论出于何种原因),如下所示:
_effect.Parameters["WrapSampler"].SetResource(GraphicsDevice.SamplerStates.LinearWrap);