У меня есть YUV для RGB преобразования шейдеров.YUV to RGB шейдер границы артефакт
struct Pixel_INPUT
{
float4 pos : SV_POSITION;
float2 tex : TEXCOORD0;
};
Texture2D textureY : register(t0);
Texture2D textureU : register(t1);
Texture2D textureV : register(t2);
SamplerState samstate
{
MinFilter = Anisotropic;
MagFilter = Anisotropic;
AddressU = Clamp;
AddressV = Clamp;
};
float4 PS(Pixel_INPUT input) : SV_Target
{
float y = (1.1643f * textureY.Sample(samstate,input.tex) - 0.0625f);
float u = textureU.Sample(samstate,input.tex) - 0.5f;
float v = textureV.Sample(samstate,input.tex) - 0.5f;
float r = y + 1.5958f * v;
float g = y - 0.39173f * u - 0.81290f * v;
float b = y + 2.017f * u;
return float4(r,g,b,1);
}
Но у меня есть зеленая линия на правой стороне изображения, как, что:
я использую режим Clamp адреса и изображение является более желтым цветом, чем оригинал.
Не пиксельные центры 0,0 в D3D? – Robinson
в D3D10 равны 0,5, 0,5 https://msdn.microsoft.com/en-us/library/windows/desktop/cc308049%28v=vs.85%29.aspx – Alatriste
Есть ли у вас идеи? – Alatriste