Depth3D icon indicating copy to clipboard operation
Depth3D copied to clipboard

horizontal wrong images with 3840x1080 3D glasses (Xreal/Rokid/...)

Open raidboy opened this issue 10 months ago • 3 comments

Xreal, Rokid and likely other 3D glasses of that kind are simply HDMI displays with a resolution of 3840x1080. When connected to a windows PC via HDMI/Displayport, all they require is full-SBS 3D video.

I can not figure out how to configure this in the depth3d source files (assuming that is the way to go). I tried LB_Correction 1, which did not compile, i tried Auto_Letter_Box_Correction_D = 1, but that did not change any result.

Case 1: "Last Of Us". Can be set to screen resolution of 3840x1080 in games GUI config, but without reshade enabled, it will render a 1920x1080 picture into the center of the 3840x1080 screen. And with reshader/SuperDepth3D enabled, I do not get a 1920x1080 picture in 3D, but a centered 960x1080 picture, which is horizontally compressed (or vertically stretched, however you want to call it).

Case 2: "Dorfromantik". This game renders without reshade fine into the complete 3840x1080 screen, so when enabling reshader/SuperDepth3D, i get a full 1920x1080 picture, but it is clearly horizontally compressed (or vertically stretched).

I would love to understand how to correctly configure solutions for these cases without loosing resolution.

Thank you!

raidboy avatar Apr 10 '24 23:04 raidboy

I managed to work around the aspect ratio issue with the following configs:

A. Windows - By using screen mirroring:

  1. set the glasses to 3d (long press button in xreal and rokid) - this makes them default to 3840x1080 resolution which windows will use.
  2. In Windows display settings ensure your main screen is configured as the main screen so that that screen will become the original rendering surface for windows applications.
  3. Set the main screen to 1920x1080 or 3840x2160 depending on quality desired in Windows display settings
  4. Set up mirroring between the two screens - main and glasses in Windows display settings.
  5. Start the target game and set it to "fullscreen window" and the choosen resolution for the main screen (3840x2160 or 1980x1080). It should now render in correct aspect ratio on the main screen and a vertically compressed mirror should show up on the glasses. If the screen is set to fullscreen, (not fullscreen window), it will only render directly to the main display but no mirroring to the glasses will happen.

B. Windows - By using stretching in the glasses

  1. set the glasses to 3d (long press button in xreal and rokid) - this makes them default to 3840x1080 resolution which windows will use.
  2. Configure windows to extend desktop (not mirroring). You could also make the glasses the only display to extend the display to. Windows display the desktop at 3840x1080 horizontally stretched and left eye will see left part of desktop, right eye the right side.
  3. Configure the glasses in windows to be the main display. This is needed if you have othre displays so that the game you start will start up on the glasses.
  4. Start up the game. It should come up on the glasses.
  5. Select fullscreen resolution of 1920x1080 in the game. When the glasses are set to 3D, this resolution is not mirrored by the glasses to both eyes, but instead it is stretched by the glasses. But the games does not know this, so it will render in the aspect ratio 16:9 expected also by depth3d. Note that i have only been able to verify this display mode with Xreal Air. Not all AR glasses may have this option.

After either setups, you can configure depth3d as for VR glasses into the 16:9 rendering surface and select SBS 3D mode to get 3D view with the glasses.

Option B is better than option A because the game will be able to synchronize to the frame rate of the glasses. In option A it will synchronize to the main display and you may get tearing on the glasses.

C. MacOS - MacBook Pro with VMWare Fusion Player

VMware Fusion does not allow to us any resolutions other than what MacOS sees, so the display issues have to be resolved in MacOS. Hence they woull also work with any other ways how to install games together with depth3d VMware fusion just sounded like the most obvious solution - free and full windows.

  1. Install https://github.com/waydabber/BetterDisplay. After the 14 day trial period expires, you will need to buy the pro version for the custom resolutions option
  2. Create a customs 16:9 aspect ratio resolution. MBP all have 16:10 displays. Technically, if you have already a 16:9 screen you can skip this step and may not need the pro version
  3. Connect glasses, disable mirroring, make sure resolution is set to native 3840x1080.
  4. Select 60Hz 16:9 resolution on your main display. Configure Streaming of display to glasses. configure "Free Aspect ratio". This will zoom up the primary display onto the fill 3840x1080 glasses display.

Technically, this streaming seems like Mirroring option in windows except that i could not see tearing.


Comments:

Albeit working, i do not consider these ideal solutions: With the mirroring, i either waste GPU (low frame rate), or i get low quality: If i select 3840x2160 for my primary screen then i will get full resolution 3840x1080 on my glasses. But the poor GPU has to render every second line of the 3840x2160 in vain resuting in douple the amount of performance spent than needed and likely about 50% of the framerate i should need. If i select 1920x1080 on my primary screen, i will only get half the horizontal resolution my glasses, because the picture will be stretched horizontally to 3840x1080. In 3D Movies played back, (not rendered) i see a huge quality difference between this full side-by-side and half-side-by-side. Lot crisper with full-side-by-side.

So i am still interested though to find a better solution.

raidboy avatar Apr 13 '24 19:04 raidboy