From: bm@cs.columbia.edu (Blair MacIntyre)
Subject: Re: TECH: Input needed on VR setup, OS, software, graphics cards.
Date: 15 Mar 1996 09:38:13 -0500
Message-ID: <xn1n35i776y.fsf@renoir.cs.columbia.edu>
Organization: Columbia University


From: bm@cs.columbia.edu (Blair MacIntyre)

>>>>> On Wed, 13 Mar 1996 20:19:55 GMT, js@wolfenet.com (Jay
>>>>> W. Summet) said:

Jay> I am planing on setting up a small homebrew VR system this
Jay> summer, and I'm interested in hearing people's suggestions.

Jay> I plan on spending: 2000-3000 dollars (US) Buying some combination of:
Jay>                    One or Two bare bone Pentium computers.
Jay>                    One or Two hardware 3d graphics accelorators.
                   
Jay> Currently, I have been looking at Omnicorp's 3dDeamon that uses
Jay> the 3dlabs 300sx chip. This card already has built in support for
Jay> frame sequential stereoscopic NSTC output, and would work great
Jay> with my Vio I-Glasses.

First, and most importantly, this should be cleared up.  The vIO
Iglasses support 3 kinds of stereo:
- Frame sequential.  The left eye is sent to the glasses, followed by
  the right, in alternating frames.  120Hz refresh is therefore needed
  to refresh each eye at 60Hmz.  This is what many high-end machines
  put out, such as Sun's Creator3D or the various IRIS or HP machines.
- 2 variations of scanline stereo.  The odd scanlines represent one
  eye, the even another.  The Iglasses can send the odd lines to the
  left or right eye (thus 2 modes).

You need hardware support to do the first, since the frames have to be
sent out precisely alternating N times/second.  The Omnicomp 3DemonVR
supports it.

However, you can do the latter kind of stereo with any display.  You
simply render the two eyes interlaced.   The Iglasses CD has demos
that use this mode.  The advantage here is that you don't need
hardware support.

Renderware, for example, supports this.  I assume Direct3D will
support it, too, when it is released.   In fact, lots of things
support this.

Jay> However, it costs around 1800$ last time I checked.

Yes, it does.  

Jay> The Creative Labs 3D Blaster uses another version of the 3dLabs
Jay> 300sx chip (this one does not support OpenGL as far as I can
Jay> tell) and only costs around 300-400$.

According to conversations I had with someone from 3DLabs on the
comp.graphics.api.opengl newsgroup, the PCI version (if it's based on
the PERMEDIA) will support OpenGL.

However, the 3D Blaster may instead be based on Rendition's Verite
chipset.

Regardless, on Windows 95 (and perhaps NT), any board that supports
Direct3D will support OpenGL because OpenGL will go through Direct3D
(unless a specific driver is available, I suppose).

Finally, it's not at all clear that you want to use OpenGL.  For VR
apps, especially with the low resolution HMDs like the I-glasses, you
are probably better off with things like Renderware (or Direct3D).
They are designed for this sort of thing.

Jay> It looks like I might be better off buying TWO pentium bare bone
Jay> computers (500$ or less each) networking them, and puting a 3D Blaster
Jay> in each of them, and then buying the VGA to NSTC converters along with
Jay> a Frame Sequential multiplexer to interface to my Vio I-Glasses.

I would wait until I needed to buy the card to decide.  They are
coming fast and furious these days, and it's not clear how the new
ones will perform.  

Jay> I would like to know if anybody has any comments on this,
Jay> specifically:
Jay>   1. I suspect that the 3d Deamon is a much better card, but do I
Jay> really need all the nice features it offers?  

No, I don't think so.  The big thing you get from the more expensive
cards is support for higher resolutions.  For driving stereo hmd's at
640x480, cheaper cards will do.  I would figure out what your options
are for graphics software and then see what cards support it.

Jay>   2. According to the specs, TWO 3d Blasters SHOULD give me a much
Jay> better polygon count than ONE 3d Blaster, and would cost about the
Jay> same, along with a second computer to spread the geomotry calculations
Jay> out a bit.
Jay> 3. (2) VGA-NSTC converters and a frame sequential multiplexors should
Jay> not cost more than 300-400 dollars, RIGHT?

I seriously doubt that.  I suspect frame sequential multiplexors to be
reasonably expensive.  I wouldn't waste my time with that solution.

Furthermore, I would consider software solutions, like Renderware.
You may be better off getting one dual-processor pentium than two
single processor ones, and writing your code using lots of threads to
spread it out, and effectively devoting one processor to graphics.

Jay> 4. Will networking the two computers make the software a LOT harder to
Jay> write? (I am also considering using a third computer (486) as the main
Jay> controller, and just using the Pentium's for graphcis rendering.)

Writing a networked VR system is non-trivial (ask me, I've been
working on one for a year now).   Unless you have a REALLY REALLY
compelling reason, I wouldn't consider that route.  You will also introduce
lag because the tracker data from the vIO (which is pretty slow to
start with) will now have to go over the network.  And, you'll have to
try and synchronize the frame updates.

Just say no.

Jay> Now, for some software questions:
Jay> 1. I would sort of like to use Linux for my system, because:
Jay>    a) It's free.
Jay>    b) It has some good freeware C compilers that would work well.
Jay>    c) It's fully 32bit, multitasking, stable, and has full network
Jay>         support built in.

Linux is ok, except you will severly limit yourself to what you can
use for graphics.  In fact, for this summer, you will have a choise of
one (1, yes 1) graphics card that support accelerated 3D under X (see
the Metrolink homepage at www.metrolink.com).

Jay>    Would Win95/NT/IBM Warp or some other OS be better?

Yes.  Every 3D card that is coming out will support Windows95 1st and 
WindowsNT second.  I don't know about Warp, but I haven't seen much in
the way of support.

Jay> 2. I don't really WANT to write all of the code for my system, I would
Jay> be more than happy just making the high-level user interface, main
Jay> control loop type of stuff. What type of low level object/graphics
Jay> libraries exist, and would they have built in support for either the
Jay> 3d Deamon (Open GL) or the 3d Blaster? (As well as support for
Jay> distributed processing with twin computers?)

By this summer, I may release a simple version of my system which will
do most of what you want.  But I wouldn't count on it, and it doesn't
really meet some of your needs: 
- it's written in modula-3 and obliq, not C
- it requires a lot of disk space (~100-200M)
On the bright side, it's fully networked, support OpenGL and
Renderware on Linux, NT and Windows 95, and allows you to do VR type
apps using an extremely cool interpretted, distributed language (Obliq).

-- 
Blair MacIntyre (bm@cs.columbia.edu), Graduate Student (Graphics and UI Lab)

smail: Dept. of Computer Science, 450 Computer Science Building, 500 W 120 St.
       Columbia University, New York, NY 10027
