C# 取样器不包裹纹理
我有一个着色器,里面有一个不起作用的采样器,我现在用一个临时修复覆盖了它。但是我最终发现了问题并修复了这个着色器 基本上,我的纹理和采样器是这样定义的(使用C# 取样器不包裹纹理,c#,directx,shader,hlsl,sharpdx,C#,Directx,Shader,Hlsl,Sharpdx,我有一个着色器,里面有一个不起作用的采样器,我现在用一个临时修复覆盖了它。但是我最终发现了问题并修复了这个着色器 基本上,我的纹理和采样器是这样定义的(使用Profile=fx\u 4\u 0;,还尝试了许多其他定义采样器的方法,例如:使用采样器状态的dx9方式等): 我还尝试了编写同一个采样器的其他变体,但它总是使用默认采样器来钳制纹理坐标 对于读取纹理: Output.Color=dirtTexture.Sample(WrapSampler,PSIn.TextureCoords) 我的临时修
Profile=fx\u 4\u 0;
,还尝试了许多其他定义采样器的方法,例如:使用采样器状态的dx9方式等):
我还尝试了编写同一个采样器的其他变体,但它总是使用默认采样器来钳制纹理坐标
对于读取纹理:
Output.Color=dirtTexture.Sample(WrapSampler,PSIn.TextureCoords)代码>
我的临时修复程序使纹理正确包裹(无论出于何种原因),如下所示:
\u effect.Parameters[“WrapSampler”].SetResource(GraphicsDevice.SamplerState.LinearRap)代码>
完整着色器(如果需要):您必须在着色器外部定义采样器状态,因此您的临时修复是正确的方法
看
Texture2D dirtTexture;
SamplerState WrapSampler {
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Wrap;
AddressV = Wrap;
};