Andrew Fenn wrote:> On Fri, Jan 30, 2009 at 11:00 AM, rofthorax <wineforum-user at
winehq.org> wrote:
>
> > Wine could bring this to anyone regardless of income level, with as
little as red/green, cyan,red, blue/yellow,cross-eyed/parallel layering, or as
advanced as the use of lenticular monitors, polarized projection or lcd shutter
frame synchronization.
> >
> >
>
> If I am correct what you're looking for is Nvidia's Stereoscopic
> drivers which are available here (
> http://www.nvidia.com/object/3d_stereo.html ).
>
> Since you're wanting to use this on Linux you shouldn't need
anything
> apart from the nvidia driver you already have installed on your
> system. Here is a guide on how to turn it on (
> http://forums.nvidia.com/index.php?showtopic=40768 )
If I'm right that only support NVidia cards from the 7 series, we are on 9
and those drivers are no longer updated..
Anyhow that's NVidia.. I'm talking beyond drivers, beyond hardware..
I'm talking about allowing anyone regardless of graphics hardware the
ability to access stereo presentation.. This should happen in the libraries that
provide 3D services (directx and opengl) not the hardware driver implementation,
because it is not tied to the hardware implementation.. You won't get this
with DirectX 9 because Microsoft is using DirectX10 to leverage consumers onto
Vista regardless of the needs of the consumers, which doesn't justify the
purchase of a new OS.
Anyone having had a OpenGL programming course as I, know this.. It's just a
matter of rendering two images where there is one, offsetting the camera in the
computation by a small delta.. DirectX is a bit more than a offshoot of opengl
but it must use the same matrix multiplication math that opengl uses with the
same or similar 3D pipeline.
I'm saying this should not be left to the hardware manufacturers to
implement but should be a feature of the 3D library that interfaces with the
hardware, because getting hardware developers to agree on standards such as for
stereovision is like herding cats, they each want a way to leverage the
technology in their favor.. The reality of 3D vision is it's implementable
at a higher level than the 3D library, it only requires the manipulation of the
code before it gets passed on to the 3D hardware..
Example:
Shutter glasses: synchronize left and right eyes with odd and even frames, odds
for left, even for right, using a normal double buffering scheme.
1. show left view, left lcd frame clear, right lcd frame opaque
2. show right view, right lcd frame clear, left lcd frame opaque
3. show left view, left lcd frame clear, right lcd frame opaque
Note this is easier because all you have to do is alternate the placement of the
camera, you don't need to render two views at once.. Remember we are double
buffering here..
For anaglyph:
Render both left and right frames (this slows down the graphics card because you
have to do both at once in the hidden buffer), multiply each by a frame of color
and average the two images together into the hidden buffer.. You could reduce
the frame rate and hold the double buffers for two frames per frame.
For lenticular display (note, lenticular displays have the ability to present
more than one stereo view), this involves moving the camera multiple times, one
per interlaced lenticular view. I think there are some lenticular displays that
can present 5 views, so all you need to do is render 5 views, creating one image
five times as wide as before, displayed on the monitor appears of a holographic
quality (requires much faster card).
How lenticular displayes work, if you've ever used a glass thermometer you
understand the concept, a surface filled with thousands of small ridged lenses
running vertically down the display. Each lens presents one of 5 slivers of
imagery, your left eye sees one line magnified, your right eye sees another
line magnified, shifting your position shifts which lines behind the curved lens
are magnified. Also the resolution of the lenses determines if a 3D image can
be presented, children will not be able to perceive as many dimensions as adults
due to the amount of eye separation, so not everyone will see the effect.. I
could have that switched around. Turning a lenticular display on its side
presents a animation effect because both eyes will see the same image, but
tilting the display horizontally produces a sort of animation (as found in cheap
plastic ridged lenticular stickers in cracker jack boxes).
There is also another method of creating 3D imagery using the side to side
motion that takes advantage of a concept that your brain processes imagery more
slowly with less light, thats where the glasses had a darker lens on one eye and
a clear lens on the other.. The effect alone can be used with any video image
where video is constantly panning from say left to right if the right eye is
darkened (right perspective is delayed, left eye sees left perspective, as image
passes to right perspective, left eye is focused on next image to right, and
right eye is starting to perceive the right perspective).. At least that is my
explanation for the effect..
In every stereo vision effect, one eye has to see something different, that is
how the effect is perceived.. There is also a 3D effect that someone came up
with where prism refraction is used to present colors as being in front of other
colors.. Then there are effects like Single Image Random Dot Stereograms (those
noisy images that were popular in the 90s).
I've thought about writing a book on this stuff, but I think it could be a
rather thin book.. The technology is not at all hard to understand, what is
harder to understand is why it's been left to hardware developers to
implement, why it is not presented between the graphics driver and the 3D
library.. Wine as a unique position which no OS has, it has the capability to
have 3D vision implemented in the translation of instructions to the backend
libraries (OpenGL) or in libraries that don't support 3D vision, like stereo
support in DirectX 9 API implementation without the consent of Microsoft. Just
imagine if pieces of wine code could be used to replace DirectX on the windows
platform and add features to XP that exist in DirectX10.. Ever thought about
that? This could be one of those.. But it needs to start on a platform that is
uniformly accessible, and I doubt ATI and NVidia are going to agree on one..
This is a job for open source..
I've been told "if youare so smart, why don't you do it"..
Because I need help, and that starts with making others aware of the idea and
the need..