Converting 3D interlaced to SBS/TB, getting ghosting

  • Posts: 3
3 weeks 2 days ago - 3 weeks 2 days ago #1 by kakashisensei
I've been trying to play some games like Overwatch in 3D with my VR headset. Before it used to work with reshade superdepth3D or tridef, but now they dont allow those code injection. Currently nvidia 3D vision still works with Overwatch. Unfortunately, cannot convert the native 3d vision format (line interlaced) to something usable like SBS or TB because I can't use dlls that are needed for the conversion.

I found out I could get reshade to hook to Moonlight, an application that streams high bandwidth video output from host to client. I know its detrimental to be doing this in a competitive fps, but whatever. Using the SBStoInterlaced4k shader by b7even, I modified it to do the opposite, convert Interlace to SBS or TB.

I got it to work but am getting ghosting from the opposite eye image after conversion. The original frame has perfect interlacing, so I am not sure where the ghosting is coming from when those pixel rows shouldn't have visual data of the opposite eye image. I think it has to do with the Y texcoords.

Here is the code and example images showing native 3d format and the conversion with ghosting. Any help is greatly appreciated! Btw, HLSL stuff is all new to me and I am a novice at this.

Original 3d format

Warning: Spoiler! [ Click to expand ]

Please Log in or Create an account to join the conversation.

  • Posts: 816
3 weeks 1 day ago #2 by BlueSkyKnight
You can use 3DtoElse shader to see if this issue still happens. But, I think it has to do with the output not being native.

Please Log in or Create an account to join the conversation.

  • Posts: 3
3 weeks 1 day ago - 3 weeks 23 hours ago #3 by kakashisensei
Thank you! Didn't know that you made a shader just for conversion of 3d formats.

After trying it out, I am getting the same result with your shader. There is the ghosting when converting line interlaced to sbs/tb. On the stream frames, I can clearly see interlacing separation so I don't think that the stream compression is blurring the interlacing. Interestingly, when I use both mine and your shader directly on 3dvision interlace to convert to sbs/tb, it still has interlacing after conversion. I tried with several dx11 games and was careful to make sure its native resolution in game/ desktop, turned off any other dlls like 3dmigoto so that its only native 3dvision interlaced. But when using the shaders on the moonlight stream, the conversion works great except with the ghosting. In my case I had to use 0.5/monitorheight y pixel offset.

On another note, I looked into using anaglyph conversion with your shader. I changed my 3dvision output to anaglyph, and set it in registry to turn off the color filters. modifying your anaglyph GS input shader, I made it so that the blue x component is shifted to match the red/green component for left image, and red/green x component is shifted to match the blue component for right image. And I set RGB components for both images. Below is a screenshot of the result of that after conversion to top/bottom. The color looks great in the middle, but certain elements (UI, weapon) and the the further moving to the sides still show dramatic shift. I can probably better resolve the sides with a transfer function, and the UI/weapon I could take a look at your depth3d shader to figure out how to process those separately. But looking at it through VR, it didn't look as 3D compared to regular interlace to T/B, even at the same high 1500% separation setting.

Probably its best that I go back to trying to resolve the interlace ghosting. I think it has to do with the vertex shader. I dont know if I can increase the precision of the triangles for that.


Please Log in or Create an account to join the conversation.

  • Posts: 816
3 weeks 7 hours ago - 3 weeks 7 hours ago #4 by BlueSkyKnight
Converting the format from the game in ReShade will not work since the conversion done after.

All of your images have Ghosting. This seems to be coming from the game. Even the Native image you posted.

All your images have improper depth settings. Even the Native image you posted.

Do not use ReShade Directly on this game. It's Anti Cheat may trigger.

If you want 3D Your best bet is actually TriDef.

Please Log in or Create an account to join the conversation.

  • Posts: 3
2 weeks 5 days ago #5 by kakashisensei
Upon closer inspection, the ghosting issue is coming from nvidia encoding frame buffer used in conjunction with 3d vision interlace format. It creates the ghosting on the opposite eye frame. The native image screenshot isn't true native and took through the stream app, so it has the ghosting.

Even when using steam streaming + nvidia encoding, the problem persists. Steam has two software streaming encoders, one using dx buffer capture and one is desktop capture. The dx buffer capture doesn't even show 3d vision. Haven't tried desktop capture yet but that would probably work.

Tridef does work, but eventually overwatch crashes a few minutes in. 3d vision is the only working 3d for overwatch since it cant be detected by overwatch.

Anaglyph 3d vision plus your shader produces the best 3d in VR so far. Looking into the code, not sure if its even possible to reconstruct the original colors from anaglyph.

Please Log in or Create an account to join the conversation.