Skip to main content
gamedev.net
🔒 Locked

Rendering a polarized image.....

Started by AverageJoeSSU Jan 1, 2010 at 8:57 PM 6 replies 3.6k views
Original Post
AverageJoeSSU
AverageJoeSSU
I'm confused, i know what polarization is but not how to make an image polarized.... i imagine this is a simple post process effect. How do you polarize something for up-down or left-right light (i'm sure these arent even the correct terms). can a regular monitor render a polarized image?
------------------------------ redwoodpixel.com
lynch3
lynch3
You would need to project the image through a polarized lens. At my work we render 2 views on 2 different projectors per screen that sit on top of each other each with a different polarized lens and the projected image is done behind the screen. I doubt the behind the screen part is required, we just do that for space reasons.
Tachikoma
Tachikoma
You could simulate the effect algorithmically by defining materials and writing shaders for it. But to actually create a true polarised image, you can't. You don't have control how light is emitted by the display (apart from pixel brightness).
MJP
MJP
Polarization is a physical process: the light has to be specifically filtered so that only polarized waves are projected. Unless a monitor is equipped with this sort of hardware, it can't emit a polarized image.
Yann L
Yann L
Quote:
Original post by MJP
Unless a monitor is equipped with this sort of hardware, it can't emit a polarized image.

Nitpick: an LCD display will always emit almost 100% polarized light, it's part of its physical operation process. However, the plane of polarization is physically built into the panel and can't be altered. That's why LCD-based projectors cannot be used for polarization-based stereoscopy, for example. You'd need polarization neutral equipment, such as a DLP, plus the appropriate filters.
AverageJoeSSU
AverageJoeSSU
Quote:
Original post by Yann L
Quote:
Original post by MJP
Unless a monitor is equipped with this sort of hardware, it can't emit a polarized image.

Nitpick: an LCD display will always emit almost 100% polarized light, it's part of its physical operation process. However, the plane of polarization is physically built into the panel and can't be altered. That's why LCD-based projectors cannot be used for polarization-based stereoscopy, for example. You'd need polarization neutral equipment, such as a DLP, plus the appropriate filters.


nailed it. thats exactly what im trying to achieve.

so light polarization is a light propagation thing and not a color thing...

Nvidia seems to market the polarization tech which requires a 3d ready display and the red green tech which doesnt. EDIT: I think it is the shutter technique since the hz on the monitor it needs is 120.

Say i had a "3d" ready monitor, does the graphics driver process the depth buffer and create the 2 combined frames automagically? How is one supposed to control/use this effect? what is the intended process for a programmer to use it?

[Edited by - AverageJoeSSU on January 4, 2010 12:34:21 PM]
------------------------------ redwoodpixel.com
Yann L
Yann L
The main concept behind stereoscopy is to render two separate channels for each frame, and somehow target each channel to an eye. Very similar to audio stereo, actually.

From the software point of view, things are not very complex. Basically you render two images per frame, with a slightly different camera position and projection matrix, so to simulate the horizontal distance between both eyes. There are a few good papers on the net describing what to do, so to get maximal realism and flexibility (by letting you adjust the zero-parallax, for example) and minimal physiological problems for the viewers.

The hardware part is getting each rendered image to its respective eye. That's the complicated part. There are different approaches to achieve this.

The red-blue or red-green approach renders each channel using a specific colour, and superimposes both. A filter in front of your eyes will then separate them again, only letting the image intended for the respective eye through. This approach is easy to achieve with a standard screen, and the filters for the eyes are cheap. However, the quality is usually quite bad. You don't get full spectrum colour reproduction, and channel separation is bad with non-monochromatic filters (means that the image intended for the right eye can also be seen by the left eye, albeit attenuated, and vice-versa).

Polarization is another approach. The two renderings are superimposed using different polarization planes. For example, horizontal polarization for the left eye and vertical polarization for the right eye. Again, two filters in front of your eyes separate the two superimposed polarization planes, filtering out what the respective eye is not supposed to see. This approach has much better quality than the red/green one. First, since polarization doesn't interfere with colour, you get full spectrum reproduction. And second, polarization filters are much more narrow-band, filtering out much more unwanted signals. However, you typically need two projectors for this, each with its own filter. You also need a special projection wall that will not modify the polarization angle of the reflected light.

Other approaches exist. Barco used to have one where light spectrum was hacked up into distinct wavelength bands, and put back together at the eye. It was shit expensive.

All the systems above are called passive stereo systems, because they use basic physical properties of light (colour, polarization) and don't need active synchronisation.

Active systems use a direct data link between the filter in front of your eyes and the graphics subsystem. Shutter glasses are an example. First your screen displays the image for the left eye. At the same time, the GPU tells your glasses to obscure the right eye, so that only your left eye will see the image. Then it is switched over to the right eye, and repeated. If the frequency is high enough, you won't perceive flickering. This is a commonly used method for consumer stereo. It's cheap, effective, and works reasonably well. However, it's hard to achieve with LCD panels (since it requires a high refresh rate) and it needs to link between graphics card and your glasses (usually through infrared). This system is not polarization based ! It is often presented as such in marketing blabla, but the only thing remotely connected to polarization are the LCD shutters in your glasses. They can, however, interfere with some TFT panels. In other words, unlike passive polarization stereo where polarization is the physical effect exploited by the system, polarization is an unwanted side effect of active shutter glass stereo.

Yet other systems use various ways to split the two channels directly at the screen ("3D screens"). Some do it through a prism coating, some through interference, etc. New systems come out all the time, and many of them will fade away shortly after. It's kind of a hype-market right now, with Avatar and all that.

From the programming side, usually the 3D driver will manage each specific system on its own. You just have to provide it with two separate renderings for each eye. This mode, called quad-buffered stereo, is the most flexible one. It is commonly used by professional stereo applications in industry, military, medical, etc. However, it only works under OpenGL (D3D doesn't support it), and you need one of the professional series graphics cards from Nvidia or ATI (which are quite expensive). Although consumer level cards can also be hacked to support it...

Yet another way to get it done is through NVidias stereo drivers. They basically take a mono rendering (such they don't need the quad-buffered stereo feature mentioned above) and will separate it transparently in the driver. This works with most consumer level cards, and will also enable stereo in applications or games not intended for it, but it is considerably less realistic than real quad-buffered systems. Due to subpar parallax adjustments (usually the positive parallax is too large) and incorrect projection matrix centers, this system can trigger headaches for some people if used for extended periods of time.

There you go, a quick introduction into stereoscopy (yes, it's part of my job ;)
AverageJoeSSU
AverageJoeSSU
Thanks for the detailed reply =)

I think it is cool to see this stuff used in conjunction with other depth features like depth of field.

anyways, thanks.
------------------------------ redwoodpixel.com

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.