Improved Image Quality For HMDs Like Oculus Rift
An anonymous reader writes "The combination of smartphone panels with relatively cheap and light-weight lenses enabled affordable wide-angle Head Mounted Displays like the Oculus Rift. However, these optics introduce distortions when viewing the image through the HMD. So far these have been compensated for in software by using post-processing pixel shaders that warp the image. However, by doing so a loss in image quality (sharpness) can be perceived. Now researchers from Intel found a way around this error by using different sampling for rendering, therefore potentially increasing the image quality of all current and future HMDs with a wide field of view."
Rather than applying barrel distortion to the final raster image, the researchers warp the scene geometry during rasterization. However, it currently requires ray tracing so it's a bit computationally expensive. Note that a vertex transformation can be used (with tessellation used to enhance the approximation), but the results are of variable quality.
How does that sell more Intel CPUs?
Oculus Rift is one of the greatest products ever, and Ima let you finish, but this is even better for multi-monitor gaming.
At least Oculus Rift had identified and addressed the problem of distortion, even though their solution loses image quality. Multi-monitor gaming has been garbage for a decade because everyone seems content with horrific distortion at large FOVs.
I know, it's all a matter of screen placement and eye positioning. That's dumb. I want a wrap-around image. I want to aim a projector at each of three walls and have the result make sense.
If you've tried Fisheye Quake, you know it's hell on your system, and still doesn't look great. If this technique is at all performance, everyone needs to start shipping with support, and they need to start yesterday.
How about you use better lenses so you don't have distortions in the first place?
Stop trying to fudge shit in software. It doesn't work with projectors with shitty lenses, telescopes with shitty lenses, or camera phones with shitty lenses.
If you want a good image use good optics. Yes, that means added cost and weight. Deal with it.
Hi,
Can't one just subdivide (tesselate) polygons that appear relatively large in screen space so that they consist of many small polygons, with a few pixels each? This would allow for doing the barrel distortion entirely in the vertex shader with no ray tracing being required. The challenge is to perform the dynamic tesselation without requiring a constant updating of the geometry (vertex buffers) on the GPU.
Maybe newer APIs like DirectX10 or 11 would support this dynamic tesselation approach in hardware.
--- Eat my sig.
That's the last line of TFS. Tessellating the mesh so that triangles are approximately the size of a pixel is nearly as costly as raytracing, though.
From TFA (emphasis added):
My first thought was "Why not use better quality lenses?" Sure, they'd be more expensive, but there is an expense involved in the software having to correct Every Single Frame. Why not fix it once, at the source, and obviate the need for continuous real-time updates?
But my next thought was more positive. I wear glasses (near-sighted and have astigmatism, too). It would be *so* nice if there were a way to correct for that in software so I could wear VR goggles without my glasses. I'd imagine a learning session where certain scenes (e.g. grids) are displayed and the system would apply software corrections under my control until it looked good to me. That could be saved as a profile and then be loaded whenever I used their VR display.
The next step, of course, would be to find a way to leverage this "training" into my next eye exam!
I've already posted, but I would have given you my last mod point. If nothing else, perhaps this reply will bring your post to the attention to someone who can mod it up (and mod me out of sight).
systemd is Roko's Basilisk.
So they've taken something with variable quality and improved it by implementing a solution that itself has variable quality with the downside that it's horrendously expensive to render.
Brilliant.
My first thought was "Why not use better quality lenses?" Sure, they'd be more expensive, but there is an expense involved in the software having to correct Every Single Frame.
The idea behind the Rift is to produce a HMD that does NOT cost 1'300$ to build.
It does this by using cheap of-the-shelf parts.
Whereas things like the "eMagin Z800 3D Visor" use special purpose display units (OLEDs) and needs very spetial complex optics so that the virtual display seems square (at 60%, it was one of the widest field of view at its time), Occulus went:
- Fuck this expensive shit, lets use the same Retina-level display as any other smartphone on the market, and throw a rather simple len at it. Okay, maybe having a complete field of view with a simple len will cause distortions, but that's nothing that wouldn't be possible to compensate. And gamers already have an expensive powerful graphic card. Running a shader on it to correct the rendered frame would be very cheap and barely introduce any noticeable slow down.
The Occulus doesn't use an expensive optic *on purpose* so its price has a zero less than anything else.
TFA's method is slow because they analyse what distortion should be done to the actual game world's geometry so that it renders pre-distorted. (So that the distortion is pixel pefrect, each pixel in the output is a rendered pixel. Whereas the current "fast" method simply distords a rendered frame, thus post-distortion rendered pixel don't map display pixels). And they do it with raytracing, because that's the easiest to test, even if it is the slowest.
As the summary sais, in-game that could be done with tesselation and geometry shader.
(And has been done in part in the past: Fish-eye Quake does similar kind of distortions, too)
So, in the end, a small contribution by shaders still beats expensive complex optics, just for now they'll model it with a raytracer because it's easier to study.
I wear glasses (near-sighted and have astigmatism, too). It would be *so* nice if there were a way to correct for that in software so I could wear VR goggles without my glasses.
The bad news is that your problem can't be fixed in software. You're near-sighted + astigma, meaning that your eye fails to focus on the picture (and can't focus on a single point at all, actually). Software fixes are for distortion, meaning that the eye is capable of focusing on a pixel, but it gets the wrong pixel in that position.
The type of eye-sight problem that *could* be fixed in software is eye-mobility problems, where on of the eye isn't able to focus in the correct directions and thus gets "shifted" view, giving a doubled picture. This kind of problems are fixed with "prismatic" type of lens, this kind of problem could be fixed by shifting the image on the Rift in opposite direction.
The good news is:
Well read again the first paragraph: Rift use plain simple cheap lens. Just swap the lens with another set of cheap lens which are adapted to your near-sightness and voilà, glass-free 3D.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
The bendable displays can only be bent in one direction at a time. Think of it as the shape of the screen being half a cylinder, when what you'd need to do what you describe is half a sphere.
...Or worse, with bifocals?
When something like this becomes available, it'd be awesome even if it was only used for watching a movie on an airplane, but I worry it would be worthless for people who have an eyeglasses prescription.