Citra: Additional display options for Stereoscopic 3D

Created on 22 Sep 2018  路  8Comments  路  Source: citra-emu/citra

Some of this is discussed in the original pull request #3632, but I thought it'd be better to open a new issue and list the settings I think are missing.

Option to switch left and right images

This will make it possible to see 3D using the cross-eyed method. Currently, the image intended for the left eye is shown on the left side of the screen, and the right eye one on the right. The cross-eyed method requires them to be reversed.

Option to disable squashing/stretching

The current output is currently squashed to half its width, which is how 3D monitors and TVs often expect to get a side-by-side 3D image. However, again, this is bad for the cross-eyed method and even the parallel method, as both methods depend on having two natural-looking images side by side.

Different 3D output options

The following methods (see also: http://www.stereo3d.com/formats.htm and Wikipedia links below) are used by various different 3D display technologies:

  1. Side by side (only method currently implemented in Citra)
  2. Top and bottom - for many passive 3D displays, this would result in no data loss, while side by side has 50% of the pixels discarded by the monitor.
  3. Line interlacing - odd lines are left image & even lines are right image, or vice versa. Used by many passive 3D displays.
  4. Column interlacing - I'm not sure if this is actually used by any technology on the market (other than the 3DS itself!), but if you implement line interlacing I would think that column interlacing would be trivial to add. Better safe than sorry!
  5. Anaglyph 3D - red/cyan, and perhaps tweakable/selectable colors? This would definitely be the lowest priority IMO, I don't think it would be fun to play.
  6. Alternate frame sequencing - every monitor refresh switches to the other eye. This is used by active shutter 3D glasses, such as Nvidia 3D. Of course, switching back and forth between the two images must be v-synced and independent of the game's framerate.

I ordered them in the order of what I think would be easiest to implement to hardest. As it always is, the frame stacking method (hardest) is probably the most important / would have the most users.

A-frontend enhancement

Most helpful comment

I'd like to add my voice to this feature request.

  • Anaglyph 3D (red/cyan channels) would allow everyone to experience 3D without any additional hardware, just cheap or free stereoscopic glasses. It's made just by superimposing the 2 already generated images, one without the red channel, and the other without blue and green channels.

  • Removing the stretch from images would allow us to appreciate the full experience, just by crossing the eyes.

  • Allowing to switch left and right images would allow Android users to experience 3D with a cardboard.

All 8 comments

Also, whatever this guy is asking (I couldn't decipher it): #4115

I added Anaglyph 3D to the list, and linked to some relevant Wikipedia pages.

Anaglyph 3D is very fun to play. [especially by controlling display color temperature with f.lux or redshift]
And very cheap. Glasses are ingeniously made just of paper and plastic. Everyone can access them. Sometimes they are built-in for free in rare paper magazine or paper book.

Even on existing much slower citra builds there was a Stereoscopic Slider with anaglyph support, which enhanced native 3ds graphic quality like 1000 times. And I know there is even artistsdesigners who like to watch anaglyph effect with there own bare pair of eyes with no glasses at all.

Dolphin emulator has the best anaglyph support nowadays. In pcsx2 there is an old and very beautiful graphical plugin for anaglyph support too [its abandoned now and requires updates for new fixes coming from main development plugin]

Also if Citra will ever be working in DirectX 9, 10 or 11 backend - stereoscopy could be enabled by Tridef or iz3D. Both software giving different results in performance & visuals and working like a charm in ppsspp and in new native windows games. [I also remember some long way to make them work for DeSmuME, pj64 or mupen64]

And finally it might be working with compiz anaglyph support even right now [full 3D stereoscopy? Or flat image photovideo stereoscopy?]. [I will install & configure linux only after great amount of time]

I'd like to add my voice to this feature request.

  • Anaglyph 3D (red/cyan channels) would allow everyone to experience 3D without any additional hardware, just cheap or free stereoscopic glasses. It's made just by superimposing the 2 already generated images, one without the red channel, and the other without blue and green channels.

  • Removing the stretch from images would allow us to appreciate the full experience, just by crossing the eyes.

  • Allowing to switch left and right images would allow Android users to experience 3D with a cardboard.

Keep the convo on topic and within our rules or I'll lock this.

Today I have made a Citra SBS to 3D Vision conversion. Instructions and download link here: https://helixmod.blogspot.com/2019/08/citra-nintendo-3ds-emulator-sbs-to-3d.html
Direct link to the file (but people should really read the instructions): https://masterotaku.s3.amazonaws.com/Citra/Citra_3D_Vision_fix.7z

In short, it resizes the image to the original aspect ratio (which moves the right half outside of the screen) and then for the right eye it places the correct image where it should be. Because of that resizing, I recommend using 4x DSR to avoid pixelation. And I made an extra feature: being able to change the depth of the game screens.

From the modes list in the OP, number 6 is now covered, in a workaround way. Only for Nvidia GPUs using drivers that still contain 3D Vision.

Thanks to the OpenGL wrapper I used (source: http://3dsurroundgaming.com/OGL3DVision.html), I didn't need a DX11 renderer in the end. Older versions of the wrapper caused crashes a year ago, and that's when I was frustrated. I just needed to wait for the right time.

_bump_

Need to un-squish side-by-side stereoscopy.

_bump_

Need to un-squish side-by-side stereoscopy.

yeah... the squashed screens make it difficult to read text.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

RicardoMVA picture RicardoMVA  路  3Comments

animekai picture animekai  路  3Comments

kdex picture kdex  路  4Comments

KillzXGaming picture KillzXGaming  路  3Comments

Allanouille picture Allanouille  路  3Comments