Forum Discussion
Peeling
11 years agoHonored Guest
Catering for the Malformed
Ok, maybe 'malformed' is a strong word, but anyway:
As I just mentioned in another thread, my eyes are not at precisely the same height - ie, the pupils are not perfectly vertically aligned when my head 'feels' vertical.
When I put on the DK1, the headset naturally sat such that my pupils were pretty well lined up with the pixel rows. But this meant that when I held my head upright, the screen door effect was at a slight but distracting angle. I found myself unconsciously tilting my head to line up the columns of pixels with vertical walls; I would keep noticing this and straightening up, only to be irritated anew by the slight angle of the screen door.
Eventually I 'fixed' the problem by twisting the headset slightly on my face, so that it was perfectly horizontal when my head felt vertical. This fixed the misalignment of the screen door with in-game vertical, but A) it was a little uncomfortable, and B) I was a little concerned about long-term eye-strain, because my eyes needed to compensate for the fact that one or both of them was being shown an image that was both rendered from an incorrect position AND vertically offset.
My question is: would it be remotely feasible to include a few degrees of twist adjustment in the headset, so that one can have it sit comfortably AND line pixels up with gravitational vertical, and expose values in the SDK to make it possible to calibrate a) the vertical offset of each eye in the 3D world and b) the vertical offset of each half of the on-screen image in pixels?
In case you're struggling to visualise what I mean, I'll try and put together a diagram when I get home tonight.
As I just mentioned in another thread, my eyes are not at precisely the same height - ie, the pupils are not perfectly vertically aligned when my head 'feels' vertical.
When I put on the DK1, the headset naturally sat such that my pupils were pretty well lined up with the pixel rows. But this meant that when I held my head upright, the screen door effect was at a slight but distracting angle. I found myself unconsciously tilting my head to line up the columns of pixels with vertical walls; I would keep noticing this and straightening up, only to be irritated anew by the slight angle of the screen door.
Eventually I 'fixed' the problem by twisting the headset slightly on my face, so that it was perfectly horizontal when my head felt vertical. This fixed the misalignment of the screen door with in-game vertical, but A) it was a little uncomfortable, and B) I was a little concerned about long-term eye-strain, because my eyes needed to compensate for the fact that one or both of them was being shown an image that was both rendered from an incorrect position AND vertically offset.
My question is: would it be remotely feasible to include a few degrees of twist adjustment in the headset, so that one can have it sit comfortably AND line pixels up with gravitational vertical, and expose values in the SDK to make it possible to calibrate a) the vertical offset of each eye in the 3D world and b) the vertical offset of each half of the on-screen image in pixels?
In case you're struggling to visualise what I mean, I'll try and put together a diagram when I get home tonight.
2 Replies
- raidho36ExplorerI thought that Rift lens were collimation lens, and therefore exact eye position against the lens doesn't do anything (minus blur and FOV).
- PeelingHonored Guest
"raidho36" wrote:
I thought that Rift lens were collimation lens, and therefore exact eye position against the lens doesn't do anything (minus blur and FOV).
It's nothing to do with the lenses.
Hopefully this will illustrate the issue better:
Imagine we both live in a white world, and the only thing I have to look at is a black dot on a black horizon.
Your eyes are at exactly the same height, so when you stand upright and look at the dot, this is what you see in each eye:
Now, with my uneven eyes, when I stand upright and look at the dot, this is what I see:
In other words, I see exactly the same as you do: a black horizon bisecting each eye's field of view and a dot. My eyes are also staring straight ahead. With me so far?
Ok, now suppose we put on our VR goggles which simulate our world exactly, albeit at a lower resolution. For you, standing perfectly upright, the VR display shows this:
If we superimpose your eyes' field of view:
The horizon lines up with the pixel rows of the display, and your 'straight ahead' stare has you looking at the black dot.
If we imagine a screen-door effect over the pixels (sorry, but I can't be bothered drawing that), your screen door feels vertical. You're upright, the horizon is horizontal, and the screen door is level; all is well.
But what do I see? If I stand perfectly upright and put on the VR goggles, the most comfortable fit (both for my head and in terms of putting the black dot in the centre of my 'straight ahead' stare) puts the goggles at an angle, which means they display this:
I still perceive the horizon to be horizontal, because the headset is compensating for the tilt. But it looks subtly wrong because the horizon doesn't line up with the pixel rows on the display. If we again imagine the screen door effect, the screen door I'M looking through feels wonky. Although the headset is comfortable, there's a distinct and persistent sense that it isn't on straight.
NB: I'm using low-res and jaggies to get the point across here, but that wasn't really the problem. Even with anti-aliasing turned up to the max, with almost no visible jaggies, the screen door effect itself created the dissonance.
So after a few hours I get fed up and twist the display on my head, to force 'game horizontal' to match pixel rows. Now I see this:
Now I'm standing up straight, and the horizon lies along a pixel row. The screen door I'm looking through 'feels' straight on my head, as opposed to wonky. But there are two new problems: first, the headset isn't as comfortable because it's twisted, and second, both eyes are NOT staring straight ahead to see the black dot. One is having to look up slightly.
Ideally, the headset would have few degrees of 'twist' adjustment between (the display and lens assembly) and (the eyecup part), so that I can wear it comfortably but still straighten the screen so it matches what I perceive as vertical. That gets me as far as the previous image, but in comfort. To correct for the vertical offset, I'd also like a value exposed in the SDK to adjust the vertical offset, in pixels, of the image presented to each eye, giving me this:
This now makes my VR experience as close to identical to yours as possible. I may have lost a little field of view, but there's plenty of vertical FOV so that's not too much of a problem. As I said, I ended up playing with the DK1 twisted, and I much preferred the slight degradation of FOV to the constant niggling sense that my headset wasn't on straight.
There is one final detail. The vertical offset value in the SDK should also adjust the 3D viewpoint from which the eye's image is rendered. That doesn't factor into this example because we're talking about a distant black dot on a distant black horizon, but it does matter when I'm looking at something close-up.
If I've explained everything right, you should now be able to ask "Hang on, but if your eyes are at different heights, doesn't that mean one of them has to look up a bit in real life, when you look at things close-up?" The answer is of course yes. But I've had a lifetime of getting used to that. Look at something far away, eyes both point the same way. Look at something close-up, one eye looks up a little. When I put on the DK1 and twist it to correct the horizontal/vertical alignment, that rule changes. Now one eye has to look up a little all the time, no matter how close or far away the object is. I don't know if that'll have any impact in terms of eye-strain, but since it's really just a simple numerical offset in the SDK it's probably worth implementing just in case. The bigger deal, for me, is making it comfortable to wear the Rift AND adjust it so the horizontal/vertical pixel axes feel 'right'.
I hope that helps :)
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device