【发布时间】:2014-01-22 22:38:02
【问题描述】:
我有一个着色器,里面有一个不起作用的采样器,我目前用临时修复覆盖了它。但我最终找到了问题并修复了这个着色器。
基本上我的纹理和采样器是这样定义的(使用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);
如果需要完整的着色器:http://pastebin.com/tLJi1Uwd
【问题讨论】:
标签: c# directx shader hlsl sharpdx