SBS not squished
What I want to accomplish: Horizontal SBS 2160x1200, that is 1080x1200 per eye, that is each eye is rendered at 1080x1200. Using 3dmigoto and running a game (witcher3 in this case) at 2160x1200 gives me SBS where each eye is rendered at 2160x1200 and is then squished to 1080x1200. I have 2 workarounds at the moment: workaround 1) Run the game at 1080x1200 and in d3dx.ini under [Device] set width=2160 height=1200 This works, but horizontal fidelity is lost due to the image being squished and then stretched (I think). Especially noticeable with text for thin letters like "i". workaround 2) Run the game at 2160x2400 (no resolution is forced in [Device]) in 3dvision2sbs.hlsl starting at line 55 I change it to this: } else if (mode == 2 || mode == 3) { // Side by side x = int(x); y = int(y); x *= 2; y *= 2; y -= height / 2; x1 = 1; if (mode == 3) { // Swap eyes The result being SBS rendered at 1080x1200 per eye (2160x1200 total) centered in a 2160x2400 window. This works and there is no fidelity loss, but there is a heavy performance impact. Is there a better way I can achieve this? This is for running the game on my Oculus. I first used workaround1 and got my focus perfect, then having trouble reading in game text I made workaround2. The game looks astounding, just hoping for a less GPU intensive way to make this work. I can run the game at 4k ultra quality, but workaround2 really puts my GPU through its paces.
What I want to accomplish:
Horizontal SBS 2160x1200, that is 1080x1200 per eye, that is each eye is rendered at 1080x1200.

Using 3dmigoto and running a game (witcher3 in this case) at 2160x1200 gives me SBS where each eye is rendered at 2160x1200 and is then squished to 1080x1200.

I have 2 workarounds at the moment:

workaround 1)
Run the game at 1080x1200 and in d3dx.ini under [Device] set
width=2160
height=1200
This works, but horizontal fidelity is lost due to the image being squished and then stretched (I think). Especially noticeable with text for thin letters like "i".

workaround 2)
Run the game at 2160x2400 (no resolution is forced in [Device])
in 3dvision2sbs.hlsl starting at line 55 I change it to this:

} else if (mode == 2 || mode == 3) { // Side by side
x = int(x);
y = int(y);
x *= 2;
y *= 2;
y -= height / 2;
x1 = 1;
if (mode == 3) { // Swap eyes

The result being SBS rendered at 1080x1200 per eye (2160x1200 total) centered in a 2160x2400 window.
This works and there is no fidelity loss, but there is a heavy performance impact.

Is there a better way I can achieve this?
This is for running the game on my Oculus. I first used workaround1 and got my focus perfect, then having trouble reading in game text I made workaround2. The game looks astounding, just hoping for a less GPU intensive way to make this work. I can run the game at 4k ultra quality, but workaround2 really puts my GPU through its paces.

#1
Posted 09/22/2018 04:23 PM   
Ideally you should be able to run the game at 1080x1200 exactly. Full resolution 1080p60 is rendered as ordinary 1080p as seen by the game. The 3D Vision duplicates the render calls and normally turn it into 1080p120 for 60hz per eye. This would mean rendering the exact pixels you want and nothing more. Getting it to fully work and producing an SBS full width image to put to the device is probably the trickiest thing to do.
Ideally you should be able to run the game at 1080x1200 exactly.

Full resolution 1080p60 is rendered as ordinary 1080p as seen by the game.
The 3D Vision duplicates the render calls and normally turn it into 1080p120 for 60hz per eye.

This would mean rendering the exact pixels you want and nothing more. Getting it to fully work and producing an SBS full width image to put to the device is probably the trickiest thing to do.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#2
Posted 09/22/2018 11:26 PM   
Yes that would be ideal. Feels like something I should be able to do with 3Dmigoto, but the best I got so far is the second workaround I mentioned in my original post. I'm hoping someone can point me in the right direction.
Yes that would be ideal.
Feels like something I should be able to do with 3Dmigoto, but the best I got so far is the second workaround I mentioned in my original post. I'm hoping someone can point me in the right direction.

#3
Posted 09/23/2018 01:38 PM   
Any luck with this? I'm still accepting PMs if you want to explore this further.
Any luck with this? I'm still accepting PMs if you want to explore this further.

Thanks to everybody using my assembler it warms my heart.
To have a critical piece of code that everyone can enjoy!
What more can you ask for?

donations: ulfjalmbrant@hotmail.com

#4
Posted 09/26/2018 03:06 AM   
Scroll To Top