Extensions for stereoscopic rendering

I’d like to share a few thoughts about the use of sterescopic rendering and the evolution of graphics in the next years.

With the advent of the Directx 11 functionality, it seems that tesselation is the current big thing in graphics processing, but we’re also seeing an explosion of the use of stereoscopic rendering. And so I’m questioning myself if DirectX 11/OpenGL 4.0 aren’t a little off from the current developers and players needs.
To be honest, I’m yet waiting to see a good use of tesselation in a videogame, the only good example I know is the Unity Heaven benchmark and all the other games make poor use of it just for marketing purposes. But all this is somewhat understandable since this is yet a young technology which will take some time to be grasped by developers.
On the other hand, from what I know stereoscopic rendering is only provided as a driver functionality and in many ways is just an hack that doesn’t even fit on defereed renderers or on post-processing effects.

So the main question is, shouldn’t the GPU manufacturers and OpenGL/DirectX people focus on exposing some functionality to control the whole stereoscopic thing which is, in my opinion, currently more useful than tesselation?

I’d really like to see OpenGL taking the step forward by releasing extensions to do this kind of stuff but of course this also depends on the GPU manufacturers. Anyway, it should be a good oportunity for OpenGL to make its own contribution to graphics instead of just following the tail of directX (I’m just saying, I’m not an OpenGL fanboy).

Anyway, I’m just spitting out these ideias. Please feel free to comment and criticize.

Competent 3D programmers should code stereo rendering themselves.

There are two eyes and you really need 2 asymmetric projection frusta to get this correct. To say things get FUBAR when the API layer tries to inject stereo in a normal mono 3D app in an understatement.

Good stereo done well, and by that I mean competent stereo that is not a half-assed kludge, demands viewer screenspace and IPD information.

Asking that the low level API handle this is inviting some ambitious wrongheaded fool somewhere to screw it up, almost by definition. No thanks.

That said real stereo support should come in the form of stereo buffer allocation, screen & viewer geometry information and if possible tracking information.

Simple utilities or libraries can be provided to help the challenged implement with these features. Something glu like to help with stereo frusta & left & right eye selection and maybe at a stretch, some eyespace offsets but that’s really getting into higher level territory.

We don’t need extensions to make stereoscopic rendering work. OpenGL has had the ability to do stereoscopic rendering from version 1.0.

NVIDIA simply isn’t willing to turn it on for consumer-level hardware.

You obviously never did stereo rendering yourself. Get a Quadro-card (which allows to render to two buffers for the left and right eye). It is very easy to implement in general, though dorbie is certainly right, “GOOD” stereo rendering is a bit more complicated.

IMHO stereo rendering is quite useless. Both in cinema and games. But then that’s a whole different discussion. Technologically nothing is stopping you from implementing it properly, even today, no extensions needed.

Jan.

Thanks for your responses, guys. You brought to my atention a fact that I didn’t remembered, that stereoscopic rendering as always been suported by opengl through the “left” and “right” buffers functionality. And in fact, this does provide all the needed functionality to implement correct sterescopic rendering, but it’s a pitty that the current way of doing stereoscopic rendering for videogames doesn’t take advantage of this functionality.

how could it, when it is only available on expensive workstation graphics boards (QuadroFX line for example).

how could it, when it is only available on expensive workstation graphics boards

There is no hardware reason why stereo framebuffers could not be implemented on lower-end cards, using consumer-grade 3D headsets and the like. This is an artificial limitation included so that those who have needed stereo in the past have to buy expensive “workstation” graphics cards.

you must remember that 25% of nvidia’s graphics cards sold are Quadro’s, and 75% geforces. Yet Quadro’s account for 75% of nvidia’s graphics card profit.
The only significant difference between a quadro and a geforce is quad buffered stereo support.
It’s a no brainer. Quad buffered stereo on geforces? ain’t gonna happen. Like the others said, there’s no technically significant reason for it, just profit.
Quadro’s are a complete rip off. I’d estimate 95% of people/companies buy Quadro’s just for quad buffered stereo. The other 5% probably buy them for the Gsync functionality, or to put them in quadro plex’s (which should also take geforces, but that’s artificially crippled too…for the same age old reason of profit).
It’s rife in the visualisation industry. Magnetic trackers are stupidly expensive too, for no particular reason other than lack of volume sales (which in turn is because they’re so expensive). Have you seen how much 3dconnexion charge for spacemice?? How can they justify it??? And don’t even start talking about headsets…like £30k for a couple of LCD screens strapped to some cheap plastic.
My issue with all this is that it’s holding back the immersive experience from the average man in the street. Stereo is pretty bad without your head being tracked. But there’s no real affordable solution to that. You could start buggering around with your wii controller i suppose, but who’s going to bother? they’ll just look at this new thing called “3D” and be unimpressed.
I want to sit in front of my TV smoking a jazz cigar playing call of duty with proper tracked stereo. That’s what I want. It’s what I’ve wanted and expected to happen for years. Give me what I want or I will…do nothing, like everyone else.
NVidia, how do you sleep at night? Oh, I remember, on a mattress made out of money.
My hopes are on nintendo. They’re my only hope.

When considering a workstation from Dell, it was either an intel thing or a Quadro-line card. Nope, couldn’t get anything in between, then we had to go for a non-workstation model (which was poor in other areas). Wouldn’t surprise me if they sell quite a few that way.

