NDI plugin quality trouble

I see that the captured texture in NDI Plugin for UE 5.4 is of worse quality than same frame seems in NDI Studio Monitor. Moreover, the Bandwidth parameter in connection info is specified highest. What can be done to ensure that the results in both cases are the same?

2 Likes

Really nobody use it?
O’kay, I did some changes in plugin shader and some tune by material, result is much better:

2 Likes

Can you tell me how did you change this issue?

I changed only shader “NDIIO/Shaders/Private/NDIIOShaders.usf”.

For example function void NDIIOUYVYtoBGRAPS (// Shader from 8 bits UYVY to 8 bits RGBA (alpha set to 1)):

WAS:

float4 UYVYB = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerB, InUV);
float4 UYVYT = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, InUV);
float PosX = 2.0f * InUV.x * NDIIOShaderUB.InputWidth;
float4 YUVA;
float FracX = PosX % 2.0f;
YUVA.x = (1 - FracX) * UYVYT.y + FracX * UYVYT.w;
YUVA.yz = UYVYB.zx;
YUVA.w = 1;

I DID:

float4 UYVYB = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerB, InUV);
float4 UYVYT0 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, InUV + float2(-0.25f / NDIIOShaderUB.InputWidth, 0));
float4 UYVYT1 = NDIIOShaderUB.InputTarget.Sample(NDIIOShaderUB.SamplerT, InUV + float2(0.25f / NDIIOShaderUB.InputWidth, 0));
float PosX = 2.0f * InUV.x * NDIIOShaderUB.InputWidth;
float4 YUVA;
float FracX = (PosX % 2.0f) * 0.5f;
YUVA.x = (1 - FracX) * UYVYT1.y + FracX * UYVYT0.w;
YUVA.yz = UYVYB.zx;
YUVA.w = 1;

Small changes but result is seems much more better.

Of course, I added a bit of sharpness to the material after I changed the shader, but even without that, the result looks better than in the original version.

1 Like

Thank you very much, your change is good!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.