Anyway, I saw ATI released drivers with support for third-party 3d glasses recently, so in theory they could be providing quad-buffered rendering as well?

thats exactly what i was trying to say. it is to protect the expensive workstation marked. without active stereo support only a very limited amount of features remain for nvidia to sell these cards (SDI, sync, application certified drivers).

yeah, the nvs line of quadros. Bloody rubbish. Another example of nvidia/dell taking the p.iss.

Knackered,

The whole Quadro differentiation is brilliant IMHO (although some of the product line is crap and the naming totally confusing). They face competition from FireGL so nobody is able to tighten the thumbscrews too much.

It differentiates the market and has people pay for the R&D for features they demand. Two sided lighting, line antialiasing, genlock and Stereo and rigorous driver certification andlegacy API support are those differentiators, but stereo will migrate to the mainstream soon I think, largely due to the HDTV stereo standard emerging and driving the display technology into the market.

Gamers don’t need “pro” cards and both markets help the other. Those pros used to have to spend a million bucks for systems that couldn’t touch what a PC card can do today, so they’re not getting screwed on the deal, they’re getting a bargain and the software still runs on gamer cards so if they’re cheap they can still buy a cheap card and be very happy for MOST stuff.

I’m sure NVIDIA would LOVE stereo to become mainstream overnight (the guys there are bigger graphics geeks than you so don’t kid yourself) but they cannot drive that and will introduce it as demand is generated at lower price points.

Stereo head tracking IS possible now with ultrasound or with the Wii controller style software, but it will only work with competent software. You cannot grab a games frustum and dick around with it IMHO. The technology is there, but the required off the shelf AFFORDABLE peripheral is not, but I think it will come, it’s chicken and egg.

Tracking is next on the to-do list for stereo but of course displays will only handle two eyes for a long time to come so for many uses tracking is counterproductive, gaming is probably the most compelling exception.

Quadro is a diverse product line, they range from crap to truly differentiated.

Of course it’s NVIDIA’s fault that it’s as confusing as it is.

Quadros are there for specific vertical markets and even a subset of 3D applications.

Without quadro you STILL wouldn’t get your stereo on your card, and why should consumers buy features only a small market subset wants? CAD guys already ride the coat-tails of gamers and get bargain priced cards thanks to joe public playing games.

Stereo will come but the real problem is the market for it is still being established.

Stereo will come but the real problem is the market for it is still being established.

The problem is that Stereo requires almost no effort on the part of IHVs. NVIDIA already has consumer-grade goggles for doing 3D visualization effects. The fact that they don’t provide stereo to make them actually work right is the problem.

Instead of allowing applications to control the stereo, they use this ridiculous shader hack that can’t possibly work correctly. For games that aren’t designed to handle stereo, I can understand. But new games can have this as a specific game mode. They just refuse to do it right.

The cost to implement the stereo shader hack is far more than the cost to just let the application do stereo.

Very interesting discussion from you guys, thanks.

Your comments about the Quadro graphics cards left me curious. Could someone explain me what’s the main differences in purpose, performance and functionality between Quadros and consumer hardware?
I’ve tryied to find this information by myself before but as always the only information available on the internet is the marketing garbage used to sell that stuff.

I agree with dorbie when he says that stereo will become fully available for gamers because that it’s the current big thing in tv, cinema, videogames and other kinds of digital entertainement. Obviously, the whole fuzz around this technology is ridiculous since it’s just caused by marketing campaigns created by tv manufacturers and the movie industry to make consumers believe that this technology is cutting edge and encourage them to buy it.

On the other hand, Reinheart is right when he says that this technology could be easily provided to gamers. Instead of that driver hack that they use for stereo, I think the hardware could just use the current stereo functionality that Opengl already provides along with some extra functionality (through extensions or just driver options) that would take advantage of the multi-gpu solutions like SLI to dedicate the rendering of each eye into a single available gpu.

Could someone explain me what’s the main differences in purpose, performance and functionality between Quadros and consumer hardware?

The purpose of Quadro’s is to make NVIDIA more money.

It’s almost 100% the same hardware. They just sell them at a premium, and use their drivers to activate features that the consumer hardware could have done.

Now this is a simplification; in some cases, they hardware-deactivate certain components in the consumer-level hardware, so that people can’t accidentally turn them back on by hacking the driver.

All of this is done so that IHVs can have market binning: they can sell a “professional” card for 4-5x what they sell a consumer card for. It makes them more money per card.

dorbie, that argument stood up 10 years ago, but not any more. The “R&D” for two sided lighting, line antialiasing, genlock and stereo was paid for long, long ago. Now it’s just milking a cash cow.
jcabeleira, the only differences between quadros and geforces (apart from the crippled stereo/gsync) is display list performance (much better than the geforce drivers) and driver profiles (switches in the driver to optimise for specific applications, like 3dsMax). That’s it. Worth 6X the cash? Well nvidia, enable stereo in the geforces and we’ll see how much people will pay for the other quadro ‘features’. I suspect your quadro sales will drop through the floor.

Not only is this artificial differentiation, it is also completely insane in its implementation: not all Quadro cards support 3d stereo for example (like my Quadro NVS in my laptop). Why?